By Ghulam Qadir, Alibaba Cloud Tech Share Author. Tech Share on Alibaba Cloudin kannustinohjelma, jolla kannustetaan teknisen tietämyksen ja parhaiden käytäntöjen jakamiseen pilviyhteisössä.
OpenStack on ilmainen ja avoimen lähdekoodin ohjelmistoalusta, joka tarjoaa IaaS:ää (infrastructure-as-a-service) julkisille ja yksityisille pilville.
OpenStack-alusta koostuu useista toisiinsa liittyvistä projekteista, jotka ohjaavat konesalin laitteisto-, tallennus- ja verkkoresursseja, kuten: Compute, Image Service, Block Storage, Identity Service, Networking, Object Storage, Telemetry, Orchestration ja Database.
Vaikka OpenStackin ydintehtävä on tarjota IaaS-alusta, sitä käytetään myös DBaaS:nä (database-as-a-service), Hadoop-klustereiden rakentamiseen, Container-orkestrointiin ja paljon muuta. Näiden komponenttien hallintaa voidaan hallita web-pohjaisen käyttöliittymän kautta tai OpenStackin komentorivin avulla.
Tässä opetusohjelmassa näytetään, miten voit ottaa käyttöön oman yksityisen pilvipalveluinfrastruktuurin, jossa OpenStack on asennettu yhteen solmuun käyttämällä rdo-repositorioita, vaikka käyttöönotto voidaan toteuttaa useammassa solmussa. Otamme palvelun käyttöön Alibaba Cloud Elastic Compute Service (ECS) -instansseissa CentOS 7:llä.
- Hostname = openstack.example.com
- IP-osoite = 192.168.1.40
- netmask = 255.255.255.0
- Gateway = 192.168.1.1
- DNS = 192.168.1.254
Edellytykset
- Sinulla on oltava Alibaba Cloud Elastic Compute Service (ECS) aktivoituna ja vahvistettuna voimassa oleva maksutapa. Jos olet uusi käyttäjä, voit saada ilmaisen tilin Alibaba Cloud -tililläsi. Jos et tiedä, miten ECS-instanssisi asetetaan, voit tutustua tähän opetusohjelmaan tai pikaoppaaseen.
- Sinun on määritettävä palvelimesi isäntänimi.
- Käyttäydy VNC-konsolissa Alibaba Cloud -palvelimessasi tai asenna SSH-asiakasohjelma tietokoneeseesi.
Kirjaudu sisään pääkäyttäjänä root-käyttäjätunnuksellasi & salasanalla SSH-asiakkaan (esim. Putty) tai Alibaba Cloud -tilisi kojelaudassa olevan VNC-konsolin kautta.
Varmista, että järjestelmässäsi on vähintään 16 Gt RAM-muistia ja VT-tuella varustettu prosessori. Tarkista VT-tuki alla olevalla komennolla.
egrep --color 'vmx|svm' /proc/cpuinfo | wc –l
Output: (ei saisi olla nolla)
2
Järjestelmän alkukonfiguraatiot
- Ennen kuin aloitat solmun valmistelun oman virtuaalipilvi-infrastruktuurin käyttöönottoa varten, kirjaudu ensin sisään root-tunnuksella ja varmista, että järjestelmä on ajan tasalla.
Varmista, että koneellasi on CentOS 7:n uusin versio.
yum -y update
- Varmista, että koneellasi on CentOS 7:n uusin versio.
yum -y update
- Seuraavaksi listaa kaikki käynnissä olevat palvelut komennolla ss -tulpn.
Ss -tulpn
Tunnista nyt tarpeettomat palvelut, pysäytä, poista pois käytöstä ja poista ne. Lähinnä Postfix, NetworkManager ja Firewalld. Tämän jälkeen ainoa palvelu, joka olisi käynnissä linux-koneellasi, olisi vain sshd.
# systemctl stop postfix firewalld NetworkManager # systemctl disable postfix firewalld NetworkManager # systemctl mask NetworkManager # yum remove postfix NetworkManager NetworkManager-libnm
Poista Selinux-käytäntö pysyvästi käytöstä linux-koneellasi suorittamalla seuraavat komennot. Muokkaa myös /etc/selinux/config-tiedostoa ja muuta SELINUX pakottavasta käytöstä käytöstä poistetuksi, kuten alla olevassa kuvassa näkyy.
# setenforce 0 # getenforce # vi /etc/selinux/config
Seuraavassa vaiheessa aseta Linux-järjestelmän isäntänimi hostnamectl-komennolla. Korvaa FQDN-muuttuja vastaavasti.
# hostnamectl set-hostname cloud.centos.lan
Viimeiseksi asenna ntpdate, jotta voit synkronoida ajan NTP-palvelimen kanssa.
# yum install ntpdate
Asenna OpenStack CentOS:iin ja RHEL:iin
OpenStack otetaan käyttöön solmupisteessäsi PackStack-paketin avulla, jonka tarjoaa rdo-repository (OpenStackin RPM-jakelu).
Voidaksesi ottaa rdo-repositoriot käyttöön RHEL 7:ssä suorita alla oleva komento.
# yum install https://www.rdoproject.org/repos/rdo-release.rpm
CentOS 7:ssä Extras-repositoriossa on RPM, joka aktivoi OpenStack-repositoriota. Extras on jo käytössä, joten voit helposti asentaa RPM:n OpenStack-tietovaraston käyttöönottoa varten:
# yum install -y centos-release-openstack-mitaka # yum update –y
Asennetaan Packstat-paketti linux-koneeseen seuraavalla komennolla:
# yum install openstack-packstack
Seuraavassa vaiheessa luodaan Packstackin vastaustiedosto oletuskonfiguraatioilla, jota muokataan myöhemmin tarvittavilla parametreilla Openstackin erillisasennuksen (yhden solmun) käyttöönottoa varten.
Tiedosto nimetään senhetkisen päivän aikaleiman mukaan, kun se luodaan (päivä, kuukausi ja vuosi).
# packstack --gen-answer-file='date +"%d.%m.%y"'.conf # ls
Muokkaa nyt vastaustiedostoa suosikkitekstieditorillasi.
vi 26.07.18.conf
Ja korvaa seuraavat parametrit alla olevien arvojen mukaisiksi. Varmuuden vuoksi korvaa salasanakentät vastaavasti.
CONFIG_NTP_SERVERS=0.ro.pool.ntp.org
CONFIG_PROVISION_DEMO=n
CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user
Käyttäydy OpenStack-kojelautaan HTTP:n kautta, kun SSL on käytössä.
CONFIG_HORIZON_SSL=y
MySQL-palvelimen pääsalasana.
CONFIG_MARIADB_PW=mypassword1234
Kun olet lopettanut muokkauksen, tallenna ja sulje tiedosto. Avaa myös SSH-palvelimen konfigurointitiedosto ja poista kommentti PermitRootLogin-riviltä poistamalla etummainen hashtag, kuten alla olevassa kuvakaappauksessa näkyy.
# vi /etc/ssh/sshd_config
Sitten käynnistä SSH-palvelu uudelleen, jotta muutokset näkyvät.
# systemctl restart sshd
Aloita Openstack-asennus Packstackin vastaustiedoston avulla
Aloita lopuksi Openstack-asennusprosessi edellä muokatun vastaustiedoston kautta suorittamalla alla oleva komentosyntaksi:
# packstack --answer-file 13.04.16.conf
Kun OpenStack-komponenttien asennus on saatu onnistuneesti päätökseen, asennusohjelma näyttää muutaman rivin OpenStackin ja Nagiosin paikallisen kojelaudan linkit ja tarvittavat, jo edellä määritetyt tunnistetiedot molempiin paneeleihin kirjautumista varten.
Tunnukset tallennetaan myös kotihakemistosi alle tiedostoon keystonerc_admin.
Jos jostain syystä asennusprosessi päättyy httpd-palvelua koskevaan virheilmoitukseen, avaa /etc/httpd/conf.d/ssl.conf-tiedoston ja varmista, että kommentoit seuraavan rivin alla olevan kuvan mukaisesti.
#Listen 443 https
Käynnistä sitten Apache daemon uudelleen muutosten soveltamiseksi.
# systemctl restart httpd.service
Huomautus: Jos et vieläkään pysty selaamaan Openstack-verkkopaneelia portissa 443, käynnistä asennusprosessi alusta samalla komennolla, joka annettiin ensimmäistä käyttöönottoa varten.
# packstack --answer-file /root/26.07.18.conf
OpenStack Dashboardin etäkäyttö
Käyttääksesi OpenStack-verkkopaneelia lähiverkon etäkäyttöasemalta navigoi HTTPS-protokollan kautta koneesi IP-osoitteeseen tai FQDN:ään/verkkopaneeliin.
Johtuen siitä, että käytät epäluotettavan varmenteiden myöntäjän myöntämää itse allekirjoitettua varmenteen, selaimessasi pitäisi näkyä virheilmoitus.
Hyväksy virhe ja kirjaudu kojelautaan käyttäjällä admin ja salasanalla, joka on asetettu CONFIG_KEYSTONE_ADMIN_PW-parametrille edellä asetetusta vastaustiedostosta.
https://192.168.1.40/dashboard
Vaihtoehtoisesti, jos päätit asentaa Nagios-komponentin OpenStackiin, voit selata Nagios-verkkopaneelia seuraavalla URI:llä ja kirjautua sisään vastaustiedostossa asetetuilla tunnuksilla.
https://192.168.1.40/nagios
Konfiguraatio
OpenStack on kokoelma avoimen lähdekoodin projektikomponentteja, jotka mahdollistavat pilvipalveluiden perustamisen. Jokainen komponentti käyttää samankaltaisia konfigurointitekniikoita ja yhteistä kehystä INI-tiedostojen asetuksille.
Tämä opas kokoaa yhteen useita viitteitä ja konfigurointivaihtoehtoja seuraavista OpenStack-komponenteista:
- Bare Metal -palvelu
- Block Storage -palvelu
- Compute -palvelu
- Dashboard
- Database -palvelu
- Data Processing -palvelu
- Identity -palvelu
- Image -palvelu
- Viestipalvelu. service
- Networking service
- Object Storage service
- Orchestration service
- Shared File Systems service
- Telemetry service
OpenStack käyttää konfigurointitiedostojen määrittelyssä INI-tiedostomuotoa. INI-tiedosto on yksinkertainen tekstitiedosto, jossa määritetään asetukset avain=arvopareina, jotka on ryhmitelty osioihin. DEFAULT-osio sisältää suurimman osan konfiguraatioasetuksista. Rivit, jotka alkavat hash-merkillä (#), ovat kommenttirivejä. Esimerkiksi:
# 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
Vaihtoehdoilla voi olla erityyppisiä arvoja. Esimerkkikonfiguraatiotiedostojen kommenteissa mainitaan aina nämä, ja taulukoissa Opt-arvo mainitaan ensimmäisenä kuten (BoolOpt) Toggle….. OpenStack käyttää seuraavia tyyppejä:
boolean value (BoolOpt)
Enables or disables an option. Sallitut arvot ovat true ja false.
# Enable the experimental use of database reconnect on # connection lost (boolean value) use_db_reconnect = false
liukulukuarvo (FloatOpt)
Luku liukuluvulla, kuten 0,25 tai 1000.
# Sleep time in seconds for polling an ongoing async task # (floating point value) task_poll_interval = 0.5
yhdyslukuarvo (IntOpt)
Yhdysluku on luku, jolla ei ole murtolukukomponentteja, kuten 0 tai 42.
# The port which the OpenStack Compute service listens on. # (integer value) compute_port = 8774
IP-osoite (IPOpt)
Ipv4- tai IPv6-osoite.
# Address to bind the server. Useful when selecting a particular network # interface. (ip address value) bind_host = 0.0.0.0
avain-arvoparit (DictOpt)
avain-arvopari, joka tunnetaan myös nimellä diktoni. Avainarvoparit erotetaan toisistaan pilkulla ja kaksoispisteellä erotetaan avain ja arvo toisistaan. Esimerkki: avain1:arvo1,avain2:arvo2.
# 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
Luetteloarvo (ListOpt)
Kuvastaa muun tyyppisiä arvoja, jotka on erotettu pilkulla. Seuraavassa asetetaan esimerkiksi allowed_rpc_exception_modules -luetteloksi, joka sisältää neljä elementtiä oslo.messaging.exceptions, nova.exception, cinder.exception ja 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
moniarvoinen (MultiStrOpt)
Moniarvoinen vaihtoehto on merkkijonoarvo ja se voidaan antaa useammin kuin kerran, kaikkia arvoja käytetään.
# Driver or drivers to handle sending notifications. (multi valued) notification_driver = nova.openstack.common.notifier.rpc_notifier notification_driver = ceilometer.compute.nova_notifier
portin arvo (PortOpt)
TCP/IP-portin numero. Portit voivat olla välillä 1-65535.
# Port to which the UDP socket is bound. (port value) # Minimum value: 1 # Maximum value: 65535 udp_port = 4952
merkkijonon arvo (StrOpt)
merkkijonot voidaan sulkea valinnaisesti yksinkertaisten tai kaksinkertaisten lainausmerkkien sisään.
# 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 = " "
Jaksot
Konfigurointivaihtoehdot ryhmitellään jaksoittain. Useimmat konfiguraatiotiedostot tukevat ainakin seuraavia osioita:
Sisältää useimmat konfiguraatioasetukset. Jos konfigurointivaihtoehdon dokumentaatiossa ei määritetä sen osiota, oletetaan sen esiintyvän tässä osiossa.
Konfigurointivaihtoehdot tietokannalle, joka tallentaa OpenStack-palvelun tilan.
Substitution
Konfigurointitiedosto tukee muuttujien korvaamista. Kun olet asettanut konfiguraatiovaihtoehdon, siihen voidaan viitata myöhemmissä konfiguraatioarvoissa, kun sitä edeltää $, kuten $OPTION.
Seuraavassa esimerkissä rabbit_host- ja rabbit_port-arvojen avulla määritetään rabbit_hosts-vaihtoehdon arvo, tässä tapauksessa kontrollerina: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
Välttääksesi substituutiota käytä
$$ korvataan yksittäisellä $:llä. Jos esimerkiksi LDAP DNS-salasanasi on $xkj432, määritä se seuraavasti:
ldap_dns_password = $$xkj432
Koodi käyttää Python-merkkijonoa. Template.safe_substitute()-metodia muuttujan korvaamisen toteuttamiseen. Lisätietoja siitä, miten muuttujien korvaaminen ratkaistaan.
Whitespace
Käytä lainausmerkkien muodostamaa merkkijonoa, jos haluat sisällyttää määritysarvoon valkoista tilaa. Esimerkiksi:
ldap_dns_passsword='a password with spaces'
Vaihtoehtoisen sijainnin määrittäminen konfigurointitiedostolle
Useimmat palvelut ja -manage-komentoriviasiakkaat lataavat konfigurointitiedoston. Jos haluat määrittää vaihtoehtoisen sijainnin konfiguraatiotiedostolle, välitä –config-file CONFIG_FILE -parametri, kun käynnistät palvelun tai kutsut -manage-komentoa.
Johtopäätökset
Esittelimme OpenStackin asennusta Red Hat-, CentOS- ja Fedora Linux -käyttöjärjestelmiin. Nyt voit perustaa oman yksityisen pilviympäristösi Alibaba Cloud Elastic Compute Service (ECS) -palveluun helposti OpenStackin avulla.