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.
- Hostname = openstack.example.com
- IP-cím = 192.168.1.40
- netmask = 255.255.255.255.0
- Gateway = 192.168.1.1
- DNS = 192.168.1.254
Előfeltételek
- 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.
- El kell állítania a szerver hostnevét.
- 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
- 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
- Ezután adja ki az ss -tulpn parancsot az összes futó szolgáltatás listázásához.
Ss -tulpn
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
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
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
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
CONFIG_PROVISION_DEMO=n
CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user
Az OpenStack dashboardhoz HTTP-n keresztül, SSL engedélyezve.
CONFIG_HORIZON_SSL=y
A MySQL szerver gyökérjelszava.
CONFIG_MARIADB_PW=mypassword1234
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
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
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.
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
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
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
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:
- Bare Metal service
- Block Storage service
- Compute service
- Dashboard
- Datbázis service
- Data Processing service
- Identity service
- Image service
- Message. service
- Networking service
- Object Storage service
- Orchestration service
- Shared File Systems service
- 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.