Первое подключение Ansible к хостам

by Admin
~1 минут
Первое подключение Ansible к хостам
/* Испробовано на Ansible ver.2.3 */

Когда возникла необходимость поменять часть строк в файлах sudoers и hosts на серверах Centos 6.8, я решил после настройки playbook’ов сначала пропинговать сервера и проверить все ли будет хорошо после запуска ansible. Т. к. на вашем сервере (назовем его master) нет отпечатка fingerprint ssh ключа, то при первом подключении получите ошибку ниже:

fatal: [server.all.tmp]: FAILED! => {"failed": true, "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."}

Можно использовать аргумент

--ask-become-pass

и вводить каждый раз пароль root’а нового хоста, а т. к. я ленивый, при первой проверке хостов пингом я добавил аргумент не проверять ключ. Но он добавится в файл known_hosts.

Итак, файл playping.yml:


---
- name: Ping serves
  hosts: app.all.tmp #указываете свои хосты или группу хостов
  tasks:

  - name: Ping ip servers
    ping:

В файле hosts для первого раза указываю все логины и пароли от root’а, можно их зашифровать с помощью vault:

[app.all.tmp]
app.r.server     ansible_host=192.168.1.100     ansible_user=root      ansible_password=root    ansible_become=true   ansible_become_pass=root

Первые user и password для подключения через ssh, ansible_become=true для входа под пользователем по умолчанию root, ansible_become_pass указываем пароль sudo. Это также необходимо для редактирования файлоы sudoers, чисто мне нужно было.

Запускаем командой:

ansible-playbook playping.yml --ssh-common-args='-o StrictHostKeyChecking=no'

Fingerprint ssh ключа будет сохранен в файл known_hosts вашего пользователя, вручную нет необходимости подтверждать сохранение ключ. Дальше можно приступать к использованию ansible.

Оговорюсь, конечно, лучше использовать такой формат на известных вам хостах во внутренней сети.