gitops/playbooks/pre_setup.sh
2025-05-23 21:19:18 +08:00

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