67 lines
1.3 KiB
Bash
Executable File
67 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
REPO_URL="https://gitea.romerozone.top/robert/ansible_pull_master.git"
|
|
|
|
echo "=== Ansible Pull Bootstrap ==="
|
|
echo
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Please run this script with sudo:"
|
|
echo " sudo ./bootstrap.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# Detect operating system
|
|
source /etc/os-release
|
|
|
|
echo "Detected OS: $PRETTY_NAME"
|
|
echo
|
|
|
|
case "$ID $ID_LIKE" in
|
|
*ubuntu*|*debian*)
|
|
PLAYBOOK="local.yml"
|
|
|
|
echo "Installing required packages..."
|
|
apt update
|
|
apt install -y git ansible
|
|
|
|
echo
|
|
read -rsp "Enter Ansible Vault password: " VAULT_PASSWORD
|
|
echo
|
|
|
|
printf '%s\n' "$VAULT_PASSWORD" > /root/.ansible_vault_password
|
|
chmod 600 /root/.ansible_vault_password
|
|
unset VAULT_PASSWORD
|
|
|
|
mkdir -p /etc/ansible
|
|
|
|
cat > /etc/ansible/ansible.cfg <<'EOF'
|
|
[defaults]
|
|
vault_password_file = /root/.ansible_vault_password
|
|
EOF
|
|
;;
|
|
|
|
*arch*)
|
|
PLAYBOOK="arch.yml"
|
|
|
|
echo "Updating system and installing required packages..."
|
|
pacman -Syu --needed --noconfirm git ansible
|
|
;;
|
|
|
|
*)
|
|
echo "Unsupported operating system: $ID"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo
|
|
echo "Running initial Ansible Pull using $PLAYBOOK..."
|
|
echo
|
|
|
|
ansible-pull -U "$REPO_URL" "$PLAYBOOK"
|
|
|
|
echo
|
|
echo "=== Bootstrap complete ==="
|