open-cmmc-stack/tools/generate_group_vars.py

51 lines
2.5 KiB
Python

import yaml
# Load deployment_config.yml
with open('deployment_config.yml', 'r') as f:
deployment_config = yaml.safe_load(f)
# Flattened structure for group_vars/all.yml
group_vars = {
'default_user': deployment_config['global_admin_username'],
'default_shell': '/bin/bash',
'ssh_authorized_key': deployment_config['admin_ssh_public_key'],
'global_admin_email': deployment_config['global_admin_email'],
'domain_name': deployment_config['domain_name'],
'hostname': deployment_config['hostname'],
'timezone': deployment_config['timezone'],
'dns_resolver_ip': deployment_config['dns_resolver_ip'],
'ssh_port': deployment_config['ssh_port'],
'disable_root_ssh': deployment_config['disable_root_ssh'],
'enforce_key_authentication': deployment_config['enforce_key_authentication'],
'nextcloud_port': deployment_config['nextcloud_port'],
'mailcow_port': deployment_config['mailcow_port'],
'keycloak_port': deployment_config['keycloak_port'],
'stepca_port': deployment_config['stepca_port'],
'wazuh_port': deployment_config['wazuh_port'],
'tailscale_auth_key': deployment_config['tailscale_auth_key'],
'mailcow_hostname': deployment_config['mailcow_hostname'],
'mailcow_admin_user': deployment_config['mailcow_admin_user'],
'mailcow_admin_password': deployment_config['mailcow_admin_password'],
'mailcow_letsencrypt_email': deployment_config['mailcow_letsencrypt_email'],
'mailcow_use_letsencrypt': deployment_config['mailcow_use_letsencrypt'],
'keycloak_realm': deployment_config['keycloak_realm'],
'nextcloud_aio_image': deployment_config['nextcloud_aio_image'],
'keycloak_image': deployment_config['keycloak_image'],
'mailcow_image': deployment_config['mailcow_image'],
'nextcloud_data_dir': deployment_config['nextcloud_data_dir'],
'mailcow_data_dir': deployment_config['mailcow_data_dir'],
'backup_base_dir': deployment_config['backup_base_dir'],
'logs_dir': deployment_config['logs_dir'],
'restic_password': deployment_config['restic_password'],
'restic_repo': deployment_config['restic_repo'],
'svc_keycloak': deployment_config['svc_keycloak'],
'svc_mailcow': deployment_config['svc_mailcow'],
'svc_wazuh': deployment_config['svc_wazuh'],
'svc_stepca': deployment_config['svc_stepca'],
'banner_text': deployment_config['banner_text']
}
# Save to group_vars/all.yml
with open('group_vars/all.yml', 'w') as f:
yaml.dump(group_vars, f, sort_keys=False, default_flow_style=False)