как часть ansible автоматизации, существует файл переменной, генерируемый в следующем формате и сохраняемый как somedictvars.yml
, и я могу использовать циклическое выполнение, если в задаче я указываю каждый ключ отдельно.
Но, так как он генерируется автоматически и количество ключей различается (иногда он может иметь одного сотрудника, а иногда может иметь более одной информации о сотруднике.), я ищу способ указать только префикс KEY, используемый в l oop.
somedictvars.yml
- employee1:
name: Martin D'vloper
job: Developer
skills:
- python
- perl
- pascal
- employee2:
name: Tabitha Bitumen
job: Developer
skills:
- lisp
- fortran
- erlang
my ansible playbook работает, как указано ниже, вручную определяя каждую клавишу dict var.
- name: include vars from YAML config files.
include_vars: somedictvars.yml
- name: debug
debug:
msg: "{{ item.name }}"
loop:
- "{{ employee1 }}"
- "{{ employee2 }}"
вывод: TASK [отладка]
*********************************************************************************************************************************************************************
ok: [UKXWD1EM01] => (item={u'skills': [u'python', u'perl', u'pascal'], u'job': u'Developer', u'name': u"Martin D'vloper"}) => {
"msg": "Martin D'vloper"
}
ok: [UKXWD1EM01] => (item={u'skills': [u'lisp', u'fortran', u'erlang'], u'job': u'Developer', u'name': u'Tabitha Bitumen'}) => {
"msg": "Tabitha Bitumen"
}
Пожалуйста, помогите, как использовать общее имя в l oop .. как employee[0-9]
, и если мой файл имеет 1 ключ, он будет напечатан в режиме отладки, и если он имеет 3 ключа, я буду напечатан только 3 ключа ['name'].
Иначе, пожалуйста, предложите, если я могу изменить формат файла на любой другой, чтобы соответствовать ansible. так что цикл может работать автоматически для любого числа переменных KEYs, доступных внутри файла.
Пожалуйста, помогите.
заранее спасибо.