De Ghulam Qadir, Alibaba Cloud Tech Share Autor. Tech Share este programul de stimulare al Alibaba Cloud pentru a încuraja împărtășirea cunoștințelor tehnice și a celor mai bune practici în cadrul comunității cloud.

OpenStack este o platformă software gratuită și open-source care oferă IaaS (infrastructure-as-a-service) pentru cloud-uri publice și private.

Platforma OpenStack este formată din mai multe proiecte interconectate care controlează resursele hardware, de stocare, de rețea ale unui centru de date, cum ar fi: Compute, Image Service, Block Storage, Identity Service, Networking, Object Storage, Telemetry, Orchestration și Database.

Deși funcția de bază a OpenStack este de a oferi o platformă IaaS, aceasta este utilizată ca DBaaS (database-as-a-service), construirea de clustere Hadoop, orchestrarea containerelor și multe altele. Administrarea acestor componente poate fi gestionată prin intermediul interfeței bazate pe web sau cu ajutorul liniei de comandă OpenStack.

Acest tutorial vă va arăta cum vă puteți implementa propria infrastructură cloud privată cu OpenStack instalată pe un singur nod prin utilizarea depozitelor rdo, deși implementarea poate fi realizată pe mai multe noduri. Vom implementa acest serviciu pe instanțe Alibaba Cloud Elastic Compute Service (ECS) cu CentOS 7.

  1. Hostname = openstack.example.com
  2. Adresa IP = 192.168.1.40
  3. masca de rețea = 255.255.255.255.255.0
  4. Gateway = 192.168.1.1
  5. DNS = 192.168.1.254

Precondiții

  1. Trebuie să aveți Alibaba Cloud Elastic Compute Service (ECS) activat și să verificați metoda de plată validă. Dacă sunteți un utilizator nou, puteți obține un cont gratuit în contul dumneavoastră Alibaba Cloud. Dacă nu știți cum să vă configurați instanța ECS, puteți consulta acest tutorial sau ghidul de pornire rapidă.
  2. Ar trebui să configurați numele de gazdă al serverului.
  3. Accesați consola VNC din Alibaba Cloud sau clientul SSH instalat în PC-ul dvs.

După ce ați completat condițiile prealabile, conectați-vă ca utilizator root cu numele de utilizator root & parola prin intermediul clientului SSH (de exemplu, Putty) sau a consolei VNC disponibilă în tabloul de bord al contului dvs. Alibaba Cloud.

Asigurați-vă că sistemul dvs. are cel puțin 16GB de RAM și un procesor cu suport VT. Verificați suportul VT cu ajutorul comenzii de mai jos.

 egrep --color 'vmx|svm' /proc/cpuinfo | wc –l

Output: (nu ar trebui să fie zero)

 2

Configurări inițiale ale sistemului

  1. Înainte de a începe să pregătiți nodul în vederea implementării propriei infrastructuri cloud virtuale, conectați-vă mai întâi cu contul de root și asigurați-vă că sistemul este actualizat.

    Asigurați-vă că pe mașină există cea mai recentă versiune de CentOS 7.

     yum -y update
  2. În continuare, lansați comanda ss -tulpn pentru a lista toate serviciile care rulează.
     Ss -tulpn

1

Acum identificați serviciile inutile, opriți-le, dezactivați-le și eliminați-le. În principal Postfix, NetworkManager și Firewalld. După aceea, singurul serviciu care ar trebui să ruleze pe mașina dvs. linux ar trebui să fie doar sshd.

 # systemctl stop postfix firewalld NetworkManager # systemctl disable postfix firewalld NetworkManager # systemctl mask NetworkManager # yum remove postfix NetworkManager NetworkManager-libnm

Dezactivați permanent politica Selinux pe mașina dvs. linux executând următoarele comenzi. De asemenea, editați fișierul /etc/selinux/config și modificați SELINUX din enforcing în disabled așa cum se arată în imaginea de mai jos.

 # setenforce 0 # getenforce # vi /etc/selinux/config

