Пост-установка Ansible

Файл инвентаризации хостов

После того, как вы установили Ansible, вы захотите, чтобы Ansible знал, к каким серверам подключиться и управлять.

hosts

Файл инвентаризации Ansible используется для отображения и группировки серверов. Его местоположение по умолчанию 

/etc/ansible/hosts

.

Если вы хотите, чтобы ваш 

hosts

файл Ansible находился в другом месте, вы можете установить эту переменную среды:


<span class="gp">&gt; </span><span class="nb">export </span><span class="nv">ANSIBLE_HOSTS</span><span class="o">=</span>/root/ansible_hosts

Или вы можете указать 

hosts

местоположение Ansible при запуске команд с флагом 

--inventory-file=

(или 

-i

):


<span class="gp">&gt; </span>ansible all --inventory-file<span class="o">=</span>/root/ansible_hosts -m ping

Дополнительную информацию о файле hosts инвентаря см. По адресу : http://docs.ansible.com/intro_inventory.html.

Настройка подключения к серверам

Для этого примера, я предполагаю , что у вас есть сервера с именами хостов 

child1.dev

и 

child2.dev

. При выполнении своей собственной установки замените эти имена хостов своими собственными.

Ваш 

/etc/ansible/hosts

файл будет выглядеть так:


<span class="s">child1.dev</span>
<span class="s">child2.dev</span>

Вы хотите иметь возможность подключаться к вашим серверам без необходимости вводить пароль каждый раз. Если у вас еще нет аутентификации ключа ssh, настроенной для ваших дочерних узлов, выполните следующие действия …

Сгенерируйте ключ ssh на главном узле:


<span class="gp">root@master:~# </span>ssh-keygen -t rsa -C <span class="s2">"name@example.org"</span>

Затем скопируйте свой открытый ключ на серверы с помощью 

ssh-copy-id

:


<span class="gp">root@master:~# </span>ssh-copy-id user@child1.dev
<span class="gp">root@master:~# </span>ssh-copy-id user@child2.dev

Теперь вы можете проверить подключение:


<span class="gp">root@master:~# </span>ansible all -m ping
child1.dev | success &gt;&gt; <span class="o">{</span>
    <span class="s2">"changed"</span>: <span class="nb">false</span>,
    <span class="s2">"ping"</span>: <span class="s2">"pong"</span>
<span class="o">}</span>

child2.dev | success &gt;&gt; <span class="o">{</span>
    <span class="s2">"changed"</span>: <span class="nb">false</span>,
    <span class="s2">"ping"</span>: <span class="s2">"pong"</span>
<span class="o">}</span>

Далее…

Теперь вы готовы фактически управлять своими серверами с помощью плееров Ansible: http://docs.ansible.com/playbooks_intro.html