By Ghulam Qadir, Alibaba Cloud Tech Share Author. A Tech Share az Alibaba Cloud ösztönző programja, amely a technikai tudás és a legjobb gyakorlatok megosztását ösztönzi a felhőközösségen belül.

A OpenStack egy ingyenes és nyílt forráskódú szoftverplatform, amely IaaS (infrastructure-as-a-service) szolgáltatást nyújt nyilvános és privát felhők számára.

A OpenStack platform több, egymással összefüggő projektből áll, amelyek egy adatközpont hardver, tároló, hálózati erőforrásait vezérlik, mint például: Compute, Image Service, Block Storage, Identity Service, Networking, Object Storage, Telemetry, Orchestration és Database.

Noha az OpenStack alapvető funkciója az IaaS platform biztosítása, használják DBaaS (database-as-a-service), Hadoop fürtök építése, Container orchestration és sok más. Ezeknek a komponenseknek az adminisztrációja webes felületen keresztül vagy az OpenStack parancssor segítségével kezelhető.

Ez a bemutató megmutatja, hogyan telepítheti saját privát felhő infrastruktúráját egyetlen csomópontra telepített OpenStackkel az rdo tárolók segítségével, bár a telepítés több csomóponton is megvalósítható. A szolgáltatást a CentOS 7 rendszerű Alibaba Cloud Elastic Compute Service (ECS) példányokon fogjuk telepíteni.

  1. Hostname = openstack.example.com
  2. IP-cím = 192.168.1.40
  3. netmask = 255.255.255.255.0
  4. Gateway = 192.168.1.1
  5. DNS = 192.168.1.254

Előfeltételek

  1. Az Alibaba Cloud Elastic Compute Service (ECS) szolgáltatást aktiválni kell, és ellenőrizni kell az érvényes fizetési módot. Ha Ön új felhasználó, akkor az Alibaba Cloud-fiókjában kaphat egy ingyenes fiókot. Ha nem tudja, hogyan kell beállítani az ECS-példányt, olvassa el ezt a bemutatót vagy a gyorsindítási útmutatót.
  2. El kell állítania a szerver hostnevét.
  3. Hozzáférés a VNC-konzolhoz az Alibaba Cloudban vagy a számítógépére telepített SSH-kliens.

Az előfeltételek teljesítése után jelentkezzen be root felhasználóként a root felhasználónévvel & jelszóval SSH kliens (pl. Putty) vagy az Alibaba Cloud fiókja műszerfalán elérhető VNC konzolon keresztül.

Győződjön meg róla, hogy rendszere legalább 16 GB RAM-mal és VT támogatással rendelkező processzorral rendelkezik. Ellenőrizze a VT támogatást az alábbi parancs segítségével.

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

Kimenet: (nem lehet nulla)

 2

Kezdeti rendszerkonfigurációk

  1. Mielőtt elkezdené a csomópont előkészítését a saját virtuális felhőinfrastruktúrájának telepítéséhez, először jelentkezzen be root fiókkal, és győződjön meg arról, hogy a rendszer naprakész.

    Győződjön meg róla, hogy a gépen a CentOS 7 legújabb verziója van.

     yum -y update
  2. Ezután adja ki az ss -tulpn parancsot az összes futó szolgáltatás listázásához.
     Ss -tulpn

1

Most azonosítsa a felesleges szolgáltatásokat, állítsa le, tiltsa le és távolítsa el őket. Elsősorban a Postfix, a NetworkManager és a Firewalld. Ezek után az egyetlen szolgáltatás, ami a linux gépen futna, csak az sshd lehet.

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

A Selinux házirend végleges letiltása a linux gépen a következő parancsok végrehajtásával. Szerkessze meg az /etc/selinux/config fájlt is, és módosítsa a SELINUX-ot enforcing-ről disabled-re, ahogy az alábbi képen látható.

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

2

A következő lépésben a hostnamectl parancs segítségével állítsa be a Linux rendszer hostnevét. Az FQDN változót ennek megfelelően cserélje ki.

 # hostnamectl set-hostname cloud.centos.lan

3

Végül telepítse az ntpdate-t, hogy szinkronizálja az időt egy NTP szerverrel.

 # yum install ntpdate

Az OpenStack telepítése CentOS és RHEL

Az OpenStack az rdo repository (RPM Distribution of OpenStack) által biztosított PackStack csomag segítségével lesz telepítve a Node-ra.

Az rdo tárolók engedélyezéséhez az RHEL 7 rendszeren futtassa az alábbi parancsot.

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

