Openstack è un software cloud privato gratuito e open source attraverso il quale possiamo gestire facilmente le risorse di calcolo, rete e archiviazione del nostro data center utilizzando un'unica dashboard e tramite i comandi cli openstack. In questo articolo dimostreremo come installare Openstack su un sistema CentOS 8 con packstack . Packstack è un'utilità della riga di comando che distribuisce diversi componenti di openstack utilizzando moduli puppet.
La distribuzione Openstack con packstack viene generalmente utilizzata per scopi POC (prova di concetto), quindi non è consigliabile utilizzare packstack per la distribuzione di produzione. Usa il metodo TripleO per distribuire openstack nell'ambiente di produzione.
Requisiti minimi di sistema per OpenStack
- CentOS 8 minimo
- Processore dual core
- 8 GB di RAM
- 40 GB di spazio libero su disco
- Connessione Internet stabile
- Almeno una nic card
Dettagli di configurazione del mio laboratorio:
- Nome host – openstack.example.com
- IP – 192.168.1.8
- Rete piatta – 192.168.1.0/24
Immergiamoci nei passaggi di installazione di openstack,
Fase 1) Imposta il nome host e aggiorna il file /etc/hosts
Apri il terminale e imposta il nome host usando il seguente comando hostnamectl,
[[email protected] ~]# hostnamectl set-hostname "openstack.example.com" [[email protected] ~]# exec bash
Esegui sotto il comando echo per aggiungere la voce del nome host nel file /etc/hosts.
[[email protected] ~]# echo -e "192.168.1.8\topenstack.example.com" >> /etc/hosts
Passaggio 2) Disabilita Network Manager e Configura rete utilizzando gli script di rete
Gestore di rete è lo strumento predefinito in CentOS 8 per gestire le reti, ma per Openstack dobbiamo disabilitarlo perché la rete openstack non funzionerà correttamente con il gestore di rete. Al posto del gestore di rete, dobbiamo installare gli script di rete nativi.
Per disabilitare il gestore di rete, esegui i seguenti comandi,
[[email protected] ~]# systemctl disable NetworkManager [[email protected] ~]# systemctl stop NetworkManager
Esegui il seguente comando dnf per installare gli script di rete nativi
[[email protected] ~]# dnf install network-scripts -y
Una volta installato il pacchetto di script di rete, possiamo gestire la rete (file ifcfg-*) utilizzando network.service nativo
Ora configuriamo l'indirizzo IP nel file ifcfg-enp0s3 e avviamo il servizio di rete
[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Salva ed esci dal file, quindi avvia il servizio di rete utilizzando il comando seguente,
[[email protected] ~]# systemctl start network [[email protected] ~]# systemctl enable network
Ora verifica se l'IP è assegnato alla NIC (enp0s3) utilizzando il comando ip,
[[email protected] ~]# ip a s enp0s3
Passaggio 3) Abilita i repository OpenStack e installa l'utilità packstack
Al momento della stesura di questo articolo, ussuri openstack era disponibile, quindi esegui il comando seguente per configurare i suoi repository
[[email protected] ~]# dnf config-manager --set-enabled powertools or [[email protected] ~]# dnf config-manager --enable PowerTools [[email protected] ~]# dnf install -y centos-release-openstack-ussuri
Ora installa tutti gli aggiornamenti disponibili e riavvia il sistema,
[[email protected] ~]# dnf update -y [[email protected] ~]# reboot
Una volta che il sistema è disponibile dopo il riavvio, eseguire il seguente comando dnf per installare l'utilità packstack
[[email protected] ~]# dnf install -y openstack-packstack
Passaggio 4) Genera il file di risposta e installa openstack utilizzando packstack
Usa il comando packstack per generare il file di risposta,
[[email protected] ~]# packstack --gen-answer-file /root/openstack-answer.txt
Una volta generato il file di risposta, modifica i seguenti parametri utilizzando l'editor vi,
[[email protected] ~]# vi /root/openstack-answer.txt .............. CONFIG_HEAT_INSTALL=y CONFIG_PROVISION_DEMO=n [email protected] CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:enp0s3 ..............
Salva ed esci dal file.
Sostituisci il nome dell'interfaccia (enp0s3) secondo la tua configurazione.
Nota: Il tipo di unità di rete del tenant predefinito è impostato su "geneve " e il driver di tipo neutrone predefinito è impostato su "geneve e piatto ”. Se desideri modificare questi parametri predefiniti, aggiorna le seguenti righe nel file di risposta. In questa dimostrazione non aggiornerò questi parametri.
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=geneve,flat CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=geneve
Esegui il comando seguente per avviare la distribuzione openstack utilizzando il file di risposta.
[[email protected] ~]# packstack --answer-file /root/openstack-answer.txt
La distribuzione richiederà dai 20 ai 30 minuti a seconda dell'hardware del sistema e della velocità di Internet. Una volta installato correttamente, otterremo quanto segue:
Ora verifica se l'IP dall'interfaccia enp03 è assegnato al bridge br-ex e conferma anche se l'interfaccia enp0s3 è stata aggiunta come porta in ovs-bridge.
Esegui i seguenti comandi:
[[email protected] ~]# ip a s enp0s3 [[email protected] ~]# ip a s br-ex [[email protected] ~]# ovs-vsctl show
Perfetto, l'output sopra conferma che l'installazione è andata a buon fine e anche la rete è configurata secondo il file di risposta.
Passaggio 5) Accedi alla dashboard di Horizon
Ora prova ad accedere alla dashboard di Horizon. L'URL è già specificato nell'output sopra, nel mio caso l'URL è http://192.168.1.8/dashboard , Usa il nome utente come amministratore e password che specifichiamo nel file di risposta.
Ci riferiamo anche al file “keystonerc_admin” per le credenziali
Ora, testiamo questa distribuzione openstack avviando un'istanza.
Passaggio 6) Testare e verificare l'installazione di OpenStack avviando un'istanza
Prima di avviare un'istanza in openstack, dobbiamo prima creare reti e router e un'immagine di occhiata. Quindi, creiamo prima una rete esterna nel tenant amministrativo utilizzando i seguenti comandi neutroni,
[[email protected] ~]# source keystonerc_admin [[email protected] ~(keystone_admin)]# neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external
Ora aggiungi una sottorete della tua rete piatta alla rete esterna eseguendo il comando neutron.
[[email protected] ~(keystone_admin)]# neutron subnet-create --name public_subnet --enable_dhcp=True --allocation-pool=start=192.168.1.210,end=192.168.1.230 --gateway=192.168.1.1 external_network 192.168.1.0/24
Crea un router eseguendo il seguente comando neutron e imposta il suo gateway utilizzando una rete esterna
[[email protected] ~(keystone_admin)]# neutron router-create dev-router [[email protected] ~(keystone_admin)]# neutron router-gateway-set dev-router external_network
Crea una rete privata e allega una sottorete ad essa. Esegui il seguente comando di neutroni,
[[email protected] ~(keystone_admin)]# neutron net-create pvt_net [[email protected] ~(keystone_admin)]# neutron subnet-create --name pvt_subnet pvt_net 10.20.1.0/24
Aggiungi l'interfaccia pvt_net al router "dev_router" usando il comando sotto neutron,
[[email protected] ~(keystone_admin)]# neutron router-interface-add dev-router pvt_subnet
Ora scarica l'immagine Cirros e poi caricala su uno sguardo
[[email protected] ~(keystone_admin)]# wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img [[email protected] ~(keystone_admin)]# openstack image create --disk-format qcow2 --container-format bare --public --file cirros-0.5.1-x86_64-disk.img cirros
Ora torna alla dashboard Horizon e verifica la topologia di rete
Perfetto, sopra conferma che la rete privata ed esterna sono state configurate correttamente insieme al router.
Un ultimo passaggio prima di creare una vm, aggiornare il gruppo di sicurezza predefinito, aggiungere le regole di ingresso icmp e ssh, fare clic su "Gruppi di sicurezza ” nella scheda Rete, fai clic su Gestisci regole, quindi fai clic su “Aggiungi regola ”
Allo stesso modo aggiungi una regola per ssh
Fare clic su Aggiungi
Ora tutti i requisiti per avviare un'istanza openstack sono soddisfatti. Fai clic su Calcola Tab e poi scegli Istanze opzione e fai clic su "Avvia istanza ”
Una volta che la VM è stata avviata con successo, otterremo qualcosa come di seguito,
Ora Associa IP mobile all'istanza (demo_vm), in "Azioni ” Scheda, scegli “Associa IP mobile ”
Ora scegli IP o fai clic su segno + per ottenere un IP mobile da una rete esterna e quindi associarlo
Una volta che l'IP è stato associato alla VM, l'IP mobile verrà visualizzato per l'opzione "Indirizzo IP", l'esempio è mostrato di seguito
Ora prova ad accedere a questo demo_vm usando l'ip mobile, usa cirros come utente e "gocubsgo" come password
Ottimo, l'output sopra conferma che possiamo accedere alla nostra istanza tramite IP mobile. Questo conclude l'articolo; Spero che questo tutorial aiuti a distribuire openstack sul sistema CentOS 8. Non esitare a condividere feedback e commenti.
Leggi anche :Come creare un'istanza in OpenStack tramite riga di comando