49 lines
1.1 KiB
Bash
49 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Function to check if a variable is empty
|
|
check_empty() {
|
|
if [ -z "${!1}" ]; then
|
|
echo "$1 is empty. Aborting."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# List of variables to check
|
|
variables=("DNS_AK" "DNS_SK" "OSS_AK" "OSS_SK" "ROOT_PASSWORD" "SMTP_PASSWORD" "GITLAB_OIDC_CLIENT_TOKEN" "HARBOR_OIDC_CLIENT_TOKEN" "SSH_USER" "SSH_HOST_IP" "SSH_HOST_DOMAIN" "SSH_PRIVATE_KEY")
|
|
|
|
# Loop through variables and check if each one is empty
|
|
for var in "${variables[@]}"; do
|
|
check_empty "$var"
|
|
done
|
|
|
|
sudo apt install jq ansible -y
|
|
|
|
mkdir -pv ~/.ssh/
|
|
cat > ~/.ssh/id_rsa << EOF
|
|
$SSH_PRIVATE_KEY
|
|
EOF
|
|
sudo chmod 0400 ~/.ssh/id_rsa
|
|
md5sum ~/.ssh/id_rsa
|
|
|
|
mkdir -pv hosts/
|
|
|
|
cat > hosts/inventory << EOF
|
|
[master]
|
|
$SSH_HOST_DOMAIN ansible_host=$SSH_HOST_IP
|
|
|
|
[all:vars]
|
|
ansible_port=22
|
|
ansible_ssh_user=$SSH_USER
|
|
ansible_ssh_private_key_file=~/.ssh/id_rsa
|
|
ansible_host_key_checking=False
|
|
ingress_ip=$SSH_HOST_IP
|
|
dns_ak=$DNS_AK
|
|
dns_sk=$DNS_SK
|
|
oss_ak=$OSS_AK
|
|
oss_sk=$OSS_SK
|
|
admin_password=$ROOT_PASSWORD
|
|
smtp_password=$SMTP_PASSWORD
|
|
gitlab_oidc_client_token=$GITLAB_OIDC_CLIENT_TOKEN
|
|
harbor_oidc_client_token=$HARBOR_OIDC_CLIENT_TOKEN
|
|
EOF
|