A CentOS 7 rendszeren az Extras tároló tartalmazza az OpenStack tárolót aktiváló RPM-et. Az Extras már engedélyezve van, így könnyen telepíthetjük az RPM-et az OpenStack tároló beállításához:

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

Telepítsük a Packstat csomagot a linux gépünkre az alábbi paranccsal:

 # yum install openstack-packstack

A következő lépésben generáljunk egy válaszfájlt a Packstack számára az alapértelmezett konfigurációkkal, amelyet később a szükséges paraméterekkel szerkesztünk az Openstack önálló (single node) telepítéséhez.

A fájl a generáláskor az aktuális nap időbélyege (nap, hónap és év) szerint lesz elnevezve.

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

4

Most szerkessze a válaszfájlt a kedvenc szövegszerkesztőjével.

 vi 26.07.18.conf

és cserélje ki az alábbi paramétereket az alábbi értékeknek megfelelően. A biztonság kedvéért cserélje ki a jelszavak mezőit ennek megfelelően.

 CONFIG_NTP_SERVERS=0.ro.pool.ntp.org

5

 CONFIG_PROVISION_DEMO=n

6

 CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user

7

Az OpenStack dashboardhoz HTTP-n keresztül, SSL engedélyezve.

 CONFIG_HORIZON_SSL=y

8

A MySQL szerver gyökérjelszava.

 CONFIG_MARIADB_PW=mypassword1234

9

A szerkesztés befejezése után mentse és zárja be a fájlt. Nyissa meg az SSH-kiszolgáló konfigurációs fájlját is, és távolítsa el a PermitRootLogin sort az elülső hashtag eltávolításával, ahogy az alábbi képernyőképen látható.

 # vi /etc/ssh/sshd_config

10

Aztán indítsa újra az SSH szolgáltatást, hogy a változások tükröződjenek.

 # systemctl restart sshd 

Az Openstack telepítés elindítása a Packstack válaszfájl használatával

Végül indítsa el az Openstack telepítési folyamatot a fent szerkesztett válaszfájlon keresztül az alábbi parancsszintaxissal:

 # packstack --answer-file 13.04.16.conf

11

Az OpenStack komponensek telepítésének sikeres befejezése után a telepítőprogram megjelenít néhány sort az OpenStack és a Nagios helyi műszerfalainak linkjeivel és a fentiekben már konfigurált szükséges hitelesítő adatokkal, hogy mindkét panelre be lehessen jelentkezni.

12

A hitelesítő adatokat a keystonerc_admin fájlban a home könyvtár alatt is tárolja.

Ha a telepítési folyamat valamilyen okból a httpd szolgáltatással kapcsolatos hibával ér véget, nyissa meg az /etc/httpd/conf.d/ssl.conf fájlt, és győződjön meg róla, hogy a következő sort az alábbi ábrán látható módon kommentálja.

 #Listen 443 https

13

Ezután indítsa újra az Apache démont a változások alkalmazásához.

 # systemctl restart httpd.service

Megjegyzés: Ha még mindig nem tudja böngészni az Openstack webpanelt a 443-as porton, indítsa újra a telepítési folyamatot az elejétől kezdve ugyanazzal a paranccsal, amelyet a kezdeti telepítéskor kiadott.

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

Távoli hozzáférés az OpenStack Dashboardhoz

Az OpenStack webpanel távoli állomásról történő eléréséhez a LAN-on belül navigáljon a gép IP-címére vagy az FQDN/dashboardra HTTPS protokollon keresztül.

Az önaláírt tanúsítvány használata miatt, amelyet egy nem megbízható tanúsítványszolgáltató állított ki, hiba jelenik meg a böngészőben.

A hiba elfogadása után jelentkezzen be a műszerfalra az admin felhasználóval és a CONFIG_KEYSTONE_ADMIN_PW paraméterben beállított jelszóval a fent beállított válaszfájlból.

 https://192.168.1.40/dashboard

14

15

Alternatívaként, ha a Nagios komponens OpenStackhez történő telepítése mellett döntött, akkor a Nagios webpanelt a következő URI-n böngészheti, és a válaszfájlban beállított hitelesítő adatokkal jelentkezhet be.

 https://192.168.1.40/nagios

16

17

Konfiguráció

Az OpenStack olyan nyílt forráskódú projektkomponensek gyűjteménye, amelyek lehetővé teszik a felhőszolgáltatások beállítását. Mindegyik komponens hasonló konfigurációs technikákat és egy közös keretrendszert használ az INI-fájlok beállításaihoz.

