acesta va fi un tutorial complet despre instalarea OpenStack (configurare minimă). Aș dori foarte mult să încerc sistemul de operare cloud open-source, iar OpenStack este una dintre soluțiile Serioase, utilizate de multe instituții și întreprinderi. Cern este unul dintre utilizatori, iar Red Hat este un susținător puternic al OpenStack.
fiți conștienți: chiar și după acest tutorial „călcat”, veți fi întâmpinați cu erori după ce ați configurat totul și va trebui să cercetați mai mult pentru ca OpenStack-ul dvs. să funcționeze ok. Voi scrie despre unele dintre probleme în câteva ghiduri rapide.
OpenStack are, de asemenea, reputația de a fi complicat de instalat și întreținut și nu foarte stabil. Am citit mult pe subiectul OpenStack, am trecut prin multă documentație și acesta este rezultatul. Aceasta va acoperi instalarea manuală a eliberării trenului, iar această serie extinsă va acoperi fiecare componentă a instalării minime OpenStack (nu lăsați acest minim să vă păcălească, există multe de făcut).
există câteva diferențe între documentația oficială OpenStack și implementarea în sine, astfel încât acest tutorial ar trebui să vă ajute, de asemenea, să economisiți nenumărate ore de căutare a greșelilor și de descifrare a erorilor.
procedura este obositoare, dar aș recomanda-o foarte mult, deoarece la sfârșitul acesteia, veți avea o bună înțelegere a principiilor de bază ale OpenStack.
Mai multe despre acest subiect data viitoare, să trecem la treabă.
există o curbă de învățare și, din ceea ce am citit, cred că OpenStack este în acest moment o soluție stabilă pentru nevoile dvs. de cloud.
dar, vom vedea pe parcurs, să ne scufundăm.
premise
voi folosi CentOS 7 pentru instalările mele (v.1908). Voi crea laboratorul meu în VMware Fusion / Workstation. CentOS instalarea inițială este minimă fără GUI sau orice adăugiri.
toate VM-urile mele vor avea nuclee 4cpu și 8 GB RAM cu un hard disk Minim de 120 GB.Puteți găsi cerințe minime aici – https://docs.openstack.org/install-guide/overview.html
luați notă despre cerințele suplimentare de la componentele de rețea și unitate și adăugați în consecință la laboratorul dvs.

laboratorul meu are acces la internet.
voi urmări documentația OpenStack pe parcurs – https://docs.openstack.org/install-guide/common/conventions.html
voi instala construirea trenului, care este cea actuală. Voi începe cu Nodul controlerului 1 și nodul de calcul 1.
rețeaua furnizorului va fi după cum urmează (aveți nevoie de acces la internet pentru această configurație):
10.0.0.1/24 – gateway
10.0.0.11/24 – nodul controlerului 1
10.0.0.31/24 – nodul de calcul 1
10.0.0.41/24 – nodul de stocare bloc 1
10.0.0.51/24-nod de stocare obiect 1
10.0.0.52/24 – nod de stocare obiect 2
voi crea, de asemenea, mai târziu de rețea în intervalul 203.0.113.0 / 24, care va fi de gestionare a rețelei.
iată și numele și adresele IP ale mașinilor (veți avea nevoie și de ele în fișierul hosts):
10.0.0.11 controler
10.0.0.31 compute1
10.0.0.41 block1
10.0.0.51 object1
10.0.0.52 object2
schimba numele de gazdă mașină
pentru fiecare mașină în numele de gazdă schimbare de laborator. Voi schimba numele de gazdă la numele pe care le-am specificat chiar deasupra acestui lucru.
comanda este mai jos, controlerul este numele uneia dintre mașini, schimbați-l la ceea ce considerați potrivit.
sudo hostnamectl set-hostname controller

Iată ce se schimbă după repornire.

am numit mașinile mele – controler, compute1, block1, object1, object2.
configurează rezoluția numelui
editează interfața de rețea localizată în /etc/sysconfig/network-scripts
în cazul meu, am interfață ifcfg-ens33
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
am editat următoarele linii (exemplu mașină controler):
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
iată cum arată

