-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstore_keys.py
More file actions
59 lines (52 loc) · 1.9 KB
/
Copy pathstore_keys.py
File metadata and controls
59 lines (52 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import hvac
# Initialize the Vault client
def initialize_vault_client(vault_addr, token):
client = hvac.Client(url=vault_addr, token=token)
return client
# Function to store secrets in Vault
def store_secrets(vault_addr, token, path, secrets):
try:
client = initialize_vault_client(vault_addr, token)
# Write the secrets to Vault
client.secrets.kv.v2.create_or_update_secret(
path=path,
secret=secrets
)
return True, "Secrets stored successfully"
except Exception as e:
return False, f"Error storing secrets: {str(e)}"
# Example usage
if __name__ == "__main__":
vault_addr = "http://127.0.0.1:8200"
token = "<vault_root_token>" # UPDATE THIS
# General secrets
secrets_to_store = {
"secret/discord": {
"DISCORD_WEBHOOK_URL": "<discord_webhook>" # UPDATE THIS
},
"secret/esxi": {
"ESXI_USER": "<esxi_username>", # UPDATE THIS
"ESXI_PASS": "<esxi_password>" # UPDATE THIS
}
}
# Store general secrets
for path, secrets in secrets_to_store.items():
success, message = store_secrets(vault_addr, token, path, secrets)
print(f"Path: {path} - {message}")
# QNAP specific secrets
qnap_secrets = {
"192.168.1.11": { # UPDATE THIS
"QNAP_ADMIN_USER": "<qnap_username>", # UPDATE THIS
"QNAP_ADMIN_PASS": "<qnap_password>" # UPDATE THIS
},
"192.168.1.12": { # UPDATE THIS
"QNAP_ADMIN_USER": "<qnap_username>", # UPDATE THIS
"QNAP_ADMIN_PASS": "<qnap_password>" # UPDATE THIS
},
# Add more QNAP hosts as needed
}
# Store QNAP secrets
for qnap_host, secrets in qnap_secrets.items():
path = f"secret/qnap/{qnap_host}"
success, message = store_secrets(vault_addr, token, path, secrets)
print(f"Path: {path} - {message}")