Как определить параметры командной строки из ansible playbook - PullRequest
1 голос
/ 26 сентября 2019

Мне нужно определить, использовал ли кто-то опцию --ask-vault-pass при исполнении своей пьесы или нет.Если они не выполнили команду ansible-playbook с --ask-vault-pass, откажитесь от нее.

Пропустите, если кто-то запустит как:

ansible-playbook -i myinv.ini test.yml --ask-vault-pass

Сбой, если кто-то запустит как:

ansible-playbook -i myinv.ini test.yml

Обратите внимание, что это не extra-vars, что я мог бы проверить.

1 Ответ

1 голос
/ 26 сентября 2019

Следующее не определяет параметр --ask-vaul-pass, но все равно удовлетворит ваше требование.В любом случае, обратите внимание, что обнаружение этой опции само по себе недостаточно для вашей потребности, поскольку вы можете предоставить пароль хранилища разными способами (опция --vault-passwork-file, переменные среды ...)

По сути, я тестирую одну изВары, которые я знаю, закодированы, и, если мы не можем расшифровать, они не работают.Я настроил таргетинг на localhost для целей теста, но вы можете выбрать любую группу.Вот почему я использовал run_once в тестовом задании, чтобы убедиться, что мы тестируем только один раз для всех хостов в игре.Я также использовал no_log, чтобы не допустить утечки конфиденциальных данных на экран.

- hosts: localhost
  gather_facts: false

  vars:
    test_var: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      <encrypted data goes here>

  pre_tasks:
    - block:
        - name: verify we can decode vault
          debug:
            var: test_var
          no_log: true
          run_once: true
      rescue:
        - name: fail playbook if decode failed
          fail:
            msg: You did not provide a vault pass or it is not recognized
  tasks:
    - name: a task
      debug:
        msg: I'll be played if pre_tasks are ok

Может ли это помочь вам в вашей ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...