Как определить комплексную переменную в файле инвентаризации Ansible - PullRequest
0 голосов
/ 16 октября 2019

В соответствии с официальной документацией вы можете определить переменные в инвентаре способом INI со следующим синтаксисом (key=value):

[atlanta] 
host1
host2

[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

Можно ли определить сложные переменныеНапример:

[atlanta] 
host1 
host2

[atlanta:vars]
userParameters:
  - { string: 'foo', list: ['foo', 'bar'] }

Я обычно определяю сложные переменные в ролях, например, vars / main.yml. В этом случае из-за разных сред я хотел бы определить различные сложные переменные в файле инвентаризации.

Я попытался определить переменные как в формате файла INI, так и в формате YAML, и получаю сообщение об ошибке (пример):

[WARNING]:  * Failed to parse /home/user/dir/inventories/development/hosts.ini with ini plugin: /home/user/dir/inventories/development/hosts.ini:9: Expected key=value, got:
userParameters:

[WARNING]: Unable to parse /home/user/dir/inventories/development/hosts.ini as an inventory source

[WARNING]: No inventory was parsed, only implicit localhost is available

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

1 Ответ

1 голос
/ 16 октября 2019

Q: "Определить переменные в инвентаре способом INI ... Можно ли определить комплексные переменные?"

A: Да. Это возможно. например,

[atlanta:vars]
userParameters=[{'string': 'foo', 'list': ['foo', 'bar']}]
...