OpenStack è un software cloud open source che fornisce infrastruttura come servizio (IaaS) . Può essere installato su nodi singoli e multipli.
In questo articolo distribuiremo openStack su tre nodi (calcolo + controller + rete) su CentOS 7.x utilizzando il repository RDO e l'utilità packstack. Per l'installazione di OpenStack a nodo singolo, fare riferimento a quanto segue:
Come installare OpenStack a nodo singolo su CentOS 7
Nell'articolo sto utilizzando tre macchine virtuali ospitate su VirtualBox e ogni VM ha un'unica interfaccia LAN. Di seguito sono riportati i dettagli dell'architettura:
Dettagli del nodo controller:
- Nome host =controller.example.com
- Indirizzo IP =192.168.1.30
- OS =CentOS 7.x
- DNS =192.168.1.11
I seguenti componenti OpenStack verranno installati sul nodo controller:
- Pietra di volta
- Sguardo
- veloce
- cenere
- Orizzonte
- Neutrone
- Nova novncproxy
- Novembre
- Nova API
- Programmazione Nova
- Direttore Nova
Dettagli del nodo di calcolo:
- Nome host =compute.example.com
- Indirizzo IP =192.168.1.31
- OS =CentOS 7.X
- DNS =192.168.1.11
I seguenti componenti OpenStack verranno installati sul nodo di calcolo:
- Nova Compute
- Neutron – Agente Openvswitch
Dettagli del nodo di rete:
- Nome host =network.example.com
- Indirizzo IP =192.168.1.32
- OS =CentOS 7.x
- DNS =192.168.1.11
I seguenti componenti OpenStack verranno installati sul nodo di rete:
- Server Neutron
- Agente DHCP Neturon
- Agente Neutron-Openswitch
- Agente Neutron L3
Esegui i seguenti passaggi per l'installazione:
Passaggio:1 Aggiorna i nodi usando il comando seguente.
Utilizzare il comando seguente su tutti e tre i nodi per aggiornare tutti i pacchetti installati.
# yum -y update ; reboot
Fase:2 Aggiorna il file /etc/hosts e il nome host
Imposta il nome host su tutti e tre i nodi usando il comando sottostante , nel caso non sia impostato.
# hostnamectl set-hostname 'new_hostname'
Aggiorna il file /etc/hosts se non hai configurato il DNS locale.
192.168.1.30 controller.example.com controller 192.168.1.31 compute.example.com compute 192.168.1.32 network.example.com network
Fase:3 Disabilita SELinux e Network Manager su tutti e tre i nodi.
Usa il comando seguente per disabilitare SELinux su tutti e tre i nodi.
# setenforce 0
Disabilitato SELinux in modo permanente modificando il parametro 'SELINUX=disabled' nel file '/etc/sysconfig/selinux '
Usa i comandi seguenti per disabilitare Network Manager su tutti e tre i nodi.
# systemctl stop NetworkManager # systemctl disable NetworkManager # reboot
Passaggio:4 Imposta l'autenticazione senza password dal nodo Controller su Compute &Network Node.
Esegui i comandi seguenti dal nodo Controller.
[[email protected] ~]# ssh-keygen [[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] [[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Ora controlla :
[[email protected] ~]# ssh compute Last login: Sun Apr 3 00:03:44 2016 from controller.example.com [[email protected] ~]# hostname compute.example.com [[email protected] ~]# [[email protected] ~]# ssh network Last login: Sun Apr 3 00:04:20 2016 from controller.example.com [[email protected] ~]# hostname network.example.com [[email protected] ~]#
Passo:5 Abilita il repository RDO e installa l'utility packstack
Utilizzare il comando yum di seguito per abilitare il repository RDO e installare l'utilità packstack solo sul nodo controller.
[[email protected] ~]# yum install -y https://www.rdoproject.org/repos/rdo-release.rpm [[email protected] ~]# yum install -y openstack-packstack
Passaggio:6 Genera e personalizza il file di risposta
Usa il comando seguente per generare il file di risposta.
[[email protected] ~]# packstack --gen-answer-file=/root/answer.txt [[email protected] ~]#
Modifica il file di risposta e specifica l'indirizzo IP del controller, del computer e del nodo di rete. Oltre a questo, specifica anche le password dei diversi servizi e disabilita i componenti come la versione Demo e Ceilometer.
[[email protected] ~]# vi /root/answer.txt ........................................ CONFIG_CONTROLLER_HOST=192.168.1.30 CONFIG_COMPUTE_HOSTS=192.168.1.31 CONFIG_NETWORK_HOSTS=192.168.1.32 CONFIG_PROVISION_DEMO=n CONFIG_CEILOMETER_INSTALL=n CONFIG_HORIZON_SSL=y CONFIG_NTP_SERVERS=<Specify NTP Server IP > CONFIG_KEYSTONE_ADMIN_PW=<Specify New_Password> ..........................................
Nota : Nel caso in cui non si disponga di un server NTP, è possibile lasciare il parametro NTP così com'è, ma si consiglia vivamente di utilizzare il server ntp per la sincronizzazione dell'ora.
Passaggio:7 Avvia l'installazione utilizzando il comando packstack.
Ora possiamo avviare l'installazione di openstack usando il comando packstack. Esegui il comando seguente dal nodo Controller.
[[email protected] ~]# packstack --answer-file=/root/answer.txt
Una volta completata l'installazione con successo, otterremo di seguito:
Dopo l'installazione, una nuova interfaccia "br-ex ' verrà creato nel nodo di rete. Aggiungi l'interfaccia di rete (enp0s3 o eth0 o potrebbe essere un altro nome ) al Apri il bridge vSwitch 'br-ex' come porta e assegna l'indirizzo IP di "enp0s3" a "br-ex"
[[email protected] ~]# cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# cp ifcfg-enp0s3 ifcfg-br-ex [[email protected] network-scripts]# vi ifcfg-enp0s3 DEVICE=enp0s3 HWADDR=08:00:27:37:4C:EF TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex ONBOOT=yes [[email protected] network-scripts]# vi ifcfg-br-ex DEVICE=br-ex DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=192.168.1.32 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.11 ONBOOT=yes
Riavvia il servizio di rete utilizzando il comando seguente.
[[email protected] network-scripts]# systemctl restart network [[email protected] network-scripts]#
Passaggio:8 Accedi alla dashboard di Openstack.
Ora prova ad accedere alla dashboard di openstack dal browser usando di seguito.
https://192.168.1.30/dashboard
Usa il nome utente come "admin" e la password che specifichi nel file answer.txt.
Fare clic su "Connetti"
Nota:nel caso in cui visualizzi "Errore:impossibile recuperare le informazioni sul limite del volume" nella dashboard, è possibile risolvere il problema aggiungendo quanto segue in cinder.conf file sul nodo controller.
[[email protected] ~]# vi /etc/cinder/cinder.conf .................................... [keystone_authtoken] auth_uri = http://<Controller_IP>:5000 auth_url = http://<Controller_IP>:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = services username = cinder password = <Cinder_Password> {Search CONFIG_CINDER_KS_PW in answer file} .....................................
Riavvia il servizio Cinder.
[[email protected] ~]# systemctl restart openstack-cinder-api.service [[email protected] ~]# systemctl restart openstack-cinder-backup.service [[email protected] ~]# systemctl restart openstack-cinder-scheduler.service [[email protected] ~]# systemctl restart openstack-cinder-volume.service
Poiché siamo in grado di accedere alla dashboard, possiamo dire che la parte di installazione è stata completata. Ora il prossimo compito è avviare un'istanza, per questo dobbiamo eseguire le seguenti attività.
- Crea progetto e utenti
- Assegna utenti al progetto.
- Crea immagine e sapori
- Definisci rete interna ed esterna
- Crea router
- Crea regole di sicurezza per macchine virtuali o istanze.
Per eseguire l'attività di cui sopra, fare riferimento al seguente URL:
- Avvio di un'istanza da Liberty OpenStack Dashboard.
Riferimento:– https://www.rdoproject.org/install/packstack/