@@ -4,38 +4,51 @@ set -euo pipefail
44# CONFIGURATIONS
55POLICY_NAME=" ansible-policy"
66ROLE_NAME=" ansible-role"
7- SECRET_PATH=" ansible"
7+ # Usa un array per i percorsi dei segreti
8+ SECRET_PATHS=(" ansible" " terraform" )
89VAULT_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
1213apk add jq
1314
1415echo " [+] 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."
2731else
2832 echo " [+] Enabling auth method AppRole..."
2933 vault auth enable approle
3034fi
3135
32- # Create or update policy
36+ # Crea una policy che include tutti i path specificati
3337echo " [+] 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
4154if vault read -format=json " auth/approle/role/$ROLE_NAME " > /dev/null 2>&1 ; then
0 commit comments