46 lines
1.4 KiB
Bash
Executable file
46 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
if [ "$#" -ne 2 ]; then
|
|
echo "Gebruik: $0 <hostname> <ip>"
|
|
echo "Voorbeeld: $0 backup 10.10.9.69"
|
|
exit 1
|
|
fi
|
|
|
|
NAME="$1"
|
|
IP="$2"
|
|
ANSIBLE_DIR="/home/wouter/infra/ansible"
|
|
INV="$ANSIBLE_DIR/inventories/lab.ini"
|
|
MAINT_KEY="$(cat /home/wouter/.ssh/id_ed25519.pub)"
|
|
|
|
if grep -q "^$NAME " "$INV"; then
|
|
echo "FOUT: hostname bestaat al in inventory."
|
|
exit 1
|
|
fi
|
|
|
|
if grep -q "ansible_host=$IP" "$INV"; then
|
|
echo "FOUT: IP bestaat al in inventory."
|
|
exit 1
|
|
fi
|
|
|
|
echo "1. Maintenance-key plaatsen op $IP..."
|
|
ssh "wouter@$IP" "mkdir -p ~/.ssh && grep -qxF '$MAINT_KEY' ~/.ssh/authorized_keys 2>/dev/null || echo '$MAINT_KEY' >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
|
|
|
|
echo "2. Known_hosts bijwerken..."
|
|
ssh-keygen -R "$IP" >/dev/null 2>&1 || true
|
|
ssh-keyscan -H "$IP" >> /home/wouter/.ssh/known_hosts
|
|
chmod 600 /home/wouter/.ssh/known_hosts
|
|
|
|
echo "3. Toevoegen aan inventory..."
|
|
sed -i "/^\[managed\]/a $NAME ansible_host=$IP" "$INV"
|
|
|
|
echo "4. Hostname zetten..."
|
|
ansible "$NAME" -i "$INV" -b --ask-become-pass -m command -a "hostnamectl set-hostname $NAME"
|
|
|
|
echo "5. Sudoers voor Ansible zetten..."
|
|
ansible "$NAME" -i "$INV" -b --ask-become-pass -m copy -a 'dest=/etc/sudoers.d/90-ansible content="wouter ALL=(ALL) NOPASSWD:ALL\n" owner=root group=root mode=0440'
|
|
|
|
echo "6. Ping test..."
|
|
ansible "$NAME" -i "$INV" -m ping
|
|
|
|
echo "Klaar: $NAME toegevoegd."
|