Hello Robert,
Ah, you're setting that IP in the inventory file with ansible_ssh_host?
Sorry, I didn't notice that. Then 'ansible -m ping
whatever_hostname_you_have_in_inventory' (i.e. if it's db02.example.com,
then that name instead).
Ansible's 'ping' module isn't an ICMP ping, it's a connectivity test – it
does an SSH connection and checks things will work as expected.
You want 'ansible -m ping <dest_host>' to work from source_host to ensure
the play will go smoothly. If that works, then we can move onto the rsync
issue. Let's prove the connectivity – from an Ansible perspective – first.
Cheers
On Wednesday, 5 April 2017 23:19:03 UTC+1, Robert F wrote:
>
> Hi Mark,
>
> No, when I run the ansible ping command, I get "No hosts matched."
> However, if I just use the normal ping command on that IP, I get a
> response.
>
> On Wednesday, April 5, 2017 at 2:02:08 PM UTC-7, Mark Phillips wrote:
>>
>> Hello Robert,
>>
>> Does 'ansible -m ping 45.56.89.116' from that same backup server work
>> just fine?
>>
>>
>> On Wednesday, 5 April 2017 17:55:03 UTC+1, Robert F wrote:
>>>
>>> Here is the output when I run the playbook with the "-vvvv" argument:
>>>
>>>
>>> PLAY [restore database server]
>>> ************************************************
>>>
>>> TASK: [fail msg='Please specify a database (db), -e "db=db03"']
>>> ***************
>>> skipping: [db02.example.com]
>>>
>>> TASK: [set_fact db={{ db }}]
>>> **************************************************
>>> <45.56.89.116> ESTABLISH CONNECTION FOR USER: smith
>>> ok: [db02.example.com] => {"ansible_facts": {"db": "db02"}}
>>>
>>> TASK: [fail msg='Please specify a tier (tier), -e "tier=production"']
>>> *********
>>> skipping: [db02.example.com]
>>>
>>> TASK: [set_fact tier={{ tier }}]
>>> **********************************************
>>> <45.56.89.116> ESTABLISH CONNECTION FOR USER: smith
>>> ok: [db02.example.com] => {"ansible_facts": {"tier": "staging"}}
>>>
>>> TASK: [rsync database backup file to database server]
>>> *************************
>>> <45.56.89.116> ESTABLISH CONNECTION FOR USER: smith
>>> <45.56.89.116> REMOTE_MODULE command rsync -vz /srv/rsync/
>>> example.com/staging/last/database/example_schema_and_data.dump
>>> <45.56.89.116> EXEC ssh -C -vvv -o ControlMaster=auto -o
>>> ControlPersist=60s -o
>>> ControlPath="/home/smith/.ansible/cp/ansible-ssh-%h-%p-%r" -o
>>> StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o
>>> PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey
>>> -o PasswordAuthentication=no -o ConnectTimeout=10 45.56.89.116 /bin/sh -c
>>> 'sudo -k && sudo -H -S -p "[sudo via ansible,
>>> key=asekrsupszbkgzikdiyqxqwvjazevzmq] password: " -u smith /bin/sh -c
>>> '"'"'echo BECOME-SUCCESS-asekrsupszbkgzikdiyqxqwvjazevzmq; LANG=en_US.UTF-8
>>> LC_CTYPE=en_US.UTF-8 /usr/bin/python'"'"''
>>> fatal: [db02.example.com] => SSH Error: data could not be sent to the
>>> remote host. Make sure this host can be reached over ssh
>>>
>>> FATAL: all hosts have already failed -- aborting
>>>
>>> PLAY RECAP
>>> ********************************************************************
>>> to retry, use: --limit @/home/smith/restore_dbserver.retry
>>>
>>> db02.example.com : ok=2 changed=0 unreachable=1 failed=0
>>>
>>>
>>> On Monday, April 3, 2017 at 1:06:08 PM UTC-7, Robert F wrote:
>>>>
>>>> When I run the following Ansible playbook on my backup server,
>>>> backups.example.com, I get the error shown below:
>>>>
>>>> # main.yml
>>>> ---
>>>> - name: restore database
>>>> hosts: dbserver.example.com
>>>> gather_facts: false
>>>>
>>>> vars:
>>>> me: smith
>>>>
>>>> tasks:
>>>> - command: rsync -vz /path/to/db.dump {{ me
>>>> }}@dbserver.example.com:/tmp
>>>> become: true
>>>> become_user: "{{ me }}"
>>>>
>>>> Error:
>>>>
>>>> fatal: [dbserver.example.com] => SSH Error: data could not be
>>>> sent to the remote host. Make sure this host can be reached over ssh.
>>>>
>>>> Yet I can run the command manually from my backup server, it succeeds:
>>>>
>>>> rsync -vz /path/to/db.dump [email protected]:/tmp
>>>>
>>>> Here are the pertinent files:
>>>>
>>>> # ansible.cfg
>>>> [defaults]
>>>> inventory = inventory.ini
>>>> host_key_checking = False
>>>> ssh_args = -o UserKnownHostsFile=/dev/null
>>>> [ssh_connection]
>>>> pipelining = True
>>>>
>>>> # inventory.ini
>>>> [dbservers]
>>>> dbserver.example.com ansible_ssh_host=<dbserver_ip_address>
>>>> ip_addr=<dbserver_ip_address>
>>>> [local]
>>>> localhost ansible_connection=local
>>>>
>>>> # ~/.ssh/config
>>>> Host dbserver.example.com
>>>> # I know this creates a security risk but I don't know how else
>>>> to handle the "authenticity of host..." prompt when running an Ansible
>>>> playbook
>>>> StrictHostKeyChecking no
>>>> User smith
>>>>
>>>> I've checked and there is an entry for dbserver.example.com in the
>>>> ~/.ssh/known_hosts file. My public key is installed in the
>>>> authorized_keys
>>>> file on the remote dbserver.
>>>>
>>>> I've researched this online and read the Ansible documents but I don't
>>>> see what I'm doing wrong. Initially I tried using the Ansible synchronize
>>>> module but it produced the same error. I also tried using the "-vvvv"
>>>> option with my ansible-playbook command but the output didn't yield any
>>>> useful information. All I say was the command stop at a certain point.
>>>> What am I missing here?
>>>>
>>>>
--
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/fc237660-1e9f-4039-8237-92cb6c5cfdc6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.