Правильный способ определения переменных по умолчанию для всех хостов в Ansible

Есть определение [all:vars] в моем файле инвентаризации следующим образом:

[all:vars]
ansible_shell_type=bash
ansible_user=certain_user
ansible_ssh_common_args="-o ConnectionAttempts=10"

Я планирую переместить такие переменные в ansible.cfg установить значения по умолчанию для всех хостов. Будет ли это просто работать аналогичным образом или есть какие-то обстоятельства, которые следует учитывать? Какие еще альтернативы можно удалить [all:vars] из инвентарного файла?

3 ответа

Решение

ansible.cfg это файл конфигурации, а не инвентарь, вы не можете поместить туда переменные.

[all:vars] синтаксис для определения групповых переменных для группы (специальная группа all в этом случае) внутри инвентарного файла.

Если вы хотите отделить определение переменной от основного файла инвентаризации (что, кстати, является предпочтительной практикой!), Вы можете прочитать эту главу: Разделение данных, относящихся к хосту и группе.

Выдержка:

В дополнение к хранению переменных непосредственно в файле инвентаризации, переменные хоста и группы могут храниться в отдельных файлах относительно файла инвентаризации.

Предполагая, что путь к файлу инвентаризации:

/etc/ansible/hosts

Если хост называется "foosball" и в группах "raleigh" и "webservers", переменные в файлах YAML в следующих местах будут доступны хосту:

/etc/ansible/group_vars/raleigh # can optionally end in '.yml', '.yaml', or '.json'
/etc/ansible/group_vars/webservers
/etc/ansible/host_vars/foosball

Попробуйте переместить переменные в /group_vars/all, чтобы добиться того же результата поддерживаемым способом.

Конечно, вы можете определить эти значения в ansible.cfg, они просто имеют разные имена, поэтому заранее обратитесь к руководству:

  • ansible_shell_type можно определить как executable в ansible.cfg
  • ansible_user как remote_user
  • ansible_ssh_common_args как ssh_args

Значения, установленные в файле конфигурации, будут применяться ко всем хостам, если они не переопределены конкретными настройками.

Другие вопросы по тегам