90 lines
2.2 KiB
Markdown
90 lines
2.2 KiB
Markdown
|
|
# setup hypervisor hosts
|
|
|
|
- AlmaLinux 8, minimal install
|
|
- LVM, root uses 30G, no home volume, all remaining disk provisioned by ceph
|
|
- 3 nodes - 192.168.140.1-3/24
|
|
- user: ansible, has password-less sudo and ssh keys setup
|
|
|
|
## network
|
|
|
|
```sh
|
|
nmcli con add type ethernet ifname ens1 con-name ctlplane connection.autoconnect yes ip4 192.168.140.41/24 gw4 192.168.140.1 ipv4.dns 1.1.1.1,8.8.8.8 ipv4.dns-search local
|
|
nmcli con del ens1 && reboot
|
|
```
|
|
|
|
## ansible user
|
|
|
|
```sh
|
|
groupadd -r -g 1001 ansible && useradd -r -u 1001 -g 1001 -m -s /bin/bash ansible ;\
|
|
echo "%ansible ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ansible ;\
|
|
chmod 0440 /etc/sudoers.d/ansible ;\
|
|
passwd ansible ;\
|
|
hostnamectl set-hostname qemu01.local ;\
|
|
hostnamectl set-hostname --transient qemu01.local ;\
|
|
hostnamectl set-hostname --pretty qemu01 ;\
|
|
hostnamectl
|
|
|
|
ssh-copy-id -i ~/.ssh/id_rsa.pub ansible@192.168.140.41
|
|
```
|
|
|
|
# setup python venv
|
|
|
|
Setup a venv the easy way.
|
|
|
|
```sh
|
|
sudo apt-get update
|
|
sudo apt-get install python3-dev libffi-dev gcc libssl-dev
|
|
sudo apt install python3-venv
|
|
mkdir -p /home/tseed/ansible/venv
|
|
python3 -m venv /home/tseed/ansible/venv
|
|
source /home/tseed/ansible/venv/bin/activate
|
|
```
|
|
|
|
# setup ansible environment
|
|
|
|
## install additional ansible galaxy collection
|
|
ansible-galaxy collection install community.general
|
|
|
|
## record collections file for replicating this environment
|
|
nano -cw requirements.yml
|
|
|
|
```sh
|
|
collections:
|
|
- name: community.general
|
|
```
|
|
|
|
## install requirements from file on new environment
|
|
|
|
```sh
|
|
ansible-galaxy collection install -r requirements.yml
|
|
ansible-galaxy collection install community.general --upgrade
|
|
|
|
dnf install sshpass / apt-get install sshpass
|
|
pip install jmespath
|
|
```
|
|
|
|
# run playbook
|
|
|
|
## start venv
|
|
|
|
```sh
|
|
source /home/tseed/ansible/venv/bin/activate
|
|
```
|
|
|
|
## run hypervisor build playbook
|
|
|
|
This only builds hypervisors up to Ceph RBD, VM provisioning not complete
|
|
|
|
```sh
|
|
ansible-playbook bootstrap_hypervisors.yml
|
|
```
|
|
|
|
## run dynamic roles from XCAT inventory for the various provisioned VMs
|
|
|
|
Used in production stack to provision various node classes, there are no real roles in this repo - just framework stuff and ntp/os_packages
|
|
|
|
```sh
|
|
ansible-playbook -l all site.yml
|
|
```
|