reporniți mașina după ce setați configurația IP. Repetați acești pași pentru toate mașinile din laborator (desigur setați o adresă IP diferită pentru fiecare).
actualizare instalare CentOS
înainte de a merge mai departe, vom actualiza instalațiile noastre CentOS. În acest fel vom confirma și conectivitatea noastră la internet.
sudo yum update -y
editați fișierul gazdelor
Din nou, trebuie să facem asta pe fiecare mașină. Vom edita fișierul gazdelor, astfel încât mașinile să se poată vedea reciproc după nume.
sudo vi /etc/hosts/
asta trebuie să introducem
10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2
Iată cum arată fișierul meu

dacă am făcut totul ok, acum ar trebui să putem face ping de la controler la compute1 și invers după nume. (Asigurați-vă că ping-ul dvs. este disponibil prin firewall)


funcționează.Introduceți aceste valori în fiecare fișier hosts pe fiecare mașină și asigurați-vă că puteți ping fiecare mașină, și de testare de la fiecare mașină.
Setup NTP service
măsurarea precisă a timpului este importantă, așa că vom seta serverul de timp și vom atașa clienții la acesta. Serverul de timp va fi serverul nostru de control și clientul tuturor celorlalte mașini.
configurarea serverului NTP
vom face acest lucru pe serverul nostru de control.
sudo yum install chrony -y
activați și porniți serviciul rulând
sudo systemctl start chronydsudo systemctl enable chronyd
de asemenea, puteți verifica starea serviciului rulând
systemctl status chronyd
în continuare, vom edita/etc / chrony.fișier conf
sudo vi /etc/chrony.conf
pentru acest tutorial voi lăsa serverele implicite centos NTP. În caz contrar, dacă doriți să editați serverele NTP, puteți adăuga comanda de mai jos (înlocuiți NTP_SERVER cu numele serverului NTP)
server NTP_SERVER iburst
De asemenea, va trebui să activăm accesul clienților noștri NTP din rețeaua locală prin necomentarea și editarea următorului rând
allow 10.0.0.0/24
aici este config-ul meu. Partea verde este locul în care veți introduce serverele NTP, iar partea roșie este activată accesul din rețeaua noastră locală pentru sincronizarea timpului.

reporniți serverul sau serviciul chrony tastând
sudo systemctl restart chronyd
vom verifica dacă serverul nostru sincronizează timpul tastând
chronyc sources

serviciul funcționează pentru mine.
îl vom activa și prin firewall
sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload
configurarea clienților NTP
acești pași trebuie făcuți pe restul mașinilor.
Din nou, trebuie să instalăm chrony
sudo yum install chrony
activați și porniți serviciul NTP
sudo systemctl start chronydsudo systemctl enable chronyd
după care trebuie din nou să edităm/etc / chrony.conf
sudo vi /etc/chrony.conf
va trebui să ștergeți toate coment din toate serverele NTP și introduceți următoarele
server controller iburst
lăsați totul așa cum este și închideți fișierul. Așa arată a mea.

din nou, reporniți serviciul NTP
sudo systemctl restart chronyd
și vă permite să verificați dacă funcționează
chronyc sources

funcționează, clientul comunică cu serverul NTP.
și, pe serverul NTP dacă introducem comanda
chronyc clients
vom vedea că compute1 este client NTP

repetați pasul pe restul mașinilor.
pachete OpenStack
acești pași trebuie făcuți pe toate nodurile. Dacă nu ați actualizat instalarea CentOS și, de asemenea, dezactivați EPEL Repo.
!!!///Numai pentru instalările Red HAT, CENTOS sări peste acest
subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms
rulați următoarea comandă (instalăm eliberarea trenului)
sudo yum install centos-release-openstack-train


următoarea comandă pe care o vom rula este
sudo yum upgrade
reporniți după acesta și selectați kernel nou pentru a-l activa.
următoarea comandă va fi
sudo yum install python-openstackclient
și în cele din urmă, avem nevoie să integrăm instalarea OpenStack în SELinux
sudo yum install openstack-selinux
baza de date SQL
baza de date va fi instalată pe nodul controlerului.Vom instala MariaDB.
sudo yum install mariadb mariadb-server python2-PyMySQL
după terminarea instalării, va trebui să edităm un openstack.conf situat în / etc / meu.cnf.d
sudo vi /etc/my.cnf.d/openstack.conf
vom crea secțiunea mysqld cu următoarele informații (asigurați-vă că adresa bind este adresa controlerului dvs.)
bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8
Iată cum arată în cazul meu

