ini - Использует файл Ansible INI в качестве источника инвентаризации.
Новое в версии 2.4.
Обзор
- Инвентаризация на основе файла INI, секции — это группы или группы, связанные специальным
:modifiers. - Элементы в секциях
[group_1]— это хосты, члены группы. - Хосты могут иметь переменные, определённые inline как пары «ключ/значение», разделённые
=. - Модификатор
childrenуказывает, что секция содержит группы. - Модификатор
varsуказывает, что секция содержит переменные, присваиваемые членам группы. - Всё, что находится вне секции, считается хостом без группы.
- Значения, переданные с помощью синтаксиса
key=value, интерпретируются как структура литералов Python (строки, числа, кортежи, списки, словари, булевы значения, None), либо как строка. Например,var=FALSEсоздаст строку, равную ‘FALSE’. Не полагайтесь на типы, заданные при определении; всегда убедитесь, что вы указываете тип с фильтром, когда это необходимо, при использовании переменной.
Примечания
Примечание
- Заменяет ранее жёстко закодированную инвентаризацию INI.
- Для работы ей требуется быть включённой в конфигурацию.
- Значения переменных обрабатываются функцией Python ast.literal_eval (https://docs.python.org/2/library/ast.html#ast.literal_eval), что в некоторых случаях может привести к изменению значения. См. примеры для правильного указания кавычек, чтобы предотвратить изменения. Другой вариант — использовать формат yaml для источника инвентаризации, который обрабатывает значения корректно.
Примеры
example1: |
# example cfg file
[web]
host1
host2 ansible_port=222
[web:vars]
http_port=8080 # all members of 'web' will inherit these
myvar=23
[web:children] # child groups will automatically add their hosts to partent group
apache
nginx
[apache]
tomcat1
tomcat2 myvar=34 # host specific vars override group vars
tomcat3 mysecret="'03#pa33w0rd'" # proper quoting to prevent value changes
[nginx]
jenkins1
[nginx:vars]
has_java = True # vars in child groups override same in parent
[all:vars]
has_java = False # 'all' is 'top' parent
example2: |
# other example config
host1 # this is 'ungrouped'
# both hosts have same IP but diff ports, also 'ungrouped'
host2 ansible_host=127.0.0.1 ansible_port=44
host3 ansible_host=127.0.0.1 ansible_port=45
[g1]
host4
[g2]
host4 # same host as above, but member of 2 groups, will inherit vars from both
# inventory hostnames are unique
Статус
Автор
- НЕИЗВЕСТНО
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/plugins/inventory/ini.html