snel.ansible/README.md

53 lines
2.1 KiB
Markdown

Snel.com Ansible Playbooks
---
## Preparation
Make sure you followed the instructions in [INSTALL.md](./INSTALL.md)
## Step 1: Customer order
Customer orders cluster using the [special order page](https://my.snel.com/cart/kubernetes/)
## Step 2: Create inventory
In this repo:
- Create a copy of the inventory file `inventory/cluster_[NAME].yml.tpl`.
- Replace `[NAME]` with the name of the cluster and remove te `.tpl` suffix.
- Inside this file replace all `[NAME]` and update the IPs
- In the package the customer will have one new Cloud VPS Bucket, this IP is used for the Control Load Balancer `control.[NAME].k8s.snel.com`
- In the package the customer will have 6 new Talos VPSses.
- The first 3 IPs need to be used for the `talos_control_nodes`
- The remaining 3 IPs need to be used for the `talos_worker_nodes`
- Attach 2 extra IPs to the VPS which will become `c1.[NAME].k8s.snel.com`, the first control node.
- Use these IPs in the inventory file as `ingress_ips`
- These will be floating IPs for MetalLB
## Step 3: Make sure you can login on the Control Load Balancer using your SSH key
- Copy your public key to the user created by Hostbill
```bash
PUBLIC_KEY_FILE="${HOME}/.ssh/id_ed25519"
ssh-copy-id -i "${PUBLIC_KEY_FILE}" client_XXXXX_XX@185.62.XXX.XXX
```
- Login as the user created by Hostbill
```bash
ssh client_XXXXX_XX@185.62.XXX.XXX
```
- Copy the public key to root. The sudo password will be asked which, this is the same as the user password from Hostbill.
```bash
sudo bash -c 'mkdir -p /root/.ssh; cat /home/client_*/.ssh/authorized_keys >> /root/.ssh/authorized_keys'
```
## Step 3: Execute playbook - VPSses
Your Vaultwarden vault password will be asked.
```zsh
cd ~/repos/snel.ansible
git pull --recurse-submodules
bw sync
BW_SESSION=$(bw unlock --raw) ansible-playbook site.yml --limit cluster_[NAME]
```
## Execute playbook - (Re)install Talos on Hardware
Your Vaultwarden vault password will be asked.
```zsh
cd ~/repos/snel.ansible
bw sync
BW_SESSION=$(bw unlock --raw) ansible-playbook ./playbooks/snel.kubernetes-cluster/dci_reinstall_talos.yml --limit cluster_[NAME]
```