Настройка ansible
- ANSIBLE_CONFIG (environment variable if set)
- ansible.cfg (in the current directory)
- ~/.ansible.cfg (in the home directory)
- /etc/ansible/ansible.cfg (default)
ansible-config init --disabled > ansible.cfgansible-config init --disabled -t all > ansible.cfg[example] группа
www.example.com сервер
# Group 'multi' with all servers
[multi:children]
example
#5 servers in one line [a:z] or [A:Z], or numbers with specific digits, such as [001:250].
[dyngroup]
Node[0:4].lab.edu
# Variables that will be applied to all servers
[multi:vars]
ansible_ssh_user=vagrant---
ansible_user=setup
ansible_private_ssh_key=/home/user/ansible.keyМожет применяться и плоское определение, и вложенное, тогда в скрипте {{ db.user }}:
db: lll
  user: pppДинамический реестр:
Должен поддерживать следующий интерфейс:
            --host=hostname - реестр выдает список в JSON {  "ansible_ssh_host":  "127.0.0.1",  "ansible_ssh_port":  2200, "ansible_ssh_user":  "vagrant"} 
            --list реестр выдает список групп {"staging":  [ "ontaro.ехамрlе.сом",  "quebec.ехаmple.сом"], "vagrant":  [ "vagrant1",  "vagrant2",  "vagrantЗ"]}
            "_meta"  : {"hostvars" : {"vagrant1" : {"ansible_ssh_host":  "127.0.0.1", "ansible_ssh_port":  2222, "ansible_ssh_user": "vagrant"}, "vagrant2": {"ansible_ssh_host": "127.0.0.1", "ansible_ssh_port": 2200, "ansible_ssh_user":  "vagrant"}}}
        Если создать папку inventory и добавить в ansible.cfg параметр hostfile = inventory то статический hosts и динамический будут объединены
        Если включить сбор фактов gather_facts:  True то можно во время выполнения задач группировать хосты (например debian/centos)
Использование динамического реестра (в примере my_dynamic_inventory.py должен быть исполняемым скриптом)
ansible-playbook -i my_dynamic_inventory.py my_playbook.ymlВ Ссылках есть материал по динамическим реестрам
| Переменная | Использование | 
| ansible_user | пользователь, от имени которого выполняются задачи на хостах данной группы. Значение в файле задач игнорируется. | 
| ansible_host | Сопоставление ip-имени | 
| ansible_port | Порт доступа по ssh | 
| ansible_connection | Может быть ssh, local, docker (запуск команд непосредственно на контейнере) | 
| ansible_become | + sudo | 
| ansible_become_user | sudo -> another user | 
| ansible_ssh_private_key_file | адрес ключа | 
 
                
No comments to display
No comments to display