Ez az útmutató a következő OpenStack komponensek több hivatkozását és konfigurációs lehetőségeit gyűjti össze:

  1. Bare Metal service
  2. Block Storage service
  3. Compute service
  4. Dashboard
  5. Datbázis service
  6. Data Processing service
  7. Identity service
  8. Image service
  9. Message. service
  10. Networking service
  11. Object Storage service
  12. Orchestration service
  13. Shared File Systems service
  14. Telemetry service

A OpenStack az INI fájlformátumot használja a konfigurációs fájlokhoz. Az INI fájl egy egyszerű szöveges fájl, amely az opciókat kulcs=érték párok formájában adja meg, szakaszokba csoportosítva. A DEFAULT szakasz tartalmazza a legtöbb konfigurációs opciót. A hash-jelekkel (#) kezdődő sorok megjegyzéssorok. Például:

 # 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

Az opcióknak különböző típusú értékei lehetnek. A minta konfigurációs fájlokban a megjegyzések mindig megemlítik ezeket, a táblázatok pedig az Opt értéket említik első elemként, például (BoolOpt) Toggle…. Az OpenStack a következő típusokat használja:

boolean value (BoolOpt)

Enables or disables an option. A megengedett értékek a true és a false.

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

libegőpontos érték (FloatOpt)

Egy lebegőpontos szám, például 0,25 vagy 1000.

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

egészértékű (IntOpt)

Az egész szám olyan szám, amely nem tartalmaz törtrészeket, például 0 vagy 42.

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

IP-cím (IPOpt)

Egy IPv4 vagy IPv6 cím.

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

kulcs-érték párok (DictOpt)

Egy kulcs-érték pár, más néven diktonár. A kulcs-érték párokat vesszővel választjuk el, a kulcs és az érték elválasztására pedig kettőspontot használunk. Példa: kulcs1:érték1,kulcs2:érték2.

 # 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

listaérték (ListOpt)

Más típusú értékeket jelöl, vesszővel elválasztva. A következő példa az allowed_rpc_exception_modules-t egy listára állítja, amely a négy elemet tartalmazza: oslo.messaging.exceptions, nova.exception, cinder.exception, és 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

multivalued (MultiStrOpt)

A multivalued opció egy string érték és többször is megadható, az összes érték felhasználásra kerül.

 # 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)

A TCP/IP port száma. A portok 1-től 65535-ig terjedhetnek.

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

string érték (StrOpt)

A stringeket opcionálisan szimpla vagy dupla idézőjelekkel lehet körülvenni.

 # 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 = " "

Sections

A beállítási lehetőségek szakaszonként vannak csoportosítva. A legtöbb konfigurációs fájl legalább a következő szakaszokat támogatja:

A legtöbb konfigurációs opciót tartalmazza. Ha egy konfigurációs opció dokumentációja nem adja meg a szakaszát, feltételezzük, hogy ebben a szakaszban szerepel.

Az OpenStack szolgáltatás állapotát tároló adatbázis konfigurációs beállításai.

Substitution

A konfigurációs fájl támogatja a változók helyettesítését. Egy konfigurációs opció beállítása után a későbbi konfigurációs értékekben hivatkozhatunk rá, ha egy $ előzi meg, például $OPTION.

A következő példa a rabbit_host és a rabbit_port értékeit használja a rabbit_hosts opció értékének meghatározásához, ebben az esetben mint 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

A helyettesítés elkerülése érdekében használja

$$, azt egyetlen $ helyettesíti. Ha például az LDAP DNS jelszava $xkj432, adja meg, a következőképpen:

 ldap_dns_password = $$xkj432

A kód a Python karakterláncot használja. Template.safe_substitute() metódust használja a változók helyettesítésének megvalósítására. További részletek a változóhelyettesítés megoldásáról.

Whitespace

A konfigurációs értékben a whitespace szerepeltetéséhez használjon idézőjeles karakterláncot. Például:

 ldap_dns_passsword='a password with spaces'

A konfigurációs fájl alternatív helyének meghatározása

A legtöbb szolgáltatás és a -manage parancssori kliensek betöltik a konfigurációs fájlt. A konfigurációs fájl alternatív helyének meghatározásához adja át a –config-file CONFIG_FILE paramétert, amikor elindít egy szolgáltatást vagy meghív egy -manage parancsot.

Következtetés

Az OpenStack telepítését Red Hat, CentOS és Fedora Linux rendszereken mutattuk be. Mostantól az Alibaba Cloud Elastic Compute Service (ECS) Alibaba Cloud Elastic Compute Service-en (ECS) könnyen létrehozhatja saját privát felhőkörnyezetét az OpenStack segítségével.

Articles

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.