GNU/Linux >> Tutoriels Linux >  >> Linux

Déploiement d'un système OpenStack autonome TripleO virtuel

TripleO signifie OpenStack sur OpenStack et est l'un des projets officiels de déploiement d'OpenStack. L'installation d'un système autonome TripleO peut être un excellent moyen de créer une preuve de concept, un laboratoire à domicile ou un environnement d'apprentissage pour OpenStack. Il n'est cependant pas recommandé pour un environnement de production.

Nous allons parcourir les étapes nécessaires pour créer un déploiement autonome de la version OpenStack Victoria en utilisant TripleO sur CentOS 8. Nous allons ensuite créer les composants nécessaires pour lancer et se connecter à une machine virtuelle (VM) avec succès. Enfin, nous allons écrire un script pour nettoyer le déploiement.

Configuration de pré-déploiement

Machine hôte

J'ai utilisé une machine RHEL 8.2 pour l'hôte dans ce scénario. Vous devrez peut-être ajuster légèrement les étapes pour Fedora ou CentOS.

Pour profiter de Cockpit pour gérer les réseaux et les machines virtuelles, démarrez et activez le service, puis installez le cockpit-machines paquet :

sudo systemctl enable --now cockpit.socket
sudo yum install -y cockpit-machines

Vérifiez si le netfilter module est chargé dans le noyau :

sudo modprobe br_netfilter

Activez le transfert IP IPv4 s'il n'est pas déjà chargé :

sudo nano /etc/sysctl.conf 
net.ipv4.ip_forward = 1

Recharger sysctl.conf sans redémarrer :

sudo sysctl -p /etc/sysctl.conf

[ Les lecteurs ont également apprécié : Premiers pas avec le réseau défini par logiciel ]

Mise en réseau

Avant de commencer, créez un réseau autonome en plus de votre réseau par défaut. Le nouveau réseau sera votre réseau de gestion. Vous pouvez ajuster les éléments suivants à vos propres environnements :

Créer le réseau autonome

Utiliser 192.168.24.0/24 en tant que réseau autonome. Tout d'abord, créez un standalone.xml fichier :

sudo nano /tmp/standalone.xml 
<network>
   <name>standalone</name>
   <forward mode='nat'>
      <nat> <port start='1024' end='65535'/>
      </nat>
   </forward>
   <ip address='192.168.24.0' netmask='255.255.255.0'>
  </ip>
</network>

Ensuite, utilisez virsh pour définir, activer et démarrer le réseau externe :

sudo virsh net-define /tmp/standalone.xml
sudo virsh net-autostart standalone
sudo virsh net-start standalone

Création de VM autonome

Étant donné que ce déploiement utilise une VM plutôt que du bare metal, nous devons créer une VM sur laquelle déployer notre environnement autonome.

Les spécifications de la VM sont :

  • CentOS 8 (variante rhel8.2)
  • 60 Go
  • 8 RAM
  • 4 processeurs
  • Réseau autonome

Lors de l'installation de CentOS 8 sur votre machine virtuelle autonome, assurez-vous de ne pas installer libvirt-tools et utilisez un minimal ou serveur installation. Vous devrez également créer une pile utilisateur.

Configuration autonome

Une fois TripleO déployé en tant que système autonome, vous ne pourrez plus vous connecter en SSH à la VM avec votre mot de passe. Pour vous y préparer, vous devez copier votre clé SSH dans la pile utilisateur. Voici la commande :

ssh-copy-id -i ~/.ssh/<your ssh key> stack@<standalone>

Vous devez configurer la pile utilisateur pour NOPASSWD dans sudo :

sudo echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack

La machine autonome a besoin d'un nom de domaine complet (FQDN), qui peut être défini comme suit :

sudo hostnamectl set-hostname standalone.example.com
sudo hostnamectl set-hostname standalone.example.com --transient

Mettez à jour votre système et redémarrez-le s'il y a des modifications du noyau :

sudo yum update -y
sudo reboot

Téléchargez et installez le python-tripleo-repos RPM de https://trunk.rdoproject.org/centos8/component/tripleo/current/

sudo yum install -y https://trunk.rdoproject.org/centos8/component/tripleo/current/python3-tripleo-repos-<version>.el8.noarch.rpm
sudo -E tripleo-repos -b victoria current
sudo yum install -y python3-tripleoclient

Configurer et déployer

Configuration autonome

Vous devez créer plusieurs fichiers de configuration avant de pouvoir déployer votre environnement autonome.

Le premier fichier est le containers-prepare-parameters.yaml fichier, qui servira à tirer vos conteneurs. Utilisez le client TripleO pour créer un fichier de base :

OpenStack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameters.yaml

Ensuite, mettez à jour la push_destination à faux et l'espace de noms à extraire de quay.io :

nano containers-prepare-parameters.yaml
push_destination: false
namespace: quay.io/tripleovictoria

Ensuite, configurez les paramètres réseau à l'aide d'une configuration de carte réseau unique. Avant de continuer, vous devez déterminer l'interface de votre réseau autonome est sur. Notez que l'interface n'est peut-être pas encore configurée, il s'agira donc de l'interface sans adresse IP.

ip addr

Pour réutiliser les paramètres lors de la configuration du standalone_parameters.yaml puis l'installation, exportez les paramètres dans le buffer comme suit :

export IP=192.168.24.2
export VIP=192.168.25.2
export NETMASK=24
export GATEWAY=192.168.24.1
export INTERFACE=<interface>

Maintenant, créez le standalone_parameters.yaml fichier en utilisant cat:

cat <<EOF > $HOME/standalone_parameters.yaml
parameter_defaults:
  CloudName: $IP
  # default gateway
  ControlPlaneStaticRoutes:
    - ip_netmask: 0.0.0.0/0
      next_hop: $GATEWAY
      default: true
  Debug: true
  DeploymentUser: $USER
  DnsServers:
    - 1.1.1.1
    - 8.8.8.8
  # needed for vip & pacemaker
  KernelIpNonLocalBind: 1
  DockerInsecureRegistryAddress:
    - $IP:8787
  NeutronPublicInterface: $INTERFACE
  # domain name used by the host
  CloudDomain: localdomain
  NeutronDnsDomain: localdomain
  # re-use ctlplane bridge for public net, defined in the standalone
  # net config (do not change unless you know what you're doing)
  NeutronBridgeMappings: datacentre:br-ctlplane
  NeutronPhysicalBridge: br-ctlplane
  # enable to force metadata for public net
  #NeutronEnableForceMetadata: true
  StandaloneEnableRoutedNetworks: false
  StandaloneHomeDir: $HOME
  InterfaceLocalMtu: 1500
  # Needed if running in a VM, not needed if on baremetal
  NovaComputeLibvirtType: qemu
EOF

Vous êtes maintenant prêt à déployer l'environnement autonome TripleO en utilisant la commande suivante :

sudo openstack tripleo deploy \
  --templates \
  --local-ip=$IP/$NETMASK \
  --control-virtual-ip $VIP \
  -e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \
  -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \
  -e $HOME/containers-prepare-parameters.yaml \
  -e $HOME/standalone_parameters.yaml \
  --output-dir $HOME \
  --standalone

Vérification de l'installation

Vous pouvez maintenant vérifier la CLI OpenStack :

export OS_CLOUD=standalone
openstack endpoint list

Création d'un type, d'une image, d'une paire de clés, d'un groupe de sécurité, d'un réseau et d'un serveur

Maintenant que vous avez installé et vérifié votre environnement autonome, il est prêt à être utilisé. Créez une petite instance nommée myserver , qui exécute Cirros et les composants nécessaires pour y parvenir. Avant de commencer, configurez la ligne de commande pour accéder au déploiement :

export OS_CLOUD=standalone

Saveur

Vous êtes maintenant prêt à configurer le petit saveur que vous utilisez, puis vérifiez sa création :

openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
openstack flavor list

Image

Maintenant que vous avez une idée, téléchargez l'image Cirros, puis configurez Glance pour l'utiliser. Vérifiez qu'il a bien été créé :

wget https://download.cirros-cloud.net/0.5.0/cirros-0.5.0-x86_64-disk.img
openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.5.0-x86_64-disk.img
openstack image list

Paire de clés

Afin de vous connecter à nos VM sans avoir besoin de saisir un mot de passe, créez une nouvelle clé SSH sur le système autonome, téléchargez-la en tant que paire de clés nommée default, et vérifiez qu'il est créé :

ssh-keygen
openstack keypair create --public-key ~/.ssh/id_rsa.pub default
openstack keypair list

Groupe de sécurité

La tâche suivante consiste à créer un groupe de sécurité appelé de base avec des règles qui nous permettent de SSH et de ping notre instance :

openstack security group create basic
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
openstack security group rule create --protocol icmp basic
openstack security group rule create --protocol udp --dst-port 53:53 basic
openstack security group list
openstack security group show default

Réseau

Avant de créer le réseau, exportez les paramètres suivants pour la machine autonome, ainsi que le public réseau, un privé réseau, et un sous-réseau que nous allons créer :

export GATEWAY=192.168.24.1
export STANDALONE_HOST=192.168.24.2
export PUBLIC_NETWORK_CIDR=192.168.24.0/24
export PRIVATE_NETWORK_CIDR=192.168.100.0/24
export PUBLIC_NET_START=192.168.24.4
export PUBLIC_NET_END=192.168.24.5
export DNS_SERVER=1.1.1.1

Le réseau public que nous allons créer est un réseau externe réseau utilisant le centre de données réseau physique :

openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
openstack network list

Nous allons maintenant créer un compte interne réseau nommé privé et créez un sous-réseau appelé private-net :

openstack network create --internal private
openstack network list
openstack subnet create public-net --subnet-range $PUBLIC_NETWORK_CIDR --no-dhcp --gateway $GATEWAY     --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END --network public
openstack subnet create private-net --subnet-range $PRIVATE_NETWORK_CIDR --network private
openstack subnet list

Les dernières étapes consistent à créer un routeur nommé vrouter et connectez-le au public réseau ainsi que l'ajouter au réseau privé sous-réseau :

openstack router create vrouter
openstack router list
openstack router set vrouter --external-gateway public
openstack router add subnet vrouter private-net
openstack router show vrouter

Serveur

Nous sommes maintenant prêts à créer un serveur nommé monserveur en utilisant la saveur, l'image, la paire de clés et le réseau privé que nous avons créés :

openstack server create --flavor tiny --image cirros --key-name default --security-group basic --network private myserver

Utiliser le server show commande se concentrant sur le statut colonne pour déterminer quand notre serveur est ACTIF ou en ERREUR :

openstack server show -c status myserver

Avant de pouvoir nous connecter au serveur, nous devons créer une IP flottante et l'ajouter à notre serveur :

openstack floating ip create public
openstack server add floating ip myserver <IP>

Comme nous avons attaché une paire de clés à notre instance et ouvert le port SSH dans le groupe de sécurité du serveur, nous pouvons simplement nous connecter en SSH au serveur en tant que cirros utilisateur à tester :

ssh cirros@<IP>

Nettoyer le déploiement

Si vous devez nettoyer votre environnement, supprimez les services et les fichiers installés pour le déploiement autonome. Pour ce faire, créez un script appelé standalone-cleanup.sh :

cat <<EOF > $HOME/standalone-cleanup.sh
#!/bin/bash
echo "Tearing down TripleO environment"
if type pcs &> /dev/null; then
    sudo pcs cluster destroy
fi
if type podman &> /dev/null; then
    echo "Removing podman containers and images (takes times...)"
    sudo podman rm -af
    sudo podman rmi -af
fi
sudo rm -rf \
    /var/lib/tripleo-config \
    /var/lib/config-data /var/lib/container-config-scripts \
    /var/lib/container-puppet \
    /var/lib/heat-config \
    /var/lib/image-serve \
    /var/lib/containers \
    /etc/systemd/system/tripleo* \
    /var/lib/mysql/*
sudo systemctl daemon-reload
EOF

Rendre le script exécutable :

chmod u+x standalone-cleanup.sh

Utilisez la commande suivante pour exécuter le nettoyage :

./standalone-cleanup.sh

[ Apprenez les bases de l'utilisation de Kubernetes dans cet aide-mémoire gratuit. ] 

Récapitulez

TripleO peut être utile pour créer un laboratoire ou un environnement de démonstration. Il y a quelques pièges auxquels vous devez faire attention pour que cela fonctionne. Cet article a couvert les étapes nécessaires pour déployer, configurer et nettoyer TripleO à l'aide d'un environnement basé sur RHEL.


Linux
  1. Comment vérifier si un système Linux est une machine physique ou virtuelle

  2. Comment créer une deuxième partition principale ou supplémentaire dans une machine virtuelle OpenStack

  3. Introduction à la virtualisation :un guide complet pour les débutants

  4. Commande Linux pour savoir si la machine est physique ou virtuelle

  5. Masquage de l'état de la machine virtuelle du système d'exploitation invité

Comment monter Google Drive localement en tant que système de fichiers virtuel sous Linux

Comment installer Xfce Desktop sur AlmaLinux 8

Déploiement du système de commentaires Isso sous Nginx avec Docker

Configuration de Suricata en tant que système de prévention des intrusions (IPS)

Comment ajouter ou créer un utilisateur sudo dans le système Linux [Quickstart]

Toutes les méthodes pour exécuter une machine virtuelle sur un système Linux