Spaces:
No application file
No application file
File size: 1,492 Bytes
53b59a6 82a2f16 53b59a6 82a2f16 53b59a6 82a2f16 53b59a6 82a2f16 53b59a6 82a2f16 53b59a6 82a2f16 53b59a6 |
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 |
#!/bin/bash
# Configuration
APP_SERVER="student-admin@group18"
INITIAL_SETUP_SCRIPT="/opt/CS_553/deployment/02_deploy_to_controller/scripts/initial_ssh_config.sh"
TAILSCALE_KEY_FILE="/home/ubuntu/.tailscale_key"
ANSIBLE_PLAYBOOK="/opt/CS_553/deployment/01_deploy_to_app/playbooks/main.yml"
ANSIBLE_INVENTORY="/opt/CS_553/deployment/01_deploy_to_app/inventory/hosts.ini"
ANSIBLE_CONFIG="/opt/CS_553/deployment/01_deploy_to_app/ansible.cfg"
VAULT_PASSWORD_FILE="/home/ubuntu/.ansible/vault_password.txt"
# Function to check SSH connection
check_ssh_connection() {
ssh -o BatchMode=yes -o ConnectTimeout=5 $APP_SERVER exit
return $?
}
# Main logic
if ! check_ssh_connection; then
echo "Connection failed. Running initial setup script and 01 ansible script..."
if [ -f "$TAILSCALE_KEY_FILE" ]; then
TAILSCALE_KEY=$(cat "$TAILSCALE_KEY_FILE")
$INITIAL_SETUP_SCRIPT -k "$TAILSCALE_KEY"
# Run the 01 ansible script
if [ -f "$ANSIBLE_PLAYBOOK" ] && [ -f "$ANSIBLE_INVENTORY" ] && [ -f "$ANSIBLE_CONFIG" ] && [ -f "$VAULT_PASSWORD_FILE" ]; then
ANSIBLE_CONFIG="$ANSIBLE_CONFIG" ansible-playbook -i "$ANSIBLE_INVENTORY" "$ANSIBLE_PLAYBOOK" --vault-password-file "$VAULT_PASSWORD_FILE"
else
echo "One or more required files for running the ansible playbook are missing."
exit 1
fi
else
echo "Tailscale key file not found. Cannot run initial setup or ansible playbook."
exit 1
fi
else
echo "Connection successful. No action needed."
fi
|