activați și porniți MariaDB
sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service
vom adăuga, de asemenea, excepție firewall
sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload
în cele din urmă vom asigura instalarea noastră și a stabilit parola pentru root SQL utilizator
sudo mysql_secure_installation
coada de mesaje
OpenStack utilizează coada de mesaje pentru a coordonează operațiunile și starea între servicii. De obicei rulează pe controler, așa că îl vom instala pe controler. Vom instala RabbitMQ
instalare
sudo yum install rabbitmq-server
porniți și activați serviciul
sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service
Adăugați utilizator openstack la acesta. Înlocuiți RABBIT_PASS cu parola.
sudo rabbitmqctl add_user openstack RABBIT_PASS
Setați permisiunile
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

acestea sunt setări Firewall pentru RabbitMQ
sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=25672/tcp --add-port=5671-5672/tcp --add-port=15672/tcp --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=8883/tcpsudo firewall-cmd --reload
comandă SELinux opțională
setsebool -P nis_enabled 1
memcached
mecanismul de autentificare a serviciului de identitate pentru servicii utilizează memcached pentru a cache jetoane. Serviciul memcached rulează de obicei pe nodul controlerului, așa că îl voi instala pe nodul controlerului.
Installation
sudo yum install memcached python-memcached
Next, we will edit /etc/sysconfig/memcached
sudo vi /etc/sysconfig/memcached
controller should be added to OPTIONS line, like this
OPTIONS="-l 127.0.0.1,::1,controller"

At last, we will enable and start service
sudo systemctl enable memcached.servicesudo systemctl start memcached.service
Optional firewall settings for memcached
sudo firewall-cmd --new-zone=memcached --permanentsudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=10.0.0.0/24 --permanentsudo firewall-cmd --reload
Etcd
Short explanation from docs.openstack.serviciile org-OpenStack pot utiliza Etcd, un magazin de valori distribuite de încredere pentru blocarea cheilor distribuite, stocarea configurației, urmărirea serviciului live-ness și alte scenarii.
Etcd ar trebui să fie instalat pe nod controler.
instalare
sudo yum install etcd
în continuare vom edita/etc/etcd / etcd.conf
sudo vi /etc/etcd/etcd.conf
ar trebui să editați fișierul ca acesta și să modificați valorile de mai jos pentru a se potrivi IP-ului sau numelui controlerului.
#ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"ETCD_NAME="controller"#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"
așa arată fișierul meu

activați și porniți serviciul
sudo systemctl enable etcdsudo systemctl start etcd
setări suplimentare pentru firewall
sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload
deci, suntem mai mult sau mai puțin” terminați ” cu o parte inițială, acum vom face o implementare minimă pentru tren.
implementare minimă pentru tren
Ok, așa că am avut succes până acum. Acum vom face o implementare minimă a serviciilor pentru tren. Mai multe detalii pot fi găsite aici – https://docs.openstack.org/install-guide/openstack-services.html
Serviciile trebuie instalate în ordinea specificată, așa cum este descris mai jos

deoarece acest tutorial merge un pic lung deja, am de gând să-l termine aici, și să acopere fiecare dintre serviciile de mai sus în tutorial separat.
lucru Important este de a face toate serviciile în ordine exactă, deoarece acestea sunt de mai jos.
aici sunt link – urile
- serviciul de identitate-instalare keystone pentru tren
2. Service imagine – instalare privire pentru tren
3. Serviciu de plasare – instalație de plasare pentru tren
4. Compute service – instalare nova pentru tren
5. Serviciu de rețea – instalare neutron pentru tren
vă sfătuim să instalați și următoarele componente după ce ați instalat serviciile minime de implementare:
6. Tablou de bord-instalație orizont pentru tren
7. Serviciu de stocare bloc – instalare zgură pentru tren
8. Object Storage service – swift installation for Train
Additional links for after installation for errors you may encounter:
Disclaimer