2

La pasul următor, folosind comanda hostnamectl pentru a seta numele de gazdă al sistemului Linux. Înlocuiți variabila FQDN în mod corespunzător.

 # hostnamectl set-hostname cloud.centos.lan

3

În cele din urmă, instalați ntpdate pentru a sincroniza timpul cu un server NTP.

 # yum install ntpdate

Instalați OpenStack în CentOS și RHEL

OpenStack va fi implementat pe Nodul dumneavoastră cu ajutorul pachetului PackStack furnizat de depozitul rdo (RPM Distribution of OpenStack).

Pentru a activa depozitele rdo pe RHEL 7, rulați comanda de mai jos.

 # yum install https://www.rdoproject.org/repos/rdo-release.rpm

Pe CentOS 7, depozitul Extras include RPM-ul care activează depozitul OpenStack. Extras este deja activat, astfel încât puteți instala cu ușurință RPM-ul pentru a configura depozitul OpenStack:

 # yum install -y centos-release-openstack-mitaka # yum update –y

Să instalăm pachetul Packstat pe mașina linux folosind următoarea comandă:

 # yum install openstack-packstack

La pasul următor generați un fișier de răspuns pentru Packstack cu configurațiile implicite, care va fi editat ulterior cu parametrii necesari pentru a implementa o instalare autonomă de Openstack (un singur nod).

Fisierul va fi numit după marcajul de timp al zilei curente atunci când este generat (ziua, luna și anul).

 # packstack --gen-answer-file='date +"%d.%m.%y"'.conf # ls

4

Acum editați fișierul de răspuns cu editorul de text preferat.

 vi 26.07.18.conf

și înlocuiți următorii parametri pentru a corespunde valorilor de mai jos. Pentru a fi în siguranță, înlocuiți câmpurile de parole în mod corespunzător.

 CONFIG_NTP_SERVERS=0.ro.pool.ntp.org

5

 CONFIG_PROVISION_DEMO=n

6

 CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user

7

Accesați tabloul de bord OpenStack prin HTTP cu SSL activat.

 CONFIG_HORIZON_SSL=y

8

Parola root pentru serverul MySQL.

 CONFIG_MARIADB_PW=mypassword1234

9

După ce ați terminat de editat salvați și închideți fișierul. De asemenea, deschideți fișierul de configurare a serverului SSH și decomentați linia PermitRootLogin, eliminând hashtag-ul din față, așa cum este ilustrat în captura de ecran de mai jos.

 # vi /etc/ssh/sshd_config

10

Apoi reporniți serviciul SSH pentru a reflecta modificările.

 # systemctl restart sshd 

Începeți instalarea Openstack utilizând fișierul de răspuns Packstack

În cele din urmă, începeți procesul de instalare Openstack prin intermediul fișierului de răspuns editat mai sus, executând sintaxa de comandă de mai jos:

 # packstack --answer-file 13.04.16.conf

11

După ce instalarea componentelor OpenStack este finalizată cu succes, programul de instalare va afișa câteva rânduri cu link-urile pentru tabloul de bord local pentru OpenStack și Nagios și acreditările necesare deja configurate mai sus pentru a se autentifica pe ambele panouri.

12

Credențialele sunt, de asemenea, stocate sub directorul dvs. personal în fișierul keystonerc_admin.

Dacă, din anumite motive, procesul de instalare se încheie cu o eroare privind serviciul httpd, deschideți /etc/httpd/conf.d/ssl.conf și asigurați-vă că ați comentat următoarea linie, așa cum este ilustrat mai jos.

 #Listen 443 https

13

Apoi reporniți daimonul Apache pentru a aplica modificările.

 # systemctl restart httpd.service

Nota: În cazul în care tot nu puteți naviga prin panoul web Openstack pe portul 443, reporniți procesul de instalare de la început cu aceeași comandă emisă pentru implementarea inițială.

 # packstack --answer-file /root/26.07.18.conf

