Dette vil være en full tutorial på å installere OpenStack (minimal config). Jeg vil gjerne prøve open source cloud OS, Og OpenStack er en av de seriøse løsningene som brukes av mange institusjoner og bedrifter. Cern er en blant brukerne, Og Red Hat er sterk tilhenger Av OpenStack.
Vær oppmerksom på: selv etter denne» strykes ut » opplæringen, vil du bli møtt med feil etter at du har satt alt opp, og du må undersøke mer for Å få OpenStack til å fungere ok. Jeg vil skrive om noen av problemene i noen flere raske guider.OpenStack har også rykte for å være komplisert å installere og vedlikeholde og ikke veldig stabil. Jeg leste mye På OpenStack-emnet, gikk gjennom mye dokumentasjon, og dette er resultatet. Dette vil dekke manuell installasjon Av Togutgivelse, og denne omfattende serien vil dekke alle komponenter I Minimal OpenStack-installasjon (ikke la denne minimale lure deg, det er mye å gjøre).
Det er noen forskjeller Mellom OpenStack offisiell dokumentasjon og distribusjon selv, så denne opplæringen skal også hjelpe deg med å spare utallige timer med å lete etter feil og dechiffrere feil gjennom veien.Prosedyren er kjedelig, men jeg vil anbefale det, siden på slutten av det vil du ha en god forståelse Av De grunnleggende prinsippene I OpenStack.
Mer om emnet neste gang, la oss komme på jobb.
det er en læringskurve, og fra det jeg leser tror Jeg At OpenStack for øyeblikket er en stabil løsning for dine skybehov.
Men vi får se underveis, kan dykke inn.
Forutsetninger
Jeg skal bruke CentOS 7 for mine installasjoner (v. 1908). JEG skal lage MIN LAB i VMware Fusion / Workstation. CentOS første installasjonen er minimal UTEN GUI eller tillegg.Alle Mine Vm-Er vil ha 4CPU-kjerner OG 8 GB RAM med minimum 120 GB harddisk.Du kan finne minimumskrav her- https://docs.openstack.org/install-guide/overview.html
Legg merke til tilleggskrav fra nettverks-og stasjonskomponenter og legg til TILSVARENDE I LABORATORIET ditt.
LABORATORIET mitt har internett-tilgang.
Jeg vil følge openstack dokumentasjon underveis – https://docs.openstack.org/install-guide/common/conventions.html
jeg vil installere Train build, som er den nåværende. Jeg vil starte Med Controller Node 1 Og Beregne Node 1.
Leverandørnettverk vil være som følger (du trenger internett – tilgang for denne konfigurasjonen):
10.0.0.1/24 – gateway
10.0.0.11/24 – Controller Node 1
10.0.0.31/24 – Compute Node 1
10.0.0.41/24-Block Storage Node 1
10.0.0.51/24-Objektlagringsnode 1
10.0.0.52 / 24-Objektlagringsnode 2
jeg vil også senere opprette nettverk i rekkevidde 203.0.113.0 / 24, som vil være administrasjonsnettverk.
her er også navnene OG IP-adressene til maskinene (du trenger dem også i vertsfilen):
10.0.0.11 controller
10.0.0.31 compute1
10.0.0.41 block1
10.0.0.51 object1
10.0.0.52 object2
for hver maskin i laboratoriet endre vertsnavn. Jeg vil endre vertsnavnene mine til navnene jeg angav like over dette.
Kommandoen er under, kontrolleren er navnet på en av maskinene, endre den til det du ser hensiktsmessig.
sudo hostnamectl set-hostname controller
her er hva endringen ser etter omstart.
jeg kalte mine maskiner – controller, compute1, block1, object1, object2.
Rediger nettverksgrensesnittet ditt i /etc/sysconfig/nettverksskript
i mitt tilfelle har jeg grensesnitt ifcfg-ens33
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
jeg redigerte følgende linjer (eksempel på kontrollermaskin):
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
slik ser Det Ut
start maskinen på nytt etter at du har angitt ip-konfigurasjon. Gjenta disse trinnene for alle maskiner i laboratoriet (selvfølgelig angi forskjellige IP-adresser for hver).
Oppdater CentOS installasjon
før Vi går videre, vil vi oppdatere Våre CentOS installasjoner. På denne måten vil vi også bekrefte vår internett-tilkobling.
sudo yum update -y
Rediger Vertsfil
Igjen må vi gjøre det på hver maskin. Vi vil redigere hosts-filen, slik at maskiner kan se hverandre ved navn.
sudo vi /etc/hosts/
dette er hva vi trenger for å skrive inn
10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2
hvis vi gjorde alt ok, bør Vi Nå kunne pinge fra kontroller til compute1 og omvendt med navnet. (Pass på at pingen din er tilgjengelig via brannmur)
fungerer.Skriv inn disse verdiene i hver hosts-fil på hver maskin, og sørg for at du kan pinge hver maskin, og test fra hver maskin.
Oppsett NTP-tjeneste
Presis tidsmåling er viktig, så vi vil sette tidsserver og knytte klienter til den. Tidsserver vil være vår controller server og klient alle de andre maskinene.
NTP server setup
Vi vil gjøre Dette på vår controller server.
sudo yum install chrony -y
Aktiver og start tjenesten ved å kjøre
sudo systemctl start chronydsudo systemctl enable chronyd
du kan også sjekke status på tjenesten ved å kjøre
systemctl status chronyd
neste vil vi redigere/etc / chrony.conf fil
sudo vi /etc/chrony.conf
for denne opplæringen vil jeg forlate standard centos NTP-servere. Ellers hvis du ønsker å redigere NTP-servere, kan du, ved å legge kommandoen nedenfor (Erstatt NTP_SERVER MED NTP server navn)
server NTP_SERVER iburst
Også vi må aktivere tilgang for VÅRE NTP-klienter fra lokalt nettverk ved uncommenting og redigering følgende linje
allow 10.0.0.0/24
Her er min config. Grønn del er hvor du kommer inn I NTP-servere, og rød del er aktivert tilgang fra vårt lokale nettverk for tidssynkronisering.
Start server eller chrony-tjeneste På nytt ved å skrive inn
sudo systemctl restart chronyd
vi vil sjekke om serveren vår synkroniserer tid ved å skrive inn
chronyc sources
tjenesten fungerer for meg.
VI vil også aktivere det gjennom brannmur
sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload
NTP clients setup
disse trinnene må gjøres på resten av maskinene.
Igjen må vi installere chrony
sudo yum install chrony
Aktiver OG start NTP-tjeneste
sudo systemctl start chronydsudo systemctl enable chronyd
etter det må vi igjen redigere/etc / chrony.conf
sudo vi /etc/chrony.conf
du må slette alle coment ut ALLE NTP-servere og skriv følgende
server controller iburst
La alt som er, og lukk filen. Slik ser min ut.
IGJEN, start NTP-tjenesten PÅ NYTT
sudo systemctl restart chronyd
og la oss sjekke om DET fungerer
chronyc sources
det fungerer, klienten kommuniserer med ntp-server.
OG PÅ NTP server hvis vi skriver inn kommandoen
chronyc clients
vi vil se at compute1 ER NTP klient
gjenta trinnet på resten av maskinene.
OpenStack-Pakker
disse trinnene må gjøres på alle noder. Hvis Du ikke har oppdatert CentOS installasjon, og også deaktivere EPEL Repo.
!!!///Bare FOR RED HAT INSTALLASJONER, CENTOS HOPPE OVER dette
subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms
neste kommando vi vil kjøre er
sudo yum upgrade
start på nytt etter det, og velg ny kjerne for å aktivere den.
neste kommando vil være
sudo yum install python-openstackclient
Og til slutt må vi integrere Vår OpenStack installere I SELinux
sudo yum install openstack-selinux
SQL Database
Databasen vil bli installert på kontrolleren node.Vi vil installere MariaDB.
sudo yum install mariadb mariadb-server python2-PyMySQL
etter at installasjonen er ferdig, må vi redigere en openstack.conf ligger i / etc / min.cnf.D
sudo vi /etc/my.cnf.d/openstack.conf
vi vil opprette mysqld seksjon med følgende info (pass på at bind-adresse er adressen til kontrolleren)
bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8
her er hvordan det ser ut i mitt tilfelle
aktiver og start mariadb
sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service
vi Vil Også Legge til brannmur unntak
sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload
endelig vil vi sikre vår installasjon og sette passord for root sql bruker
sudo mysql_secure_installation
meldingskø
openstack bruker meldingskø til koordinere operasjoner og status mellom tjenester. Det kjører vanligvis på kontrolleren, så vi installerer den på kontrolleren. Vi vil installere RabbitMQ
Installasjon
sudo yum install rabbitmq-server
Start og aktiver tjenesten
sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service
Legg openstack bruker til det. Erstatt RABBIT_PASS med passordet ditt.
sudo rabbitmqctl add_user openstack RABBIT_PASS
Angi tillatelser
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
dette er brannmurinnstillinger for 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
valgfri selinux-kommando
setsebool -P nis_enabled 1
memcached
autentiseringsmekanismen for identitetstjeneste for tjenester bruker memcached til å cache tokens. Memcached-tjenesten kjører vanligvis på controller node, så jeg vil installere den på controller node.
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.org-OpenStack-tjenester kan bruke Etcd, en distribuert pålitelig nøkkelverdilager for distribuert nøkkellåsing, lagring av konfigurasjon, holde oversikt over tjenesten live-ness og andre scenarier.
Etcd skal installeres på kontrolleren node.
Installasjon
sudo yum install etcd
neste vil vi redigere / etc / etcd / etcd.conf
sudo vi /etc/etcd/etcd.conf
du bør redigere fil som dette og endre verdiene nedenfor for å matche kontrolleren IP ELLER navn.
#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"
dette er hvordan filen min ser ut
Aktiver og start service
sudo systemctl enable etcdsudo systemctl start etcd
ekstra brannmurinnstillinger
sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload
så, vi er mer eller mindre «ferdig» med initiall del, vil vi nå gjøre minimal distribusjon for tog.
Minimal Distribusjon For Tog
Ok, så vi var vellykkede så langt. Vi vil nå gjøre minimal tjenesteutplassering for Tog. Flere detaljer finner du her – https://docs.openstack.org/install-guide/openstack-services.html
Tjenester må installeres i angitt rekkefølge, som vist nedenfor
siden denne opplæringen går litt lenge allerede, jeg skal fullføre den her, og dekke hver av tjenestene ovenfor i egen opplæring.
Viktig er å gjøre alle tjenestene i nøyaktig rekkefølge som de er under.
Her er linkene
- Identity service – keystone installasjon for Tog
2. Image service-blikk installasjon For Tog
3. Plasseringstjeneste-plasseringsinstallasjon for Tog
4. Compute service-nova installasjon for Tog
5. Nettverkstjeneste-nøytroninstallasjon for Tog
vi anbefaler at du også installerer følgende komponenter etter at du har installert minimal distribusjonstjenester:
6. Dashbord-horizon installasjon for Tog
7. Blokk Lagringstjeneste-slagg installasjon For Tog
8. Object Storage service – swift installation for Train
Additional links for after installation for errors you may encounter:
Disclaimer