Dit zal een volledige tutorial zijn over het installeren van OpenStack (minimale configuratie). Ik zou heel graag open-source cloud OS proberen, en OpenStack is een van de serieuze oplossingen, gebruikt door veel instellingen en bedrijven. Cern is een van de gebruikers, en Red Hat is sterk voorstander van OpenStack.
Let op: zelfs na deze “gladgestreken” tutorial, zult u worden begroet met fouten nadat u alles hebt ingesteld, en u zult meer onderzoek moeten doen om uw OpenStack goed te laten werken. Ik zal schrijven over een aantal van de problemen in een paar meer snelle gidsen.
OpenStack heeft ook de reputatie ingewikkeld te installeren en te onderhouden te zijn en niet erg stabiel. Ik heb veel gelezen over het OpenStack onderwerp, heb veel documentatie doorlopen en dit is het resultaat. Dit zal betrekking hebben op de handmatige installatie van de trein release, en deze uitgebreide serie zal betrekking hebben op elk onderdeel van minimale OpenStack installeren (laat deze minimale gek je, er is genoeg te doen).
Er zijn een paar verschillen tussen OpenStack officiële documentatie en deployment zelf, dus deze tutorial moet je ook helpen om talloze uren te besparen op het zoeken naar fouten en het ontcijferen van fouten door de weg.
Procedure is vervelend, maar ik zou het ten zeerste aanbevelen, omdat u aan het einde ervan een goed begrip zult hebben van de basisprincipes van OpenStack.
meer over het onderwerp volgende keer, laten we aan de slag gaan.
er is een leercurve, en uit wat ik lees geloof ik dat OpenStack op dit moment een stabiele oplossing is voor uw cloud behoeften.
maar, we zullen zien langs de weg, laten we duiken in.
Prerequisites
Ik zal CentOS 7 gebruiken voor mijn installaties (V. 1908). Ik zal het creëren van mijn LAB in VMware Fusion/Workstation. CentOS initiële installatie is minimaal zonder GUI of enige toevoegingen.
al mijn VM ‘ s hebben 4cpu cores en 8 GB RAM met minimaal 120GB harde schijf.U kunt hier minimale vereisten vinden – https://docs.openstack.org/install-guide/overview.html
let op over aanvullende vereisten van netwerk-en drive-componenten en voeg dienovereenkomstig toe aan uw LAB.
mijn LAB heeft internettoegang.
Ik zal onderweg OpenStack documentatie volgen – https://docs.openstack.org/install-guide/common/conventions.html
Ik zal Train build installeren, de huidige. Ik zal beginnen met Controller Node 1 en berekenen Node 1.
Provider netwerk zal als volgt zijn (u hebt internettoegang nodig voor deze configuratie):
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-Object Storage Node 1
10.0.0.52 / 24-Object Storage Node 2
Ik zal later ook een netwerk aanmaken in het bereik 203.0.113.0 / 24, dat zal beheernetwerk zijn.
Hier zijn ook de namen en IP-adressen van de machines (u hebt ze ook nodig in het hosts-bestand):
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
Wijzig Machine hostnaam
voor elke machine in het lab hostnaam wijzigen. Ik zal mijn hostnamen veranderen in de namen die ik net hierboven heb opgegeven.
Commando is hieronder, controller is de naam van een van de machines, verander het naar wat je nodig vindt.
sudo hostnamectl set-hostname controller
Hier ziet u hoe de verandering eruit ziet na het opnieuw opstarten.
I named my machines – controller, compute1, block1, object1, object2.
het Configureren van Naam Resolutie
het Bewerken van uw netwerk interface gelegen in het /etc/sysconfig/network-scripts
In mijn geval, ik heb interface ifcfg-ens33
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
ik bewerkt volgende regels (controller machine voorbeeld):
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
Hier is hoe het eruit ziet
Herstart de machine nadat u de ip-configuratie. Herhaal deze stappen voor alle machines in het lab (stel natuurlijk voor elk een ander IP-adres in).
Update CentOS installatie
voordat we verder gaan, zullen we onze CentOS installaties updaten. Op deze manier bevestigen we ook onze internetverbinding.
sudo yum update -y
Edit Hosts file
opnieuw moeten we dat op elke machine doen. We zullen hosts-bestand bewerken, zodat machines elkaar bij de naam kunnen zien.
sudo vi /etc/hosts/
Dit is wat we moeten invoeren
10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2
Hier is hoe mijn bestand eruit ziet
als we alles goed hebben gedaan, zouden we nu in staat moeten zijn om van controller naar Computer1 te pingen en vice versa met de naam. (Zorg ervoor dat uw ping beschikbaar is via firewall)
werkt.Voer deze waarden in in elk hosts-bestand op elke machine en zorg ervoor dat je elke machine kunt pingen en testen vanaf elke machine.
Setup NTP service
nauwkeurige tijdmeting is belangrijk, dus we zullen tijdserver instellen en clients eraan koppelen. Time server zal onze controller server en client alle andere machines.
NTP server setup
We zullen dit doen op onze controller server.
sudo yum install chrony -y
dienst inschakelen en starten door
sudo systemctl start chronydsudo systemctl enable chronyd
u kunt ook de status van de dienst controleren door
systemctl status chronyd
te draaien.conf file
sudo vi /etc/chrony.conf
voor deze tutorial verlaat ik de standaard CentOS NTP servers. Als u anders NTP-servers wilt bewerken, kunt u, door onderstaande opdracht toe te voegen (vervang NTP_SERVER door NTP-servernaam)
server NTP_SERVER iburst
ook moeten we toegang voor onze NTP-clients vanuit het lokale netwerk mogelijk maken door commentaar te verwijderen en de volgende regel te bewerken
allow 10.0.0.0/24
Hier is mijn configuratie. Het groene deel is waar u uw NTP-servers invoert, en het rode deel is ingeschakeld toegang vanuit ons lokale netwerk voor tijdssynchronisatie.
Server of chrony-service herstarten door
sudo systemctl restart chronyd
We zullen controleren of onze server synchronisatietijd heeft door
service werkt voor mij.
We zullen het ook inschakelen via firewall
sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload
NTP clients setup
deze stappen moeten op de rest van de machines worden uitgevoerd.
opnieuw moeten we chrony
sudo yum install chrony
inschakelen en NTP-service starten
sudo systemctl start chronydsudo systemctl enable chronyd
daarna moeten we opnieuw /etc/chrony bewerken.conf
sudo vi /etc/chrony.conf
u moet alle coment verwijderen uit alle NTP-servers en het volgende invoeren
server controller iburst
laat alles zoals het is, en sluit het bestand. Zo ziet de mijne eruit.
Nogmaals, opnieuw NTP-service
sudo systemctl restart chronyd
En laat controleren of het werkt
chronyc sources
Het werkt, client communiceert met de NTP-server.
en, op NTP-server als we Commando
chronyc clients
invoeren, zullen we zien dat compute1 NTP-client
herhaal de stap op de de rest van de machines.
OpenStack pakketten
deze stappen moeten op alle knooppunten worden uitgevoerd. Als u uw CentOS-installatie niet hebt bijgewerkt, en ook EPEL Repo uitschakelen.
!!!//ALLEEN RED HAT INSTALLEERT, CENTOS OVERSLAAN
subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms
Voer de volgende opdracht uit (we zijn het installeren van het Trein-release)
sudo yum install centos-release-openstack-train
Volgende opdracht zullen wij, is
sudo yum upgrade
Herstart na, en selecteer de nieuwe kernel te activeren.
het volgende commando zal
sudo yum install python-openstackclient
zijn en eindelijk moeten we onze OpenStack installatie integreren in SELinux
sudo yum install openstack-selinux
SQL Database
Database zal geïnstalleerd worden op controller node.We zullen MariaDB installeren.
sudo yum install mariadb mariadb-server python2-PyMySQL
nadat de installatie is voltooid, moeten we een openstack bewerken.conf bevindt zich in /etc/my.cnf.d
sudo vi /etc/my.cnf.d/openstack.conf
We maken mysqld sectie met de volgende info (zorg ervoor dat bind-adres is het adres van de controller)
bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8
Hier is hoe het eruit ziet in mijn geval
Inschakelen en beginnen met MariaDB
sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service
We zullen ook nog firewall-uitzondering
sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload
tot slot zullen we veilig onze installatie en instellen van het wachtwoord voor het root sql user
sudo mysql_secure_installation
Message Queue
OpenStack gebruikt berichtenwachtrij coördineer operaties en status tussen diensten. Het draait meestal op controller, dus we zullen het installeren op controller. We zullen RabbitMQ
installatie
sudo yum install rabbitmq-server
start en activeer service
sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service
voeg openstack gebruiker toe. Vervang RABBIT_PASS met uw wachtwoord.
sudo rabbitmqctl add_user openstack RABBIT_PASS
machtigingen Instellen
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Dit zijn de instellingen van de firewall voor 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
Optioneel SELinux commando
setsebool -P nis_enabled 1
Memcached
De Identiteit service authenticatie mechanisme voor diensten maakt gebruik van Memcached cache-tokens. De memcached service draait meestal op de controller node, dus Ik zal het installeren op 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 services kunnen gebruik maken van Etcd, een gedistribueerde betrouwbare sleutelwaardeopslag voor gedistribueerde sleutelvergrendeling, opslagconfiguratie, het bijhouden van Service live-ness en andere scenario ‘ s.
Etcd moet geïnstalleerd worden op controller node.
installatie
sudo yum install etcd
hierna zullen we /etc/etcd/etcd bewerken.conf
sudo vi /etc/etcd/etcd.conf
u dient het bestand als volgt te bewerken en de waarden hieronder aan te passen aan uw controller IP of naam.
#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"
Dit is hoe mijn bestand eruit ziet
dienst inschakelen en starten
sudo systemctl enable etcdsudo systemctl start etcd
extra firewall instellingen
sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload
dus, we zijn min of meer “klaar” met het eerste deel, we zullen nu minimale implementatie voor Train doen.
minimale inzet voor trein
Ok, dus we waren tot nu toe succesvol. We zullen nu doen minimale service inzet voor trein. Meer details zijn hier te vinden – https://docs.openstack.org/install-guide/openstack-services.html
diensten moeten in een bepaalde volgorde worden geïnstalleerd, zoals hieronder weergegeven
aangezien deze tutorial al een beetje lang duurt, ga ik om het hier af te maken en elk van de bovenstaande diensten in een aparte tutorial te behandelen.
belangrijk is om alle services in de exacte volgorde te doen zoals hieronder.
Hier zijn de links
- Identity service-keystone installatie voor trein
2. Image service-glance installatie voor trein
3. Plaatsingsdienst-plaatsingsinstallatie voor trein
4. Compute service-nova-installatie voor trein
5. Netwerkservice-neutron installatie voor trein
We adviseren om ook de volgende componenten te installeren nadat u de minimal deployment services hebt geïnstalleerd:
6. Dashboard-horizon installatie voor trein
7. Blokopslagdienst – cinderinstallatie voor trein
8. Object Storage service – swift installation for Train
Additional links for after installation for errors you may encounter:
Disclaimer