Accesarea de la distanță a tabloului de bord OpenStack

Pentru a accesa panoul web OpenStack de la o gazdă de la distanță din LAN navigați la adresa IP a mașinii dvs. sau FQDN/ tabloul de bord prin protocolul HTTPS.

Datorită faptului că utilizați un certificat autofirmat emis de o autoritate de certificare care nu este de încredere, ar trebui să se afișeze o eroare pe browserul dvs.

Acceptați eroarea și conectați-vă la tabloul de bord cu utilizatorul admin și parola setată pe parametrul CONFIG_KEYSTONE_ADMIN_PW din fișierul de răspuns setat mai sus.

 https://192.168.1.40/dashboard

14

15

Alternativ, dacă ați optat pentru instalarea componentei Nagios pentru OpenStack, puteți naviga pe panoul web Nagios la următorul URI și vă puteți autentifica cu credențialele configurate în fișierul de răspuns.

 https://192.168.1.40/nagios

16

17

Configuration

OpenStack este o colecție de componente de proiecte open source care permit configurarea de servicii cloud. Fiecare componentă utilizează tehnici de configurare similare și un cadru comun pentru opțiunile fișierelor INI.

Acest ghid reunește mai multe referințe și opțiuni de configurare pentru următoarele componente OpenStack:

  1. Serviciul Bare Metal
  2. Serviciul de stocare a blocurilor
  3. Serviciul de calcul
  4. Dashboard
  5. Serviciul de baze de date
  6. Serviciul de procesare a datelor
  7. Serviciul de identitate
  8. Serviciul de imagini
  9. Serviciul de mesagerie. serviciu
  10. Serviciu de rețea
  11. Serviciu de stocare a obiectelor
  12. Serviciu de orchestrare
  13. Serviciu de sisteme de fișiere partajate
  14. Serviciu de telemetrie

