feat: Добавлена система пресетов для Molecule
- Создана система пресетов для быстрого переключения между конфигурациями - Добавлены пресеты: minimal, standard, docker, cluster - Обновлена структура проекта с папками cicd/, vault/, scripts/ - Упрощена система vault с функциональными секретами - Добавлены скрипты для работы с пресетами - Обновлен Makefile с командами для пресетов - Удалены старые файлы и структуры Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
52
molecule/universal/converge.yml
Normal file
52
molecule/universal/converge.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
vars:
|
||||
# перечисли файлы/глобы, которые нужно временно расшифровать
|
||||
vault_targets:
|
||||
- /ansible/vault/secrets.yml
|
||||
# добавляй сюда свои пути (host_vars/*/vault.yml, group_vars/*/vault.yml, и т.п.)
|
||||
|
||||
tasks:
|
||||
- name: Install required collections (use repo's requirements.yml)
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible
|
||||
command: bash -lc "ansible-galaxy collection install -r /ansible/requirements.yml || true"
|
||||
|
||||
- name: Decrypt vault targets (best-effort)
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible
|
||||
command: >
|
||||
bash -lc '
|
||||
set -euo pipefail;
|
||||
for p in {{ vault_targets | map('quote') | join(' ') }}; do
|
||||
if [ -e "$p" ]; then
|
||||
echo "[vault] decrypt $p";
|
||||
ansible-vault decrypt --vault-password-file /ansible/vault-password.txt "$p" || true;
|
||||
fi
|
||||
done
|
||||
'
|
||||
|
||||
- name: Run external playbook (your lab play)
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible
|
||||
command: >
|
||||
bash -lc "
|
||||
ANSIBLE_ROLES_PATH=/ansible/roles
|
||||
ansible-playbook -i {{ lookup('env','MOLECULE_EPHEMERAL_DIRECTORY') }}/inventory/hosts.ini /ansible/molecule/universal/site.yml
|
||||
"
|
||||
|
||||
- name: Re-encrypt vault targets (always)
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible
|
||||
command: >
|
||||
bash -lc '
|
||||
set -euo pipefail;
|
||||
for p in {{ vault_targets | map('quote') | join(' ') }}; do
|
||||
if [ -e "$p" ]; then
|
||||
echo "[vault] encrypt $p";
|
||||
ansible-vault encrypt --encrypt-vault-id default --vault-password-file /ansible/vault-password.txt "$p" || true;
|
||||
fi
|
||||
done
|
||||
'
|
||||
ignore_errors: true
|
||||
Reference in New Issue
Block a user