Обновление проекта
This commit is contained in:
@@ -52,6 +52,20 @@
|
||||
Files: {{ vault_targets | length }} targets
|
||||
================================================================================
|
||||
|
||||
- name: Check if vault file is encrypted
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible-controller
|
||||
command: "bash -c 'if [ -f \"/workspace/vault/secrets.yml\" ]; then grep -q \"ANSIBLE_VAULT\" /workspace/vault/secrets.yml && echo \"ENCRYPTED\" || echo \"PLAINTEXT\"; else echo \"NOT_FOUND\"; fi'"
|
||||
register: vault_status
|
||||
ignore_errors: true
|
||||
|
||||
- name: Encrypt vault file if plaintext
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible-controller
|
||||
command: "bash -c 'VAULT_PASSWORD_FILE=\"/workspace/vault/.vault\"; if [ -f \"$VAULT_PASSWORD_FILE\" ] && [ -f \"/workspace/vault/secrets.yml\" ] && [ \"{{ vault_status.stdout }}\" = \"PLAINTEXT\" ]; then ansible-vault encrypt --encrypt-vault-id default --vault-password-file \"$VAULT_PASSWORD_FILE\" /workspace/vault/secrets.yml; fi'"
|
||||
when: vault_status.stdout == "PLAINTEXT"
|
||||
ignore_errors: true
|
||||
|
||||
- name: Preflight vault — normalize state (encrypt if plaintext, then decrypt)
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible-controller
|
||||
@@ -70,10 +84,52 @@
|
||||
File: /workspace/molecule/default/site.yml
|
||||
================================================================================
|
||||
|
||||
- name: Run lab playbook
|
||||
- name: Debug - Check files in container
|
||||
community.docker.docker_container_exec:
|
||||
container: ansible-controller
|
||||
command: "bash -c 'ANSIBLE_ROLES_PATH=/workspace/roles; VAULT_PASSWORD_FILE=\"/workspace/vault/.vault\"; VAULT_SECRETS_FILE=\"/workspace/vault/secrets.yml\"; INVENTORY_FILE=\"/tmp/molecule_workspace/inventory/hosts.ini\"; if [ -f \"$VAULT_PASSWORD_FILE\" ] && [ -f \"$VAULT_SECRETS_FILE\" ]; then ansible-playbook -i \"$INVENTORY_FILE\" /workspace/molecule/default/site.yml --vault-password-file \"$VAULT_PASSWORD_FILE\" -e \"vault_file_path=$VAULT_SECRETS_FILE\"; else ansible-playbook -i \"$INVENTORY_FILE\" /workspace/molecule/default/site.yml; fi'"
|
||||
command: |
|
||||
bash -c '
|
||||
echo "=== DEBUG INFO ==="
|
||||
echo "Current directory: $(pwd)"
|
||||
echo "ANSIBLE_ROLES_PATH: $ANSIBLE_ROLES_PATH"
|
||||
echo "VAULT_PASSWORD_FILE: $VAULT_PASSWORD_FILE"
|
||||
echo "VAULT_SECRETS_FILE: $VAULT_SECRETS_FILE"
|
||||
echo "INVENTORY_FILE: $INVENTORY_FILE"
|
||||
echo ""
|
||||
echo "=== FILE CHECKS ==="
|
||||
echo "Inventory exists: $([ -f "/tmp/molecule_workspace/inventory/hosts.ini" ] && echo "YES" || echo "NO")"
|
||||
echo "Vault password exists: $([ -f "/workspace/vault/.vault" ] && echo "YES" || echo "NO")"
|
||||
echo "Vault secrets exists: $([ -f "/workspace/vault/secrets.yml" ] && echo "YES" || echo "NO")"
|
||||
echo "Site.yml exists: $([ -f "/workspace/molecule/default/site.yml" ] && echo "YES" || echo "NO")"
|
||||
echo ""
|
||||
echo "=== DIRECTORY LISTING ==="
|
||||
ls -la /tmp/molecule_workspace/ || echo "No molecule_workspace dir"
|
||||
ls -la /workspace/vault/ || echo "No vault dir"
|
||||
echo ""
|
||||
echo "=== INVENTORY CONTENT ==="
|
||||
cat /tmp/molecule_workspace/inventory/hosts.ini || echo "Cannot read inventory"
|
||||
'
|
||||
|
||||
# - name: Run lab playbook
|
||||
# community.docker.docker_container_exec:
|
||||
# container: ansible-controller
|
||||
# command: |
|
||||
# bash -c '
|
||||
# set -e
|
||||
# export ANSIBLE_ROLES_PATH=/workspace/roles
|
||||
# export VAULT_PASSWORD_FILE="/workspace/vault/.vault"
|
||||
# export VAULT_SECRETS_FILE="/workspace/vault/secrets.yml"
|
||||
# export INVENTORY_FILE="/tmp/molecule_workspace/inventory/hosts.ini"
|
||||
# echo "Starting playbook execution..."
|
||||
# if [ -f "$VAULT_PASSWORD_FILE" ] && [ -f "$VAULT_SECRETS_FILE" ]; then
|
||||
# echo "Running with vault..."
|
||||
# ansible-playbook -i "$INVENTORY_FILE" /workspace/molecule/default/site.yml --vault-password-file "$VAULT_PASSWORD_FILE" -e "vault_file_path=$VAULT_SECRETS_FILE" -v
|
||||
# else
|
||||
# echo "Running without vault..."
|
||||
# ansible-playbook -i "$INVENTORY_FILE" /workspace/molecule/default/site.yml -v
|
||||
# fi
|
||||
# echo "Playbook completed successfully"
|
||||
# '
|
||||
|
||||
# =============================================================================
|
||||
# CLEANUP - Перешифровка файлов после выполнения
|
||||
|
||||
Reference in New Issue
Block a user