OpenStack utilizează formatul de fișier INI pentru fișierele de configurare. Un fișier INI este un fișier text simplu care specifică opțiunile ca perechi cheie=valoare, grupate în secțiuni. Secțiunea DEFAULT conține cea mai mare parte a opțiunilor de configurare. Liniile care încep cu un semn hash (#) sunt linii de comentariu. De exemplu:

 # Print debugging output (set logging level to DEBUG instead # of default WARNING level). (boolean value) debug = true # The SQLAlchemy connection string used to connect to the # database (string value) connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

Opțiunile pot avea diferite tipuri de valori. Comentariile din exemplele de fișiere de configurare le menționează întotdeauna, iar tabelele menționează valoarea Opt ca prim element, cum ar fi (BoolOpt) Toggle…. Următoarele tipuri sunt utilizate de OpenStack:

valoare booleană (BoolOpt)

Activă sau dezactivează o opțiune. Valorile permise sunt true și false.

 # Enable the experimental use of database reconnect on # connection lost (boolean value) use_db_reconnect = false

valoare cu virgulă mobilă (FloatOpt)

Un număr cu virgulă mobilă, cum ar fi 0,25 sau 1000.

 # Sleep time in seconds for polling an ongoing async task # (floating point value) task_poll_interval = 0.5

valoare întreagă (IntOpt)

Un număr întreg este un număr fără componente fracționare, cum ar fi 0 sau 42.

 # The port which the OpenStack Compute service listens on. # (integer value) compute_port = 8774

Adresa IP (IPOpt)

O adresă IPv4 sau IPv6.

 # Address to bind the server. Useful when selecting a particular network # interface. (ip address value) bind_host = 0.0.0.0

perechi cheie-valoare (DictOpt)

O pereche cheie-valoare, cunoscută și sub numele de dicționar. Perechile cheie-valoare sunt separate prin virgule și se utilizează două puncte pentru a separa cheia și valoarea. Exemplu: cheie1:valoare1,cheie2:valoare2.

 # Parameter for l2_l3 workflow setup. (dict value) l2_l3_setup_params = data_ip_address:192.168.200.99, \ data_ip_mask:255.255.255.0,data_port:1,gateway:192.168.200.1,ha_port:2

Listă de valori (ListOpt)

Reprezintă valori de alte tipuri, separate prin virgule. Ca exemplu, următoarea setare stabilește allowed_rpc_exception_modules la o listă care conține cele patru elemente oslo.messaging.exceptions, nova.exception, cinder.exception, și exceptions:

 # Modules of exceptions that are permitted to be recreated # upon receiving exception data from an rpc call. (list value) allowed_rpc_exception_modules = oslo.messaging.exceptions,nova.exception

multi valued (MultiStrOpt)

Opțiunea multivaluată este o valoare de tip șir de caractere și poate fi dată de mai multe ori, toate valorile vor fi utilizate.

 # Driver or drivers to handle sending notifications. (multi valued) notification_driver = nova.openstack.common.notifier.rpc_notifier notification_driver = ceilometer.compute.nova_notifier

port value (PortOpt)

Un număr de port TCP/IP. Porturile pot fi cuprinse între 1 și 65535.

 # Port to which the UDP socket is bound. (port value) # Minimum value: 1 # Maximum value: 65535 udp_port = 4952

Valoare șir (StrOpt)

Circuitele pot fi opțional încadrate cu ghilimele simple sau duble.

 # Enables or disables publication of error events. (boolean value) publish_errors = false # The format for an instance that is passed with the log message. # (string value) instance_format = " "

Secțiuni

Opțiunile de configurare sunt grupate pe secțiuni. Majoritatea fișierelor de configurare suportă cel puțin următoarele secțiuni:

Conține majoritatea opțiunilor de configurare. Dacă documentația pentru o opțiune de configurare nu specifică secțiunea sa, se presupune că aceasta apare în această secțiune.

Opțiuni de configurare pentru baza de date care stochează starea serviciului OpenStack.

Substituire

Fisierul de configurare acceptă substituirea variabilelor. După ce setați o opțiune de configurare, aceasta poate fi menționată în valori de configurare ulterioare atunci când o precedați de un $, ca $OPȚIUNE.

Exemplul următor utilizează valorile rabbit_host și rabbit_port pentru a defini valoarea opțiunii rabbit_hosts, în acest caz ca controller:5672.

 # The RabbitMQ broker address where a single node is used. # (string value) rabbit_host = controller # The RabbitMQ broker port where a single node is used. # (integer value) rabbit_port = 5672 # RabbitMQ HA cluster host:port pairs. (list value) rabbit_hosts = $rabbit_host:$rabbit_port

Pentru a evita substituția, utilizați

$$, acesta este înlocuit cu un singur $. De exemplu, dacă parola LDAP DNS este $xkj432, specificați-o, după cum urmează:

 ldap_dns_password = $$xkj432

Codul utilizează șirul Python. Template.safe_substitute() pentru a implementa înlocuirea variabilelor. Pentru mai multe detalii despre modul în care este rezolvată substituirea variabilelor.

Whitespace

Pentru a include spații albe într-o valoare de configurare, utilizați un șir citat. De exemplu:

 ldap_dns_passsword='a password with spaces'

Definiți o locație alternativă pentru un fișier de configurare

Majoritatea serviciilor și clienții din linia de comandă -manage încarcă fișierul de configurare. Pentru a defini o locație alternativă pentru fișierul de configurare, treceți parametrul –config-file CONFIG_FILE atunci când porniți un serviciu sau apelați o comandă -manage.

Concluzie

Am demonstrat instalarea OpenStack pe Red Hat, CentOS și Fedora Linux. Acum vă puteți configura cu ușurință propriul mediu cloud privat pe Alibaba Cloud Elastic Compute Service (ECS) cu OpenStack.

.

Articles

Lasă un răspuns

Adresa ta de email nu va fi publicată.