Skip to content

Commit 675f256

Browse files
committed
init vault
1 parent f373d3b commit 675f256

File tree

3 files changed

+35
-15
lines changed

3 files changed

+35
-15
lines changed

ansible/roles/vault/files/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ services:
88
volumes:
99
- ./config:/vault/config
1010
- ./data:/vault/file
11+
- ./init-vault.sh/init-vault.sh:ro
1112
cap_add:
1213
- IPC_LOCK
1314
command: "vault server -config=/vault/config/vault-config.json"

ansible/roles/vault/files/init-vault.sh

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,51 @@ set -euo pipefail
44
# CONFIGURATIONS
55
POLICY_NAME="ansible-policy"
66
ROLE_NAME="ansible-role"
7-
SECRET_PATH="ansible"
7+
# Usa un array per i percorsi dei segreti
8+
SECRET_PATHS=("ansible" "terraform")
89
VAULT_ADDR="${VAULT_ADDR:-http://127.0.0.1:8200}"
9-
VAULT_TOKEN="${VAULT_TOKEN:?VAULT_TOKEN mancante}"
10+
VAULT_TOKEN="${VAULT_TOKEN:?VAULT_TOKEN missing}"
1011

1112
# Install dependencies
1213
apk add jq
1314

1415
echo "[+] Init Vault..."
1516

16-
# Check if secret engine is already enabled
17-
if vault secrets list -format=json | jq -e ".[\"$SECRET_PATH/\"]"; then
18-
echo "[+] Secret engine '$SECRET_PATH/' already enabled."
19-
else
20-
echo "[+] Enabling secret engine '$SECRET_PATH/' (kv-v2)..."
21-
vault secrets enable -path="$SECRET_PATH" -version=2 kv
22-
fi
17+
# Abilita tutti i motori di segreti specificati nell'array
18+
for SECRET_PATH in "${SECRET_PATHS[@]}"; do
19+
# Check if secret engine is already enabled
20+
if vault secrets list -format=json | jq -e ".[\"$SECRET_PATH/\"]" > /dev/null 2>&1; then
21+
echo "[+] Secret engine '$SECRET_PATH/' already enabled."
22+
else
23+
echo "[+] Enabling secret engine '$SECRET_PATH/' (kv-v2)..."
24+
vault secrets enable -path="$SECRET_PATH" -version=2 kv
25+
fi
26+
done
2327

2428
# Check if Approle auth method is already enabled
25-
if vault auth list -format=json | jq -e '."approle/"'; then
29+
if vault auth list -format=json | jq -e '."approle/"' > /dev/null 2>&1; then
2630
echo "[+] Auth method AppRole already enabled."
2731
else
2832
echo "[+] Enabling auth method AppRole..."
2933
vault auth enable approle
3034
fi
3135

32-
# Create or update policy
36+
# Crea una policy che include tutti i path specificati
3337
echo "[+] Writing policy '$POLICY_NAME'..."
34-
cat <<EOF | vault policy write "$POLICY_NAME" -
35-
path "$SECRET_PATH/data/*" {
36-
capabilities = ["create", "read", "update", "delete", "list"]
38+
39+
# Inizia la policy con un'intestazione vuota
40+
POLICY_CONTENT=""
41+
42+
# Aggiungi ogni percorso alla policy
43+
for SECRET_PATH in "${SECRET_PATHS[@]}"; do
44+
POLICY_CONTENT+="path \"$SECRET_PATH/data/*\" {
45+
capabilities = [\"create\", \"read\", \"update\", \"delete\", \"list\"]
3746
}
38-
EOF
47+
"
48+
done
49+
50+
# Scrivi la policy completa
51+
echo "$POLICY_CONTENT" | vault policy write "$POLICY_NAME" -
3952

4053
# Check if role is already created
4154
if vault read -format=json "auth/approle/role/$ROLE_NAME" > /dev/null 2>&1; then

ansible/roles/vault/tasks/main.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
update_compose_local_path: "{{ local_path }}"
1616
update_compose_project_path: "{{ project_path }}"
1717

18+
- name: Copy init-vault.sh
19+
ansible.builtin.copy:
20+
src: "{{ vault_files_path }}/init-vault.sh"
21+
dest: ~/init-vault.sh
22+
mode: '0644'
23+
1824
- name: Read remote vault-config.json
1925
ansible.builtin.stat:
2026
path: ~/config/vault-config.json

0 commit comments

Comments
 (0)