Как совместить with_dict и with_sequence? - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь проверить, был ли уже создан пользователь управления JBoss. У меня есть рабочая игра :

- name: Check if Management user has already been created
  shell: "grep -i '{{jbossvars.mgmt_user}}' {{env_home}}/standalone/configuration/mgmt-users.properties | grep -v '#'"
  register: mgmt_users_file
  changed_when: false
  failed_when: mgmt_users_file.rc != 1 and mgmt_users_file.rc != 0
- name: Add Management user if it has not been created
  shell: "{{env_home}}/bin/add-user.sh --silent=true {{jbossvars.mgmt_user}} {{jbossvars.mgmt_pass}}"
  when: mgmt_users_file.stdout == ""

Теперь я пытаюсь зациклить на диктовке, сохраняя ту же функциональность Сценарий может быть выполнен только в том случае, если mgmt_users_file.results [X] .stdout (где X является индексом) пуст.

Я думал о

- name: Add Management user if it has not been created
  shell: "{{ item.value['env_home'] }}/bin/add-user.sh --silent=true {{ item.value['mgmt_user'] }} {{ item.value['mgmt_pass'] }}"
  when: mgmt_users_file.results[{{item2}}].stdout == ""
  with_dict: "{{jbossvars_extra.environments}}"
  with_sequence:
    start=0
    end={{jbossvars_extra.environments|count}}

На самом деле, мне просто нужно иметь возможность вкладывать 2 петли ( item и item2 )

Как я могу получить это?

1 Ответ

0 голосов
/ 25 июня 2019

Невозможно объединить имя переменной таким образом

mgmt_users_file_{{ item.value['env_home'] }}.stdout == ""

Использовать регистр так же, как и раньше

register: mgmt_users_file

print mgmt_users_file чтобы увидеть, какую структуру создал цикл

- debug: var=mgmt_users_file

Используйте структуру mgmt_users_file в следующем цикле.

...