Configurer le plan de données
En utilisant un fichier yaml préconfiguré (files/osp-ng-dataplane-netconfig.yaml), nous allons configurer la topologie pour chaque réseau du plan de données.
Changez de répertoire vers les fichiers:
cd ~/labrepo/content/files
Appliquez la configuration réseau:
oc apply -f osp-ng-dataplane-netconfig.yaml
Créer une VM pour le plan de données
Déconnectez-vous du bastion pour revenir à la machine hyperviseur:
logout
[lab-user@hypervisor ~]#
Créez le noeud compute en machine virtuelle sur l’hyperviseur :
sudo -i
cd /var/lib/libvirt/images
cp rhel-9.4-x86_64-kvm.qcow2 rhel9-guest.qcow2
qemu-img info rhel9-guest.qcow2
qemu-img resize rhel9-guest.qcow2 +90G
chown -R qemu:qemu rhel9-*.qcow2
virt-customize -a rhel9-guest.qcow2 --run-command 'growpart /dev/sda 4'
virt-customize -a rhel9-guest.qcow2 --run-command 'xfs_growfs /'
virt-customize -a rhel9-guest.qcow2 --root-password password:redhat
virt-customize -a rhel9-guest.qcow2 --run-command 'systemctl disable cloud-init'
virt-customize -a /var/lib/libvirt/images/rhel9-guest.qcow2 --ssh-inject root:file:/root/.ssh/id_rsa.pub
virt-customize -a /var/lib/libvirt/images/rhel9-guest.qcow2 --selinux-relabel
qemu-img create -f qcow2 -F qcow2 -b /var/lib/libvirt/images/rhel9-guest.qcow2 /var/lib/libvirt/images/osp-compute-0.qcow2
virt-install --virt-type kvm --ram 16384 --vcpus 4 --cpu=host-passthrough --os-variant rhel8.4 --disk path=/var/lib/libvirt/images/osp-compute-0.qcow2,device=disk,bus=virtio,format=qcow2 --network network:ocp4-provisioning --network network:ocp4-net --boot hd,network --noautoconsole --vnc --name osp-compute0 --noreboot
virsh start osp-compute0
Connecter vous sur le noeud compute
Vérifiez l’adresse IP à partir de 192.168.123.0/24
watch virsh domifaddr osp-compute0 --source agent
Il peut s’écouler quelques secondes avant que les adresses ips n’apparaissent
Every 2.0s: virsh domifaddr osp-compute0 --source agent hypervisor: Wed Apr 17 07:03:13 2024
Name MAC address Protocol Address
-------------------------------------------------------------------------------
lo 00:00:00:00:00:00 ipv4 127.0.0.1/8
- - ipv6 ::1/128
eth0 52:54:00:c0:0a:26 ipv4 172.22.0.202/24
- - ipv6 fe80::16:d083:92f4:f201/64
eth1 52:54:00:e5:ce:09 ipv4 192.168.123.61/24
- - ipv6 fe80::bfc0:e5db:a655:729f/64
(CTRL + C pour continuer)
virsh domifaddr osp-compute0 --source agent
Utilisez l’adresse IP attribuée à eth1
ci-dessus à l’étape suivante.
Configurer les périphériques Ethernet sur le noeud compute.
Connectez-vous en SSH à la nouvelle VM. Il n’y a pas de mot de passe.
ssh root@192.168.123.61
sudo hostnamectl set-hostname edpm-compute-0.aio.example.com
nmcli co delete 'Wired connection 1'
nmcli con add con-name "static-eth0" ifname eth0 type ethernet ip4 172.22.0.100/24 ipv4.dns "172.22.0.89"
nmcli con up "static-eth0"
nmcli co delete 'Wired connection 2'
nmcli con add con-name "static-eth1" ifname eth1 type ethernet ip4 192.168.123.61/24 ipv4.dns "192.168.123.100" ipv4.gateway "192.168.123.1"
nmcli con up "static-eth1"
Et déconnectez-vous de la VM
logout
Capturer un instantané du noeud compute
virsh snapshot-create-as osp-compute0 preprovisioned
Copier les clés SSH
sudo -i
scp /root/.ssh/id_rsa root@192.168.123.100:/root/.ssh/id_rsa_compute
scp /root/.ssh/id_rsa.pub root@192.168.123.100:/root/.ssh/id_rsa_compute.pub
Terminer le plan de données
Connectez-vous au serveur bastion (n’oubliez pas que le mot de passe du bastion est redhat) :
sudo -i
ssh root@192.168.123.100
[root@ocp4-bastion ~] #
Changer le répertoire
cd ~/labrepo/content/files
Créer un secret pour la connexion ansible et la migration nova des machines virtuelles
oc create secret generic dataplane-ansible-ssh-private-key-secret --save-config --dry-run=client --from-file=authorized_keys=/root/.ssh/id_rsa_compute.pub --from-file=ssh-privatekey=/root/.ssh/id_rsa_compute --from-file=ssh-publickey=/root/.ssh/id_rsa_compute.pub -n openstack -o yaml | oc apply -f-
ssh-keygen -f ./id -t ecdsa-sha2-nistp521 -N ''
oc create secret generic nova-migration-ssh-key --from-file=ssh-privatekey=id --from-file=ssh-publickey=id.pub -n openstack -o yaml | oc apply -f-
Créez un secret pour subscription-manager et un secret pour le registre Red Hat. Vous devez avoir un login sur notre portail.
SECRET POUR SUBSCRIPTION-MANAGER
Remplacer les information vi bas par votre nom d’utilisateur et votre mot de passe Red Hat.
echo -n "your_username" | base64
echo -n "your_password" | base64
Remplacez dans la prochaine commande, en utilisant votre nom d’usager et mot de passe encrypté, la section data comme identifié
oc apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: subscription-manager
data:
username: <base64 encoded subscription-manager username>
password: <base64 encoded subscription-manager password>
EOF
SECRET POUR REGISTRE REDHAT
Indiquez votre nom d’utilisateur et votre mot de passe (non-encrypté) dans les champs <username> et <password> de la commande suivante :
oc create secret generic redhat-registry --from-literal edpm_container_registry_logins='{"registry.redhat.io": {"<username>": "<password>"}}' -n openstack
Déployer le plan de données
oc apply -f osp-ng-dataplane-node-set-deploy.yaml
oc apply -f osp-ng-dataplane-deployment.yaml
Vous pouvez afficher les journaux Ansible pendant l’exécution du déploiement. Il se peut que la commande vous retourne un erreur comme le démmarage de l’exécution du playbook peut prendre quelques secondes à démarrer, repéter la commande au besoin
oc logs -l app=openstackansibleee -f --max-log-requests 10
(...) PLAY RECAP ********************************************************************* edpm-compute-0 : ok=53 changed=26 unreachable=0 failed=0 skipped=54 rescued=0 ignored=0
Vérifiez que le plan de données est déployé.
REMARQUE : Cela prend plusieurs minutes (et vraiment plusieurs minutes!).
oc get openstackdataplanedeployment -w
Répétez la requête jusqu’à ce que vous voyiez ce qui suit :
NAME STATUS MESSAGE openstack-edpm-ipam True Setup Complete
CTRL + C pour quitter
oc get openstackdataplanenodeset
NAME STATUS MESSAGE openstack-edpm-ipam True NodeSet Ready