Cloud OS1

OS1

Machine Fournisseur Type Architecture Datacenter Nom
Controleur 1 Hetzner AX41-NVMe x84_64 HEL1-DC5 hn002.pkgdata.net
Compute 1 Hetzner RX220 aarch64 HEL1-DC5 hn003.pkgdata.net
Compute 2 Hetzner AX101 x86_64 FSN1-DC7 hn004.pkgdata.net
Compute 3 Hetzner RX220 aarch64 FSN1-DC17 hn005.pkgdata.net
Compute 4 Hetzner AX101 x86_64 FSN1-DC1 hn006.pkgdata.net

Dashboard (horizon) : https://os1.pkgdata.net

Installation

Installation de Debian

Booter les machines en mode rescue

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@hn00X.pkgdata.net
installimage
	Debian
		Debian-1101
			PART /boot ext3 1G
			PART swap swap 4G

			# pour les compute uniquement :
			# ===
			PART lvm vg0-raid1 500G
			PART lvm cinder-volumes all
			# ===

			# pour le controleur uniquement :
			# ===
			PART lvm vg0-raid1 all
			# ===
			LV vg0-raid1 root / ext4 20G
			LV vg0-raid1 home /home ext4 200G
reboot

Vswitch

Ajouter les machine aux vSwitchs sur https://robot.hetzner.com/vswitch/index

os1-mgmt	: 4001
os1-storage	: 4002
os1-vxlan	: 4003
os1-vlan	: 4004

Installation des outils PKGDATA et pre-requis Openstack

cd ~/work/infras
ansible-playbook -i 000_hosts playbooks/site.yml --flush-cache --user=root --vault-id @prompt --limit os1_servers
ansible-playbook -i 000_hosts playbooks/telegraf.yml --flush-cache --vault-id @prompt --limit os1_servers
ansible-playbook -i 000_hosts playbooks/icinga.yml --vault-id @prompt --tags add-hosts --flush-cache

Upgrade et reboot

ssh hn00X.pkgdata.net
sudo apt-get update && sudo apt-get -y dist-upgrade
sudo reboot

Installer Openstack (https://docs.openstack.org/project-deploy-guide/openstack-ansible/yoga/)

ssh -a hn002.pkgdata.net
sudo su
mv /home/pkgdata/openstack_configs/ssh_keypairs /home/pkgdata/openstack_configs/ssh_keypairs.old
cd /opt/openstack-ansible/playbooks
openstack-ansible setup-hosts.yml
openstack-ansible setup-infrastructure.yml
openstack-ansible setup-openstack.yml

Si le réseau ne répond plus sur les computes :

for int in br-vlan br-vxlan br-storage br-mgmt; do ifdown $int; ifup $int; done

Désactiver les logs DEBUG sur libvirtd :


Ajouter un compute

ssh -a hn002.pkgdata.net
sudo su
cd /opt/openstack-ansible/playbooks
openstack-ansible setup-hosts.yml --limit localhost,compute3
openstack-ansible setup-openstack.yml --limit localhost,compute3

Configuration

Configurer Openstack

Deplacement de /var/lib/nova dans /home/nova

systemctl stop nova-compute.service
mv /var/lib/nova /home/
mkdir /var/lib/nova
cat >> /etc/fstab <<EOF
/home/nova  /var/lib/nova   none   bind   0 0
EOF
mount -a
systemctl start nova-compute.service

Ajout des images

X86_64 :

wget http://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.qcow2
openstack --os-cloud admin image create debian-11-genericcloud-amd64_2022-11-21 --disk-format qcow2 --container-format bare --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi --property os_type=linux --property os_distro=debian --property os_admin_user=pkgdata --property os_version='11.5' --property hw_architecture='x86_64' --public --file debian-11-genericcloud-amd64.qcow2

ARM64 :

wget http://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-arm64.qcow2
openstack --os-cloud admin image create debian-11-genericcloud-arm64_2022-11-21 --disk-format qcow2 --container-format bare --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi --property os_type=linux --property os_distro=debian --property os_admin_user=pkgdata --property os_version='11.5' --property hw_architecture='aarch64' --public --file debian-11-genericcloud-arm64.qcow2

Ajout des flavors

openstack --os-cloud admin flavor create cpu1-ram2-disk20 --vcpus 1 --ram 2048 --disk 20
openstack --os-cloud admin flavor create cpu2-ram8-disk20 --vcpus 2 --ram 8096 --disk 20
openstack --os-cloud admin flavor create cpu4-ram8-disk20 --vcpus 4 --ram 8192 --disk 20
openstack --os-cloud admin flavor create cpu4-ram12-disk20 --vcpus 4 --ram 12288 --disk 20
openstack --os-cloud admin flavor create cpu4-ram16-disk20 --vcpus 4 --ram 16384 --disk 20
openstack --os-cloud admin flavor create cpu16-ram24-disk20 --vcpus 16 --ram 24576 --disk 20

Création des AZ et aggregates

openstack --os-cloud admin aggregate create --zone Finland --property hw_architecture='aarch64' hel1-dc5-arm64
openstack --os-cloud admin aggregate add host hel1-dc5-arm64 hn003.pkgdata.net

openstack --os-cloud admin aggregate create --zone Germany --property hw_architecture='x86_64' fsn1-dc7-amd64
openstack --os-cloud admin aggregate add host fsn1-dc7-amd64 hn004.pkgdata.net

openstack --os-cloud admin aggregate create --zone Germany --property hw_architecture='aarch64' fsn1-dc17-arm64
openstack --os-cloud admin aggregate add host fsn1-dc17-arm64 hn005.pkgdata.net

openstack --os-cloud admin aggregate create --zone Germany --property hw_architecture='x86_64' fsn1-dc1-amd64
openstack --os-cloud admin aggregate add host fsn1-dc1-amd64 hn006.pkgdata.net

Configuration du réseau Public

openstack --os-cloud admin network create public-network1 --mtu 1400 --provider-network-type flat --provider-physical-network flat --external --share
openstack --os-cloud admin subnet create public-subnet1 --network public-network1 --subnet-range 168.119.18.168/29 --no-dhcp --gateway 168.119.18.169

openstack --os-cloud admin subnet create fake-subnet1 --ip-version 4 --network public-network1 --description "Subnet par ne pas allouer d'IP publique sur les L3 Agents (floatingip_agent_gateway)" --no-dhcp --service-type 'network:floatingip_agent_gateway' --subnet-range 10.10.10.0/24 --gateway none --gateway 168.119.18.169

openstack --os-cloud admin router create router1 --project teoxane --external-gateway public-network1 --fixed-ip subnet=public-subnet1,ip-address=168.119.18.170 --enable-snat --no-ha --distributed