server-config/roles/pxe/templates/ks/getvaultpass.py

22 lines
597 B
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Crypto.Hash import MD5
from Crypto.Cipher import AES
from base64 import b64decode
from requests import get
from socket import gethostname
from os import makedirs, path
key = MD5.new(gethostname()).digest()
cipher = AES.new(key, AES.MODE_ECB)
base64enc = get("http://{{ serverfqdn }}:3000/vaultpass")
encrypted = b64decode(base64enc.content)
longpass = cipher.decrypt(encrypted)
if not path.exists('/root/.ansible'):
makedirs('/root/.ansible')
with open('/root/.ansible/vault.txt', 'w+') as vaultfile:
vaultfile.write(longpass.strip('x'))