I found the issue.
For some reason, ansible_ssh_host triggers this unexpected behavior here.
Using the IP addresses as host instead worked fine for me. I rewrote my
script to produce the following JSON:
{
"local": {
"hosts": [
"192.168.42.42"
],
"vars": {
"hostname": "example.local"
}
},
"staging": {
"hosts": [
"62.xx.xx.xx"
],
"vars": {
"hostname": "staging.example.org",
"ansible_ssh_user": "ubuntu",
"ansible_ssh_private_key_file": "key/staging.example.org.pem"
}
}
}
On Tuesday, April 28, 2015 at 5:54:39 PM UTC+2, Warren Seine wrote:
>
> Hi,
>
> I'm using Ansible to deploy to a single machine. I run Ansible locally on
> the target machine and I'm collecting the inventory from a script that
> returns JSON. I run everything from Vagrant but the actual command line
> being run on the target machine is:
>
> $ ansible-playbook -i provisioning/inventory provision.yml
> --connection=local --limit=staging
>
> The playbook works but is run twice on the same machine: once with the
> hostname and once with the IP, as shown with a sample task below:
>
> ==> staging: TASK: [front-web | start apache2 service]
> *************************************
> ==> staging: ok: [staging.example.org]
> ==> staging: ok: [62.xx.xx.xx]
>
> And in the end:
>
> ==> staging: PLAY RECAP
> ********************************************************************
> ==> staging: 62.xx.xx.xx : ok=278 changed=1
> unreachable=0 failed=0
> ==> staging: staging.example.org : ok=278 changed=1
> unreachable=0 failed=0
>
> The issue does not happen when I run Ansible from a control machine: only "
> staging.example.org" gets provisioned, which is the desired behavior.
>
> Here's a stripped JSON produced by the script.
>
> {
> "local": {
> "hosts": [
> "example.local"
> ],
> "vars": {
> "hostname": "example.local",
> "ansible_ssh_host": "192.168.42.42"
> }
> },
> "staging": {
> "hosts": [
> "staging.example.org"
> ],
> "vars": {
> "hostname": "staging.example.org",
> "ansible_ssh_host": "62.xx.xx.xx",
> "ansible_ssh_user": "ubuntu",
> "ansible_ssh_private_key_file": "key/staging.example.org.pem"
> }
> }
> }
>
> Any idea what's causing the "double-provisioning"?
>
> Thank you,
> Warren.
>
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/57efc876-306b-4373-8506-3b56d0f4d7c2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.