Можно ли отключить хранилище с помощью ansible playbook?

В целях автоматического тестирования я хотел бы отключить хранилище при выполнении ansible-playbook, чтобы зашифрованные переменные переопределялись в тестах.

Я видел --ask-vault-pass, но не наоборот, то есть --no-vault-pass или подобное.

В настройках ansible не указана переменная среды для этого.


person Bruno Thomas    schedule 06.05.2019    source источник
comment
Я не думаю, что есть такая опция, но вы можете передать фиксированные вары для тестов, используя опцию --vault-id   -  person error404    schedule 06.05.2019
comment
да, а затем ansible ищет файл паролей; если он не может расшифровать файлы хранилища, он терпит неудачу.   -  person Bruno Thomas    schedule 06.05.2019
comment
Вы можете использовать специальный файл конфигурации для целей тестирования, преднамеренно исключив информацию о хранилище.   -  person dgw    schedule 06.05.2019


Ответы (2)


Вы можете создать специальный файл конфигурации для своих тестов, в котором информация о хранилище преднамеренно исключена, и указать ansible использовать этот файл конфигурации при запуске тестовых плейбуков:

ANSIBLE_CONFIG=/my/special.cfg ansible-playbook testplaybook.yml
person dgw    schedule 06.05.2019
comment
Спасибо за ваше предложение. Мы создали каталог test (со всеми тестовыми материалами) и запускаем тесты отсюда (файл ansible.cfg находится в корневом каталоге) с помощью shunit2. - person Bruno Thomas; 07.05.2019

Возможно, вы ищете разделение структур по средам, что-то вроде этого:

├── ansible.cfg               # check below.
├── inventories               # directory to group all hosts and variables.
│   ├── production            # "environment" directory as we discussed before.
│   │   ├── group_vars
│   │   │   ├── appserver
│   │   │   │   ├── vars.yml
│   │   │   │   └── vault.yml # encrypted sensitive data.
│   │   │   └── proxyserver
│   │   │       ├── vars.yml
│   │   │       └── vault.yml
│   │   └── inventory
│   ├── staging
│   │   ├── group_vars
│   │   │   ├── appserver
│   │   │   │   ├── vars.yml
│   │   │   │   └── vault.yml # encrypted sensitive data.
│   │   │   └── proxyserver
│   │   │       ├── vars.yml
│   │   │       └── vault.yml
│   │   └── inventory
│   └── development
│       ├── group_vars
│       │   ├── appserver
│       │   │   └── vars.yml  # no need to encrypt for local development.
│       │   └── proxyserver
│       │       └── vars.yml
│       └── inventory
├── site.yml
├── books                     # group all the playbooks under same directory.
│   ├── appserver.yml
│   └── proxyserver.yml
├── roles
│   └── app
└── roles.galaxy              # separate contributed roles
    └── author.proxy

Продолжить здесь: https://steyeu.co/posts/ansible-project-layout-for-multistage-environments-based-on-best-practice/#the-suggested-путь

person johnymachine    schedule 06.05.2019
comment
Да, это то, что мы сделали с тестовым каталогом и тестовым инвентарем. - person Bruno Thomas; 07.05.2019