В моем файле Orchestration я определяю переменные "secret_name" и "vault_name" следующим образом:
- hosts: host1
roles:
- role: launch-playbook
playbook_name: '{{playbook_dir}}/{{Pos_playbook}}'
secret_name:
vault_name:
Как вы можете видеть, secret_name и vault_name не определены (без значений). Однако, когда я распечатываю команду, она обнаруживает, что имя_секрета и имя_хранилища действительно существуют.
Я запускаю команду:
- set_fact:
execution_command: "ansible-playbook -i {{inventory_file}} {{playbook_name}} {% if secret_name is defined %}
-e {{secret_name}} {% else %} {% endif %} {% if vault_name is defined %} --vault-password-file {{vault_name}} {% else %} {% endif %}"
И вот вывод:
ok: [web1] => {
"msg": "The execution_command is !ansible-playbook -i /fndusers/fnd/users/pkiadm/itay/backing-services/tbs_orchestration/playbook/inventory_itay.yml /fndusers/fnd/users/pkiadm/users/tanya/t2/PostgreSQL/pg_orchestartion.yaml
-e --vault-password-file !"
}
"-e" и "--vault-password-file" не должны быть там !! Так как значения секрета и хранилища не определены !! но он учитывает их так же, как они существуют, и их значения равны "".
Я не могу найти, что не так с моим синтаксисом / logi c?