53 lines
2.1 KiB
Markdown
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]
|
|
``` |