Skip to main content

Настройка ansible

папка настроек, ~
/etc/ansible  по-умолчанию 
~/ansible.cfg файл общих настроек
https://docs.ansible.com/ansible/latest/reference_appendices/config.html
Приоритет поиска файла настроек
  1. 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.cfg
    Генерация настроек сС плагинами
    $
    ansible-config init --disabled -t all > ansible.cfg
    # и ; комментарии. Но ; обычно используется для комментария значения по-умолчанию.

    Имена:
    файлы с переменными групп хранятся в директории “group_vars/имя_группы”;
    файлы с переменными хостов в директории “hosts_vars/имя_хоста”;

    ~/hosts фФайл инвентаризации
    hosts 
    Размещение файла может задаваться переменной окружения $ANSIBLE_HOSTS
    После : пишется тип данных для группы. Например группа [example], [example:vars] это переменные
    Типы данных:
    :vars переменные для группы
    ansible_user: пользователь, от имени которого выполняются задачи на хостах данной группы. Значение в файле задач игнорируется.
    ansible_host: Для сопоставления ip-имени
    ansible_port: порт для доступа
    ansible_connection: Может быть ssh, local, docker (запуск команд непосредственно на контейнере)
    ansible_become: + sudo
    ansible_become_user: sudo -> another user
    ansible_ssh_private_key_file: адрес ключа

    :children группы-потомки

    Пример
    [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
    ~/group_vars/groupname
    Лучше переменные размещать по файлам 
    ~/group_vars/example
    ---
    ansible_user=setup
    ansible_private_ssh_key=/home/user/ansible.key
    ~/host_vars/hostname
    Аналогично переменным группы. Дочерние переменные заменяются на родительские.
    Ссылки: