当前位置:网站首页>Concours de compétences en informatique en nuage - - première partie de l'environnement cloud privé openstack

Concours de compétences en informatique en nuage - - première partie de l'environnement cloud privé openstack

2022-04-23 08:02:00 King NULL

Adresse du blog original

1、Informations de configuration

Note:: Utilisé dans l'article()Tout est un indice,Par exemple:(controller AND compute)Représentation Cette commande doit être exécutée sur les deux noeuds.

Utiliser VM Machine virtuelle pour l'expérimentation.

Nom d'hôte IPAdresse
controller Intranet(Mode hôte seulement):192.168.20.10/24、Extranet(NatMode):192.168.10.10/24
compute Intranet(Mode hôte seulement):192.168.20.20/24、Extranet(NatMode):192.168.10.20/24

Capture d'écran de la configuration de la machine virtuelle
######Conseils######
Intranet veuillez utiliser Mode hôte seulement N'apprends pas à utiliserLAN Sinon, je le regretterai plus tard

  • controllerConfiguration du noeud(Ouvert au processeur Support de virtualisation)

image.png

  • computeConfiguration du noeud(Ouvert au processeur Support de virtualisation)

image.png

2、 Installation du système d'exploitation de base

CentOS7Sélection du système1804Version:CentOS-7-x86_64-DVD-1804.iso

Baidu Cloud disk Code d'extraction
https://pan.baidu.com/s/1SLha9Cih1VAv77qmup2LJA vyto

controller Et compute Le processus d'installation des noeuds est cohérent , Pour placer une grande partie de l'espace disque dans “/” Sous le Répertoire racine,compute Le noeud doit être suivi swift、cinderPartition, À réserver 100G Espace disque dur à gauche et à droite .

Description graphique et textuelle du processus d'installation

Oui.CentOS-7-x86_64-DVD-1804.isoMiroir, Charger à l'endroit où le miroir de la machine virtuelle est monté ,Cliquez sur OK, Puis vous pouvez cliquer sur Démarrer .( Les deux machines virtuelles doivent d'abord installer le système )

image.png

image.png

Install CentOS7  InstallationCentOS7Système、Test this media & install CentOS 7  Installer le système après inspection .Choisissez directement ici  Installez le système et .
 Configuration de la partition du noeud : /boot	1024M 、/	50G(compute Noeud racine minute 50GC'est tout.,Reste Minimum100G Disponible pour une utilisation ultérieure ).

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

zUne fois l'installation du système terminée, cliquez sur reboot Redémarrer.( Attendre que l'installation du système soit terminée …15m…)

3、 Configuration de l'environnement de base du système

3.1、 Configuration du service réseau

ParamètresIPAdresse, Deux machines virtuelles utilisent des cartes réseau 1Interfonctionnement,Utilisation de la carte réseau2Communication avec le monde extérieur.

#Modifier le nom d'hôte
(controllerNoeud)
[root@localhost ~]# hostnamectl set-hostname controller
[root@localhost ~]# bash
[root@controller ~]# hostnamectl
   Static hostname: controller
         Icon name: computer-vm
           Chassis: vm
        Machine ID: a0389ebcbc904f9d9b13f58e5cd79d71
           Boot ID: 90b6977ddd124ebeac294728b7dd35d6
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64

(computeNoeud)
[root@localhost ~]# hostnamectl set-hostname compute
[root@localhost ~]# bash
[root@compute ~]# 
[root@compute ~]# hostnamectl 
   Static hostname: compute
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 5b19796e31564946b6d308c2cf1619a2
           Boot ID: d65a5777e5b64fe58c648313cdc1554d
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64

# Désactiver le pare - feu(controller AND compute)
[root@controller ~]# systemctl stop firewalld
[root@controller ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

#Fermerselinux(controller AND compute)
[root@compute ~]# setenforce 
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@compute ~]# setenforce 0
[root@compute ~]# getenforce 
Permissive
( Cette configuration est une commande d'entrée en vigueur temporaire ,Entrée en vigueur permanente, Configuré comme suit )
[root@controller ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected. 
# mls - Multi Level Security protection.
SELINUXTYPE=targeted 


[root@controller ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
[root@controller ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX=disabled
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected. 
# mls - Multi Level Security protection.
SELINUXTYPE=targeted 
(Entrée en vigueur permanente après redémarrage,Fermerselinux)

#FermerNetworkManager Services de gestion de réseau (controller AND compute)
[root@controller ~]# systemctl stop NetworkManager
[root@controller ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.

#Effaceriptables Toutes les stratégies (controller AND compute)
[root@controller ~]# 
[root@controller ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@controller ~]# iptables -F
[root@controller ~]# iptables -Z
[root@controller ~]# iptables -X
[root@controller ~]# iptables-save
# Generated by iptables-save v1.4.21 on Sat Jan 29 17:41:16 2022
*filter
:INPUT ACCEPT [28:1880]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16:1664]
COMMIT
# Completed on Sat Jan 29 17:41:16 2022

#Configurer le réseau(controller AND compute)
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static			#Définir statiqueIP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=046c4a52-35d6-4b67-8035-7381dc9534e3
DEVICE=ens33
ONBOOT=yes				# Service de réseau de démarrage automatique 
IPADDR=192.168.20.10			#IPAdresse
PREFIX=24				#Nombre de bits de masque de sous - réseau
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=c54f26a6-6aca-4487-8d22-a69bf472adb5
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.10.10
PREFIX=24
GATEWAY=192.168.10.2			#Adresse de la passerelle
DNS1=114.114.114.114			#DNS1 Adresse(223.5.5.5、223.4.4.4、8.8.8.8)

#Redémarrer le service réseau
[root@controller ~]# systemctl restart network

#VoirIPAdresse
[root@controller ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:58:9d:f3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.10/24 brd 192.168.20.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::69a5:d1e2:4fab:9dfb/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:58:9d:fd brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::221:c336:4fad:cb2/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@compute ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a8:cb:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.20/24 brd 192.168.20.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::c251:7dde:8399:82c4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a8:cb:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.20/24 brd 192.168.10.255 scope global noprefixroute ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::7c65:4b27:7f69:e201/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


#Tester la connectivité entre les machines virtuelles
(controller ---->  compute)
[root@controller ~]# ping 192.168.20.20
PING 192.168.20.20 (192.168.20.20) 56(84) bytes of data.
64 bytes from 192.168.20.20: icmp_seq=1 ttl=64 time=1.62 ms
64 bytes from 192.168.20.20: icmp_seq=2 ttl=64 time=4.13 ms
64 bytes from 192.168.20.20: icmp_seq=3 ttl=64 time=1.42 ms
^C
--- 192.168.20.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2030ms
rtt min/avg/max/mdev = 1.426/2.393/4.133/1.232 ms

(compute ---->  controller)
[root@compute ~]# ping 192.168.20.10
PING 192.168.20.10 (192.168.20.10) 56(84) bytes of data.
64 bytes from 192.168.20.10: icmp_seq=1 ttl=64 time=0.907 ms
64 bytes from 192.168.20.10: icmp_seq=2 ttl=64 time=1.89 ms
64 bytes from 192.168.20.10: icmp_seq=3 ttl=64 time=1.92 ms
^C
--- 192.168.20.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2016ms
rtt min/avg/max/mdev = 0.907/1.572/1.920/0.471 ms

# Tester la connectivité des machines virtuelles et physiques 
(Utilisation de machines physiquesping De la carte réseau externe de la machine virtuelle IPAdresse)
C:\Users\willi>ping 192.168.10.10

En ce moment Ping 192.168.10.10 Avec 32 Octets de données:
De 192.168.10.10 Réponse de: Octets=32 Temps<1ms TTL=64
De 192.168.10.10 Réponse de: Octets=32 Temps<1ms TTL=64

192.168.10.10 De Ping Informations statistiques:
    Paquet de données: Envoyé = 2,Reçu = 2,Perdu = 0 (0% Perdu),
Durée estimée du trajet aller - retour(En millisecondes):
    Le plus court = 0ms,Plus long = 0ms,Moyenne = 0ms
Control-C

C:\Users\willi>ping 192.168.10.20

En ce moment Ping 192.168.10.20 Avec 32 Octets de données:
De 192.168.10.20 Réponse de: Octets=32 Temps<1ms TTL=64
De 192.168.10.20 Réponse de: Octets=32 Temps=4ms TTL=64
De 192.168.10.20 Réponse de: Octets=32 Temps=1ms TTL=64
De 192.168.10.20 Réponse de: Octets=32 Temps=6ms TTL=64

192.168.10.20 De Ping Informations statistiques:
    Paquet de données: Envoyé = 4,Reçu = 4,Perdu = 0 (0% Perdu),
Durée estimée du trajet aller - retour(En millisecondes):
    Le plus court = 0ms,Plus long = 6ms,Moyenne = 2ms
(Une fois le test terminé, Vous pouvez utiliser l'outil de connexion à distance pour vous connecter , Faciliter l'exécution des commandes ou le téléchargement de fichiers, etc. )

#Configurer la cartographie des noms d'hôtes(controller AND compute)
(Configurer la cartographie des noms d'hôtes, Parce qu'il est configuré plus tard openstackUtilisé dansapi L'interface est connectée sous le nom d'hôte ,Oui.IP Mapping to hostname , Accessible en utilisant le nom d'hôte )
[root@controller ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.10 controller			# Remplissez l'intranet de votre propre hôte ici IPAdresse
192.168.20.20 compute				#Remplissez icicomputeIntranet de l'hôteIP

# Tester la connectivité en utilisant la cartographie des noms d'hôtes 
(controller ----> compute)
[root@controller ~]# ping compute
PING compute (192.168.20.20) 56(84) bytes of data.
64 bytes from compute (192.168.20.20): icmp_seq=1 ttl=64 time=1.50 ms
64 bytes from compute (192.168.20.20): icmp_seq=2 ttl=64 time=3.29 ms
64 bytes from compute (192.168.20.20): icmp_seq=3 ttl=64 time=0.972 ms

(compute ----> controller)
[root@compute ~]# ping controller
PING controller (192.168.20.10) 56(84) bytes of data.
64 bytes from controller (192.168.20.10): icmp_seq=1 ttl=64 time=0.758 ms
64 bytes from controller (192.168.20.10): icmp_seq=2 ttl=64 time=2.31 ms

3.2、yumConfiguration de la source

# Sauvegarde yum Fichier source(controller AND compute)
[root@controller ~]# mkdir /backup
[root@controller ~]# mv /etc/yum.repos.d/* /backup/
[root@controller ~]# ll /backup/
total 32
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo

#Oui. Iaas  Le paquet miroir de controllerSur le noeud(controller)
#Montage Base du système  Le paquet miroir et  Iaas Paquet miroir(controller)
[root@controller ~]# mkdir /iso_dir
[root@controller ~]# mkdir /iso_dir/centos
[root@controller ~]# mkdir /iso_dir/iaas
[root@controller ~]# mount /dev/sr0 /iso_dir/centos/
mount: no medium found on /dev/sr0			# L'erreur ici n'est pas trouvée sr0Matériel,La raison en est que  Le disque n'est pas connecté (Fig.-3.2.1)
[root@controller ~]# mount /dev/sr0 /iso_dir/centos/
mount: /dev/sr0 is write-protected, mounting read-only
[root@controller ~]# mount /root/chinaskills_cloud_iaas.iso /iso_dir/iaas/
mount: /dev/loop0 is write-protected, mounting read-only # Lire uniquement le montage du fichier 
( Le montage ici est temporaire , Je vais vous dire , Méthode de montage permanent )

#repoÉtablissement des documents(controller)
[root@controller ~]# vi /etc/yum.repos.d/local.repo
[root@controller ~]# cat /etc/yum.repos.d/local.repo 
[centos]					# Identification de la source (ID)
name = CentOS-$releasever			# Le nom de la source (rpeo name)
baseurl = file:///iso_dir/centos/		#Adresse de la source(Adresse locale Utiliser file:// +  Chemin absolu de la source locale )
gpgcheck = 0					#0 Représentant  Source de détection négative 
enabled = 1					#1  Indique que la source est activée 

[Iaas]
name = chainskill-Iaas
baseurl = file:///iso_dir/iaas/iaas-repo
gpgcheck = 0
enabled = 1

(Testsrepo Fichiers et fichiers montés avec succès )
[root@controller ~]# yum clean all && yum makecache && yum repolist
......
repo id                      repo name                               status
Iaas                         chainskill-Iaas                         3,232
centos                       CentOS-7                                3,971
repolist: 7,203
(Terminé.)

#InstallationvsftpServices,JeancomputeLes noeuds utilisentcontrollerDeyumSource
[root@controller ~]# yum install -y vim net-tools vsftpd tree

#ModifiervsftpProfil pour
(Ajouter une configuration)
[root@controller ~]# vim /etc/vsftpd/vsftpd.conf 
[root@controller ~]# head -4 /etc/vsftpd/vsftpd.conf 
# Example config file /etc/vsftpd/vsftpd.conf
anon_root=/iso_dir			# Définir ce qui est accessible ftpRacine
#

#Oui.repoDocumentfile://Modifier comme suit:ftpEt nom d'hôte Et démarreftp
[root@controller ~]# vim /etc/yum.repos.d/local.repo 
[root@controller ~]# cat /etc/yum.repos.d/local.repo 
[centos]
name = CentOS-$releasever
baseurl = ftp://controller/centos/
gpgcheck = 0
enabled = 1

[Iaas]
name = chainskill-Iaas
baseurl = ftp://controller/iaas/iaas-repo
gpgcheck = 0
enabled = 1

[root@controller ~]# systemctl start vsftpd #DémarragevsftpDémon de service
[root@controller ~]# systemctl enable vsftpd #Réglage de l'auto - démarrage
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.


(Testsftp Y a - t - il un problème avec la source )
[root@controller ~]# yum clean all && yum makecache && yum repolist
......
repo id                              repo name                                  status
Iaas                                 chainskill-Iaas                            3,232
centos                               CentOS-7					3,971
repolist: 7,203
(Aucun problème.)

#Oui. repo Documentation Transfert à computeSur le noeud(controller)
(controller ----> compute)
[root@controller ~]# scp /etc/yum.repos.d/local.repo compute:/etc/yum.repos.d/
The authenticity of host 'compute (192.168.20.20)' can't be established. ECDSA key fingerprint is SHA256:9RuIaFkz/ujnn9mcGxwPu5uMTxsYfte1hw3EUmVrodg. ECDSA key fingerprint is MD5:1e:f1:0c:0b:e5:6f:04:dc:e4:9c:cf:7c:9d:cf:21:2d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'compute,192.168.20.20' (ECDSA) to the list of known hosts. root@compute's password: 
local.repo                

# Voir s'il y a un problème avec la source (compute)
[root@compute ~]# yum clean all && yum makecache && yum repolist
......
repo id                              repo name                                  status
Iaas                                 chainskill-Iaas                            3,232
centos                               CentOS-7					3,971
repolist: 7,203
(Aucun problème.)

>>>>>>> yum  Le fichier source est maintenant configuré  <<<<<<<<<

#Montage permanent

[root@controller ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sat Jan 29 15:37:36 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=c1702ad4-b7ad-4d60-a8f6-889e609850c0 /boot                   xfs     defaults        0 0
/root/chinaskills_cloud_iaas.iso	/iso_dir/iaas	iso9660	defaults 0 0
# Chemin absolu vers le fichier monté  Chemin de montage Type de fichier 
/dev/sr0 /iso_dir/centos				iso9660	defaults 0 0

image.png(Fig.-3.2.1)

4、Construction de scriptsopenstackPlate - forme

4.1、Partition(swift AND cinder on compute)

( S'il n'y a pas d'espace réservé lors de l'installation du système , Vous pouvez ajouter un ou deux disques durs à nouveau ,Formaté commexfsLe format est parfait.)

# Partition(compute)
[root@compute ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  200G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0  199G  0 part 
  └─centos-root 253:0    0  199G  0 lvm  /
sdb               8:16   0  100G  0 disk 
sr0              11:0    1 1024M  0 rom  
[root@compute ~]# fdisk /dev/sdb # Sélectionnez le disque dur de la partition 
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xdb4e4cbf.

Command (m for help): p					#Voir l'état de la partition

Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb4e4cbf

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n					#Nouvelle partition
Partition type:	
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p					# Sélectionnez une nouvelle partition primaire 
Partition number (1-4, default 1): 			#Par défaut1
First sector (2048-209715199, default 2048): 		#Position de départ
Using default value 2048
Last sector, +sectors or +size{
    K,M,G} (2048-209715199, default 209715199): +50G		# Saisissez la taille de la nouvelle partition 
Partition 1 of type Linux and of size 50 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 
First sector (104859648-209715199, default 104859648): 
Using default value 104859648
Last sector, +sectors or +size{
    K,M,G} (104859648-209715199, default 209715199): 
Using default value 209715199
Partition 2 of type Linux and of size 50 GiB is set

Command (m for help): 
Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb4e4cbf

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   104859647    52428800   83  Linux
/dev/sdb2       104859648   209715199    52427776   83  Linux

Command (m for help): w					#Écrire une partition
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

#La partition formatée est xfs
[root@compute ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@compute ~]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2              isize=512    agcount=4, agsize=3276736 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13106944, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6399, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

image.png

4.2、iaas-xiandian Profil

# Installer le profil(controller AND compute)
[root@controller ~]# yum install -y iaas-xiandian

# Modifieropenrc.shDocumentation
[root@controller ~]# vim /etc/xiandian/openrc.sh 
( Entrée en mode commande :%s/^#//gOui.# Remplacer le début par vide ,C'est - à - dire Supprimer les commentaires、Réutiliser:%s/PASS=/PASS=000000/g Oui.PASS=Remplacer par:PASS=000000  Tous les mots de passe sont définis à 000000)
[root@controller ~]# cat /etc/xiandian/openrc.sh 
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.20.10		# Gestion des noeuds de contrôle IP

#Controller HOST Password. example:000000 
HOST_PASS=000000		# Le mot de passe de l'hôte du noeud de contrôle doit être modifié pour le mot de passe défini lors de l'installation du système. 

#Controller Server hostname. example:controller
HOST_NAME=controller		# Nom d'hôte du noeud de contrôle 

#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.20.20	# Gestion des noeuds de calcul IP

#Compute HOST Password. example:000000 
HOST_PASS_NODE=000000		# Le mot de passe du noeud de calcul doit être modifié comme ci - dessus 

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute		# Calculer le nom d'hôte du noeud 

#--------------------Chrony Config-------------------##
#Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.20.0/24	# Sous - réseau du réseau de contrôle 

#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack			#rabbit Utilisateurs du Service(Par défaut)

#Password for rabbit user .example:000000
RABBIT_PASS=000000			

#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000

#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=admin			# Nom du domaine auquel la plateforme est connectée 
ADMIN_PASS=000000			#Mot de passe de connexion de l'Administrateur
DEMO_PASS=000000			

#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.20.10		#Interface réseau( Machine virtuelle et communication Intranet ,Incompute Configuration du noeud à remplir ici computeIP)

#External Network Interface. example:eth1
INTERFACE_NAME=ens34			#Carte réseau externe( Machine virtuelle et communication hors réseau )

#External Network The Physical Adapter. example:provider
Physical_NAME=provider			# Adaptateur réseau physique 

#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200

#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000

#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000

#Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1				# Le stockage en bloc est partitionné avant utilisation  sdb1

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2			#Stockage des objets Utilisersdb2

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.20.20	#Swift Réseau de stockage nodeNoeudIP( Utiliser le noeud de calcul )

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000

#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000

#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000

#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000

#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000

#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000

#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000

#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000

#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000

#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000

#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000

#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000

(In openrc.sh Configuration dans computeEtcontroller  Tout est cohérent ,Seulement INTERFACE_IP  L'hôte actuel doit être rempli IPAdresse,Comme le montre la figure4.2.1)

#Oui.openrcTransfert de fichiers verscompute Modifier sur le noeud 
[root@controller ~]# scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh 
root@compute's password: 
openrc.sh 

image.png(Fig.4.2.1)

4.3、 Plate - forme d'installation de script

#  Le script sera à nouveau défini selinux Pare - feu  Attendre la configuration de l'environnement de base (controller AND compute)
[root@controller ~]# iaas-pre-host.sh
[root@compute ~]# iaas-pre-host.sh
(Utiliser une fois l'exécution terminée Ctrl + D  Redémarrer la connexion sans redémarrer ,Oubash Juste une minute )

# Installation mysql Services(controller)
[root@controller ~]# iaas-install-mysql.sh

# Installation keystone Services(controller)
[root@controller ~]# iaas-install-keystone.sh

# Installation glance Services(controller)
[root@controller ~]# iaas-install-glance.sh

# Installation nova Services(controller AND compute)
[root@controller ~]# iaas-install-nova-controller.sh
[root@compute ~]# iaas-install-nova-compute.sh

(Validationnova La base de données a - t - elle été installée avec succès? )
[root@controller ~]# nova-manage cell_v2 list_cells
>>>Erreur signalée ici----- Veuillez consulter le catalogue  5 Moyenne, Comment sortir d'une fosse <<<

( Vérifier que le processeur système supporte l'accélération matérielle )
egrep -c '(vmx|svm)' /proc/cpuinfo 
(1) Si la commande renvoie un 1Ou plus, Description votre système prend en charge l'accélération matérielle , Normalement, aucune configuration supplémentaire n'est nécessaire .
(2) Si cette instruction renvoie un 0Valeur, Indique que votre système ne supporte pas l'accélération matérielle ,Vous devez configurerlibvirtRemplacerKVMPour utiliserQEMU.
crudini --set /etc/nova/nova.conf libvirt virt_type  qemu
(De mon côté.0, Tout ce qu'il faut, c'est exécuter cette commande.  Ouvertlibvirt)
[root@compute ~]# crudini --set /etc/nova/nova.conf libvirt virt_type qemu
[root@compute ~]# cat /etc/nova/nova.conf | grep virt_type
virt_type = qemu

# Installation neutron Services(controller AND compute)
[root@controller ~]# iaas-install-neutron-controller.sh
[root@compute ~]# iaas-install-neutron-compute.sh

#Installation Dashboard Plate - forme(controller)
[root@controller ~]# iaas-install-dashboard.sh

image.png

dashboard Après une installation réussie, Vous pouvez ouvrir l'URL pour vous connecter à la plateforme , Configurer à nouveau le réseau de machines virtuelles de la plateforme .
image.png

5、Processus de marche sur la fosse

1、Incontroller InstallationnovaAprès le service,C'est fait. Tests VoirnovaSi le Service a été installé avec succès, Le résultat est une erreur

Pseudo-terminal will not be allocated because stdin is not a terminal.
An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-6e828d40-3564-42a1-98d6-93de639b0afe)
An error has occurred:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1654, in main
    ret = fn(*fn_args, **fn_kwargs)
  File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 1323, in discover_hosts
    by_service)
  File "/usr/lib/python2.7/site-packages/nova/objects/host_mapping.py", line 248, in discover_hosts
    cell_mappings = objects.CellMappingList.get_all(ctxt)
  File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 184, in wrapper
    result = fn(cls, context, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/nova/objects/cell_mapping.py", line 137, in get_all
    db_mappings = cls._get_all_from_db(context)
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 987, in wrapper
    with self._transaction_scope(context):
  File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 1037, in _transaction_scope
    context=context) as resource:
  File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 640, in _session
    bind=self.connection, mode=self.mode)
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 404, in _create_session
    self._start()
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 491, in _start
    engine_args, maker_args)
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 515, in _setup_for_connection
    sql_connection=sql_connection, **engine_kwargs)
  File "/usr/lib/python2.7/site-packages/debtcollector/renames.py", line 43, in decorator
    return wrapped(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 184, in create_engine
    test_conn = _test_connection(engine, max_retries, retry_interval)
  File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 370, in _test_connection
    six.reraise(type(de_ref), de_ref)
  File "<string>", line 2, in reraise
DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'controller' ([Errno 111] ECONNREFUSED)") (Background on this error at: http://sqlalche.me/e/e3q8)

C'est une erreur. ,Que s'est - il passé??? Voir le dernier indice disant Impossible de se connectercontrollerNodeMySQLServices,Regarde ça.MySQLÉtat de

[root@controller ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.1 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2022-01-30 02:07:27 CST; 3min 41s ago
  Process: 15649 ExecStopPost=/usr/libexec/mysql-wait-stop (code=exited, status=0/SUCCESS)
  Process: 15644 ExecStart=/usr/libexec/mysqld --basedir=/usr $MYSQLD_OPTS $_WSREP_NEW_CLUSTER (code=exited, status=1/FAILURE)
  Process: 15608 ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n (code=exited, status=0/SUCCESS)
  Process: 15585 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 15644 (code=exited, status=1/FAILURE)
   Status: "MariaDB server is down"

Jan 30 02:07:26 controller systemd[1]: Starting MariaDB 10.1 database server...
Jan 30 02:07:26 controller mysql-check-socket[15585]: Socket file /var/lib/mysql/mysql.sock exists.
Jan 30 02:07:26 controller mysql-check-socket[15585]: No process is using /var/lib/mysql/mysql.sock, which means it is a garbage, so it will be removed automatically.
Jan 30 02:07:27 controller mysql-prepare-db-dir[15608]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
Jan 30 02:07:27 controller mysql-prepare-db-dir[15608]: If this is not the case, make sure the /var/lib/mysql is empty before running mysql-prepare-db-dir.
Jan 30 02:07:27 controller mysqld[15644]: 2022-01-30  2:07:27 139963356006592 [Note] /usr/libexec/mysqld (mysqld 10.1.20-MariaDB) starting as process 15644 ...
Jan 30 02:07:27 controller systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
Jan 30 02:07:27 controller systemd[1]: Failed to start MariaDB 10.1 database server.
Jan 30 02:07:27 controller systemd[1]: Unit mariadb.service entered failed state.
Jan 30 02:07:27 controller systemd[1]: mariadb.service failed.

Je ne sais pas pourquoi MySQL C'est parti.,En vérifiantmariadb Le journal a trouvé le problème

[root@controller ~]# grep 'ERROR' /var/log/mariadb/mariadb.log 
2022-01-30  2:04:39 139639024613568 [ERROR] mysqld: Out of memory (Needed 128663552 bytes)
2022-01-30  2:04:39 139639024613568 [ERROR] mysqld: Out of memory (Needed 96485376 bytes)
2022-01-30  2:04:39 139639024613568 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2022-01-30  2:04:39 139639024613568 [ERROR] Plugin 'InnoDB' init function returned error.
2022-01-30  2:04:39 139639024613568 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2022-01-30  2:04:39 139639024613568 [ERROR] Unknown/unsupported storage engine: innodb
2022-01-30  2:04:39 139639024613568 [ERROR] Aborting
2022-01-30  2:05:19 140391508367552 [ERROR] mysqld: Out of memory (Needed 128663552 bytes)
2022-01-30  2:05:20 140391508367552 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2022-01-30  2:05:20 140391508367552 [ERROR] Plugin 'InnoDB' init function returned error.
2022-01-30  2:05:20 140391508367552 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2022-01-30  2:05:20 140391508367552 [ERROR] Unknown/unsupported storage engine: innodb
2022-01-30  2:05:20 140391508367552 [ERROR] Aborting
2022-01-30  2:07:27 139963356006592 [ERROR] mysqld: Out of memory (Needed 128663552 bytes)
2022-01-30  2:07:27 139963356006592 [ERROR] mysqld: Out of memory (Needed 96485376 bytes)
2022-01-30  2:07:27 139963356006592 [ERROR] mysqld: Out of memory (Needed 72351744 bytes)
2022-01-30  2:07:27 139963356006592 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2022-01-30  2:07:27 139963356006592 [ERROR] Plugin 'InnoDB' init function returned error.
2022-01-30  2:07:27 139963356006592 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2022-01-30  2:07:27 139963356006592 [ERROR] Unknown/unsupported storage engine: innodb
2022-01-30  2:07:27 139963356006592 [ERROR] Aborting

C'est à cause de mon Mémoire Pas assez., Vérifiez la mémoire ,wtf C'est la mémoire que j'ai donnée ????Il n'y a aucun moyen. Ajouter de la mémoire Puis redémarrezmariadb,Encore. Incompute Exécution dans le noeud nova Installation des services
image.png

[root@controller ~]# systemctl restart mariadb
[root@controller ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.1 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-01-30 02:25:02 CST; 7s ago
  Process: 15649 ExecStopPost=/usr/libexec/mysql-wait-stop (code=exited, status=0/SUCCESS)
  Process: 16642 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 16551 ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n (code=exited, status=0/SUCCESS)
  Process: 16528 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 16611 (mysqld)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─16611 /usr/libexec/mysqld --basedir=/usr

Jan 30 02:25:01 controller systemd[1]: Starting MariaDB 10.1 database server...
Jan 30 02:25:01 controller mysql-check-socket[16528]: Socket file /var/lib/mysql/mysql.sock exists.
Jan 30 02:25:01 controller mysql-check-socket[16528]: No process is using /var/lib/mysql/mysql.sock, which means it is a garbage, so it will be removed automatically.
Jan 30 02:25:01 controller mysql-prepare-db-dir[16551]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
Jan 30 02:25:01 controller mysql-prepare-db-dir[16551]: If this is not the case, make sure the /var/lib/mysql is empty before running mysql-prepare-db-dir.
Jan 30 02:25:01 controller mysqld[16611]: 2022-01-30  2:25:01 139753844246720 [Note] /usr/libexec/mysqld (mysqld 10.1.20-MariaDB) starting as process 16611 ...
Jan 30 02:25:02 controller systemd[1]: Started MariaDB 10.1 database server.

image.png

6、Résumé

Guoji openstack La plateforme a donné le script , En gros, il n'y a rien à bouger. , Mais pour vraiment comprendre les fonctions et les relations des différents services , Il faut plus de temps pour corriger les erreurs. Test encore et encore . C'est tout ce qu'il faut pour construire la plateforme. , Écris - le plus tard. , Cette plateforme est la base , Il n'y a que la plate - forme , Un conteneur ou quelque chose comme ça. . Si vous voulez obtenir un résultat similaire , Pratiquez plus .
Si Qu'est - ce qui ne va pas ou qu'est - ce qui ne va pas? ~~

版权声明
本文为[King NULL]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230629526464.html