GNU/Linux >> Znalost Linux >  >> Cent OS

Jednoduchý průvodce instalací OpenStack Icehouse na CentOS – architektura se dvěma uzly

Slovo „OpenStack“ je v dnešní době docela populární. Možná jste toto slovo slyšeli, i když nepracujete v oblasti cloud computingu. Pracuji v doméně Grid computingu posledních 10 let a nikdy jsem nepochopil povyk za OpenStackem. Ale toto buzz slovo mi neustále klepalo na uši, ať jsem kdekoli – vážně, v mé kanceláři, na konferencích a oblíbených webech, které neustále propagovaly OpenStack. Nakonec jsem byl (Ano, násilně svým šéfem) do světa OpenStacku a tyto velké otázky si vybraly svou daň – Co je Openstack, jak se implementuje a jak funguje? Jediný způsob, jak pochopit OpenStack, je začít instalací.

Na první pohled se zdálo, že začít s OpenStack je snadné, ale není. Ano, oficiální stránka OpenStacku má dobrou dokumentaci, ale skutečný problém, se kterým jsem se potýkal, byla použitá terminologie – Horizon, Glance, Keystone, Nova, Neutron, Swift, Heat, Cinder, Ceilometer….Uff, proč sakra jsou takhle pojmenované? A pak s instalací bylo spojeno několik dalších pojmů – RDO, Packstack, Devstack, různé architektury (jeden uzel, dva uzel a víceuzlů), starší sítě atd... Vážně, musel jsem běžet zpátky do Googlu, abych všem těm porozuměl (a tento člověk odvedl skvělou práci). Pokud mě požádáte, abych napsal o své zkušenosti s OpenStackem, bude mít tento článek 20 stránek. Tady se zastavím a přejdu k tématu.

Obsah

  • Úvod do OpenStack
  • Architektura testovacího prostředí
  • Nainstalujte a nakonfigurujte NTP na řadiči i výpočetním uzlu
  • Nainstalujte a nakonfigurujte MySQL na řadiči i výpočetním uzlu
  • Nainstalujte a nakonfigurujte Apache Qpid na řadiči i výpočetním uzlu
  • Nainstalujte základní balíčky OpenStack Icehouse na Controller and Compute node
  • Nainstalujte KeyStone na Controller Node
  • Nainstalujte Glance na Controller Node
  • Nainstalujte Novu na Controller Node
  • Nainstalujte Nova-Networking na uzel Controller
  • Nainstalujte řídicí panel do uzlu řadiče
  • Nainstalujte Novu na Compute Node
  • Nainstalujte Nova-Networking na Compute Node
  • Vytvořte instanci
  • Přihlaste se k instanci

Co je OpenStack?

OpenStack je open source platforma cloud computingu, která poskytuje infrastrukturu jako službu (IaaS). Pokud jste expert na gridové výpočty, pak OpenStack je něco podobného populárnímu gridovému middlewaru, jako je Globus Toolkit, Glite, Oracle Grid Engine, Unicore atd… OpenStack je v podstatě middleware, který vám umožňuje spravovat zdroje cloud computingu efektivněji a samozřejmě. , efektivně.

Služby OpenStack

  • Horizont :Služba řídicího panelu, která poskytuje webový portál pro interakci a správu základních služeb, virtuálních instancí, uživatelů a sítě.
  • Nova :Výpočetní služba, která pomáhá při správě výpočetních instancí – což zahrnuje vytváření, plánování, spouštění a ukončování virtuálního počítače.
  • Keystone :Služba identity, která poskytuje ověřování a autorizaci.
  • Neutron :Síťová služba, která vám umožňuje vytvářet a spravovat síť.
  • Pohled :Obrazová služba, která pomáhá ukládat a načítat obrazy virtuálních strojů.
  • Databáze služba :Poskytuje databázi jako službu.
  • Swift and Cinder :Poskytuje úložiště jako službu.
  • Telemetrie :Služba, která vám pomáhá spravovat fakturaci a srovnávání.
  • Existuje spousta dalších služeb...více si přečtěte na openstack.org.

Architektura

Pokud jste začátečník, ideální způsob je začít s architekturou se dvěma uzly – jeden uzel se nazývá „Controller“ a druhý jako „Compute“. V tomto tutoriálu nainstalujeme verzi OpenStack Icehouse na operační systém CentOS 6.6. Služby, které mají být nainstalovány na řídicím uzlu, jsou Keystone, Glance, Nova, Networking (starší nova-networking), Horizon a výpočetní uzel bude mít Nova a Networking (starší nova-networking).

Poznámka: OpenStack začátečník? Doporučuje se začít se staršími sítěmi Nova. V této fázi je velkým problémem pochopení a konfigurace „Neutronu“. V pozdější fázi byste však měli zvážit migraci ze starších sítí na Neutron.

Níže je diagram, který znázorňuje můj testbed. Všechny mé instalační kroky jsou založeny na níže uvedené architektuře.

Poznámka: Protože budeme používat Legacy Nova-network, potřebujeme pouze jedno rozhraní v uzlu řadiče pro účely správy a dvě rozhraní na výpočetním uzlu (jedno pro správu, která spadá do stejné sítě uzlu řadiče, a druhé rozhraní je pro externí, což bude použit pro komunikaci VM).

Dobře, můžeme pokračovat v instalačních krocích.

Jak nainstalovat a nakonfigurovat OpenStack Icehouse na CentOS?

Použiji,

  • název hostitele-kontroléru ‘ jako název hostitele uzlu Controller a „compute-hostname ” jako název hostitele Compute node.
  • „10.180.10.132“ (IP správy) pro uzel ovladače a „10.180.10.134“ (IP správy) pro výpočetní uzel. Externí IP výpočetního uzlu bude „10.180.14.151“

Poznámka: Nezapomeňte je nahradit odpovídajícími FQDN nebo IP adresami.

  • Během instalace kdekoli najdete „setpassword ‘, nahraďte jej odpovídajícím servisním heslem.
  • Po většinu instalace budu používat „YUM“. Ujistěte se tedy, že jsou stroje připojeny k internetu. V případě, že máte problém s konfigurací yum, velmi vám pomohou níže uvedené příručky.
    • Jak nakonfigurovat úložiště Yum v systému CentOS
    • Příkazy Yum, které musíte znát.
  • Výstup několika příkazů byl zkrácen, aby se předešlo nejasnostem a zkrátila se délka tohoto výukového programu.

Instalace jakékoli součásti (nebo služby) v OpenStack zahrnuje následující kroky:



Instalace a konfigurace NTP na řadiči i výpočetním uzlu

Můžete rychle přejít k tomu, abyste se naučili, jak nainstalovat a nakonfigurovat Network Time Protocol na vašem řadiči a výpočetních uzlech.

Nakonfigurováno NTP a spuštěna služba ntpd? Pak zpět k tomuto článku…

Aktualizujte operační systém na řadiči i výpočetním uzlu

Před instalací jakékoli součásti se vždy doporučuje upgradovat operační systém. Vyřeší to spoustu problémů se závislostí na balíčcích.

[root@controller-hostname]# yum update[root@compute-hostname # yum update


Nainstalujte databázi MySQL na uzel Controller i Compute

Poznámka: MySQL se nyní nazývá „Mariadb“.

[root@controller-hostname ]# yum install mysql mysql-server MySQL-python[root@compute-hostname ]# yum install mysql mysql-server MySQL-python

Budete se muset podívat na „/etc/my.cnf ‘, abychom zajistili, že se služba MySQL naváže na IP adresu správy jak řadiče, tak výpočetních uzlů.

Na uzlu Controller :

[root@controller-hostname]# vi /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlbind-address=10.180. 10 132 symbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

Ve výpočetním uzlu :

[root@compute-hostname]# vi /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlbind-address=10.180. 10 134 symbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

Spusťte server mysql:

[root@controller-hostname ~Začátek # služby mysqld[root@compute-hostname ~Začátek # služby mysqld

Nastavit MySQL…

[root@controller-hostname ~]# mysql_install_db[root@compute-hostname ~]# mysql_install_db

Vždy se doporučuje spustit ‘mysql_secure_installation ‘ po instalaci MySQL.

[root@controller-hostname ~]# mysql_secure_installation[root@compute-hostname ~]# mysql_secure_installation

Pokud si nejste jisti, co mysql_secure_installation dělá, zde je rychlý průvodce, který to podrobně vysvětluje.

Nainstalujte základní balíčky OpenStack Icehouse na Controller i Compute uzel

Nastavte úložiště yum a nainstalujte základní balíčky Icehouse. Tento krok je nutné provést na řadiči i na výpočetních uzlech.

Na uzlu ovladače:

[root@controller-hostname ~]# instalace yum yum-plugin-priorities[root@controller-hostname ~]# instalace yum http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo- release-icehouse-4.noarch.rpm[root@controller-hostname ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse[root@controller-hostname ~]# yum -y install http://fedora.cu.be/epel/7/x86_64/e/epel-release-7-2.noarch.rpm[root@controller-hostname ~]# yum install openstack-utils openstack-selinux 

V uzlu Compute:

[root@compute-hostname ~]# instalace yum yum-plugin-priorities[root@compute-hostname ~]# instalace yum http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo- release-icehouse-4.noarch.rpm[root@compute-hostname ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse[root@compute-hostname ~]# yum -y install http://fedora.cu.be/epel/7/x86_64/e/epel-release-7-2.noarch.rpm[root@compute-hostname ~]# yum install openstack-utils openstack-selinux 


Nainstalujte službu Message Broker Service na uzel řadiče

Služby OpenStack potřebují ke své komunikaci zprostředkovatele zpráv. V současné době podporuje OpenStack – Rabbit-mq a Apache Qpid. V tomto tutoriálu nainstalujeme server Qpid.

Apache Qpid umožňuje službám odesílat a přijímat zprávy přes AMQP (Advanced Message Queuing Protocol).

[root@controller-hostname ~]# yum install qpid-cpp-server

Nakonfigurujte qpid-cpp-server fungovat bez nutnosti autentizace (To nám usnadní proces instalace. Měli byste ale povolit ověřování z bezpečnostních důvodů)

[root@controller-hostname ~]# echo "auth=no">/etc/qpid/qpidd.conf

Spusťte zprostředkovatele zpráv…

[root@controller-hostname ~]# služba qpidd start

Instalace a konfigurace Keystone (Identity Service) v uzlu Controller

Jak jsem řekl dříve, služba Keystone hraje hlavní roli v OpenStack – poskytuje ověřování a autorizaci. Znamená to také, že každá služba OpenStack (včetně služby identity) musí být registrována u KeyStone.

Instalovat balíčky keystone…

[root@controller-hostname ~]# yum nainstalovat openstack-keystone python-keystoneclient

Vytvořte databázi pro keystone , aby služba mohla ukládat svůj stav a data…

[root@controller-hostname ~]# mysql -u root -pmysql> VYTVOŘIT DATABÁZI keystone;mysql> UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA keystone.* TOMU 'keystone'@'controller-hostname' IDENTIFIKOVÁNO PODLE 'setpassword';mysql> UDĚLEJTE VŠECHNA PRÁVA NA keystone.* TOMU 'keystone'@'%' IDENTIFIKOVANÉ PODLE 'setpassword ';

Poznámka: Nezapomeňte nahradit „setpassword“ svým vlastním heslem pro keystone.

Vytvořte tabulky pro keystone databáze…

[root@controller-hostname ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

Nyní řekněte keystone, že toto je to, co byste měli použít k vytvoření připojení k databázi

[root@controller-hostname ~]# openstack-config --set /etc/keystone/keystone.conf připojení k databázi mysql://keystone:setpassword@controller-hostname/keystone

Poznámka: Nezapomeňte nahradit „setpassword“ vhodným heslem „keystone“@mysql

Vytvořte ověřovací token pro ověření dalších služeb pomocí keystone. K tomu použijeme openssl k vygenerování náhodné HEX hodnoty a uložíme ji do proměnné s názvem „ADMIN_TOKEN

[root@controller-hostname ~]# ADMIN_TOKEN=$(openssl rand -hex 10)[root@controller-hostname ~]# echo $ADMIN_TOKENe9393f7ac1886f0c1a20

Poznámka: Vytvořte si kopii vygenerovaného tokenu, jak budete později potřebovat (není vyžadováno, pokud se nechystáte ukončit relaci terminálu uprostřed)

Nakonfigurujte keystone pro použití ověřovacího tokenu vygenerované v předchozím kroku…

[root@controller-hostname ~]# openstack-config --set /etc/keystone/keystone.conf VÝCHOZÍ admin_token $ADMIN_TOKEN

Nakonfigurujte keystone tak, aby poskytoval ověřovací tokeny založené na PKI...

[root@controller-hostname ~]# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

Nastavit vlastnictví a oprávnění pro uživatele „keystone“…

[root@controller-hostname ~]# chown -R keystone:keystone /etc/keystone/ssl[root@controller-hostname ~]# chmod -R o-rwx /etc/keystone/ssl

Vše hotovo pro keystone, spusťte službu…

[root@controller-hostname ~]# služba openstack-keystone start

Ujistěte se, že služba skutečně běží kontrolou jejího stavu

[root@controller-hostname ~]# služba openstack-keystone statuskeystone (pid 10245) běží...

V případě, že je služba po spuštění mrtvá, měli byste problém vyřešit v tomto okamžiku.

Nastavte službu tak, aby se automaticky spouštěla ​​během spouštění systému…

[root@controller-hostname ~]# chkconfig openstack-keystone on

Automaticky vymazat tokeny klíčového kamene, jejichž platnost vypršela…

Během provozu může být v klíčovém kameni mnoho tokenů, jejichž platnost vypršela, čímž se zvětší velikost databáze klíčových kamenů. Je dobré je v pravidelných intervalech mazat. Chcete-li to provést, nastavíme úlohy cron, jak je uvedeno níže:

[root@controller-hostname ~]# echo '@hourly /usr/bin/keystone-manage token_flush>/var/log/keystone/keystone-tokenflush.log 2&>&1'>> /var/spool/cron /keystone[root@controller-hostname ~]# crontab -l -u keystone@hourly /usr/bin/keystone-manage token_flush> /var/log/keystone/keystone-tokenflush.log 2&>&1

Vytváření uživatelů, tenanta a rolí pro keystone

Před provedením příkazů keystone byste měli nastavit určité proměnné prostředí. Chcete-li to provést, vytvořte soubor s názvem „admin-openrc.sh ‘ a nastavte proměnné prostředí, jak je uvedeno níže:

[root@controller-hostname ~]# vi admin-openrc.shexport OS_USERNAME=adminexport OS_PASSWORD=setpasswordexport OS_TENANT_NAME=adminexport OS_AUTH_URL=http://controller-hostname:35357/v2.0[root@controller-hostname ~] # zdroj admin-openrc.sh

Umožňuje vytvořit uživatele…

[root@controller-hostname ~]# keystone user-create --name=admin --pass=setpassword --email=keystone@controller-hostname

Vytvořit roli…

[root@controller-hostname ~]# keystone role-create --name=admin

Vytvořit tenanta…

[root@controller-hostname ~]# keystone tenant-create --name=admin --description="Admin tenant"

Budeme muset propojit uživatele s rolí a tenantem vytvořeným v předchozích krocích…

[root@controller-hostname ~]# keystone user-role-add --user=admin --role=admin --tenant=admin

Zaregistrujte keystone (službu identity) do služby KeyStone

[root@controller-hostname ~]# keystone tenant-create --name=service --description="Service Tenant"[root@controller-hostname ~]# keystone service-create --name=keystone --type =identity --description="OpenStack Identity"[root@controller-hostname ~]# keystone endpoint-create --service-id=$(keystone service-list | awk '/ compute / {print $2}') --publicurl =http://controller-hostame:8774/v2/%\(tenant_id\)s --internalurl=http://controller-hostame:8774/v2/%\(tenant_id\)s --adminurl=http:/ /controller-hostame:8774/v2/%\(tenant_id\)s

To je vše, konfigurace KeyStone je hotová… Pokud se během instalace a konfigurace lichoběžníkového zkreslení setkáte s nějakým problémem, zde je řešení pro různé chyby lichoběžníkového zkreslení – Běžné chyby služby lichoběžníkového zkreslení a řešení .

Instalovat Glance (Image Service) na uzel Controller

Služba obrazu bude nainstalována v uzlu Controller, aby hostila všechny obrazy, které mají být použity ke spouštění virtuálních počítačů v uzlu Compute.

[root@controller-hostname ~]# yum nainstalovat openstack-glance python-glanceclient

Nastavit databázi ‚pohled‘…

[root@controller-hostname ~]# mysql -u root -pmysql> VYTVOŘIT DATABÁZI look;mysql> UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA první pohled.* TO 'glance'@'controller-hostname' IDENTIFIKOVANÉ PODLE 'setpassword';mysql> UDĚLEJTE VŠECHNA PRIVILEGIA NA první pohled.* TOMU 'glance'@'%' IDENTIFIKUJE 'setpassword ';

Poznámka: Nezapomeňte změnit ‘setpassword’

Vytvořte tabulky pro databázi ‚pohled‘…

[root@controller-hostname ~]# su -s /bin/sh -c pohled "glance-manage db_sync"

Nakonfigurujte službu pohled pro čtení přihlašovacích údajů databáze…

[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-api.conf připojení k databázi mysql://glance:setpassword@controller-hostname/glance[root@controller-hostname ~ ]# připojení k databázi look-registry.conf mysql://glance:setpassword@controller-hostname/glance

Vytvořit uživatele Glance v KeyStone…

[root@controller-hostname ~]# keystone user-create --name=glance --pass=setpassword --email=glance@controller-hostname

Přidejte uživatele pohledu do role „admin“

[root@controller-hostname ~]# keystone user-role-add --user=glance --tenant=service --role=admin

Nakonfigurujte ověřování pro Glance…

[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller-hostname:5000[root@controller-hostname ~]# openstack- config --set /etc/glance/glance-api.conf keystone_authtoken auth_host controller-hostname [root@controller-hostname ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_port 35357[root@controller-hostname ~]# openstack-config --set /etc/glance/glance- api.conf keystone_authtoken auth_protocol http[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_tenant_name service[root@controller-hostname ~]# openstack-config --set / etc/glance/glance-api.conf keystone_authtoken admin_user pohled[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_password setpassword [root@controller-hostname ~]# openstack-config --set /etc/glance/glance-api.conf paste_deploy aroma keystone[root@controller-hostname ~]# openstack-config --set /etc/glance/glance- registry.conf keystone_authtoken auth_uri http://controller-hostname:5000[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_host controller-hostname [root@controller-hostname ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_port 35357[root@controller-hostname ~]# openstack-config --set /etc/glance/glance- registry.conf keystone_authtoken auth_protocol http[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_tenant_name service[root@controller-hostname ~]# openstack-config --set / etc/glance/glance-registry.conf keystone_authtoken admin_user pohled[root@controller-hostname ~]# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_password setpassword [root@controller-hostname ~]# openstack-config --set /etc/glance/glance-registry.conf paste_deploy aroma keystone

Zaregistrujte si službu Glance do KeyStone…

[root@controller-hostname ~]# keystone service-create --name=glance --type=image --description="OpenStack Image Service"[root@controller-hostname ~]# keystone --os-token =fd465d38e342ddc68be3 --os-endpoint=http://controller-hostname:35357/v2.0 endpoint-create --service-id=$(keystone service-list | awk '/ image / {print $2}') -- publicurl=http://kontroler-hostname:9292 --internalurl=http://controller-hostname:9292 --adminurl=http://controller-hostname:9292

Spustit služby pohledů…

[root@controller-hostname ~]# služba openstack-glance-api start[root@controller-hostname ~]# spuštění služby openstack-glance-registry[root@controller-hostname ~]# chkconfig openstack-glance-api on[root@controller-hostname ~]# chkconfig openstack-glance-registry on

Poznámka: Pokud se některá ze služeb nespustí, zkontrolujte soubory protokolu pod /var/log/glance . Přečtěte si také tuto příručku – Chyby a řešení instalace služby OpenStack Glance Image Service.

Testovat službu Glance…

Nyní si stáhneme obrázek Cirros, abychom otestovali službu pohled. Cirros je malý linuxový operační systém, který má velikost v několika MB, takže je docela snadné jej stáhnout a přidat do služby Glance.

[root@controller-hostname ~]# wget http://cdn.download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img[root@controller-hostname ~] # glance image-create --name=cirros --disk-format=qcow2 --container-format=bare --is-public=true  

Přidat obrázek CentOS do služby pohled

[root@controller-hostname ~]# wget http://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud-20141129_01.qcow2.xz

Poznámka: xz je obecný nástroj pro kompresi dat, který poskytuje vysoký kompresní poměr. To je důvod, proč je velikost souboru .xz menší a lze jej snadno stáhnout. Pokud si nejste jisti, jak dekomprimovat soubory .xz, zde je návod, který vám pomůže.

Po rozbalení obrázku .xz přidejte obrázek do služby Glance.

[root@controller-hostname ~]# pohled image-create --name 'Centos-6' --disk-format qcow2 --container-format bare --is-public=true  

Zobrazit seznam obrázků přidaných do služeb Glance…

[root@controller-hostname ~]# pohled image-show "cirros"+------------------+----------- ---------------------------+| Nemovitost | Hodnota |+------------------+---------------------------- ----------+| kontrolní součet | 64d7c1cd2b6f60c92c14662941cb7913 || formát_kontejneru | holý || created_at | 2015-02-06T12:47:39 || smazáno | Nepravda || disk_format | qcow2 || id | a338631b-3bb8-43ba-a700-d4648c040a05 || je_veřejné | Pravda || min_disk | 0 || min_ram | 0 || jméno | cirros || majitel | e7c679bc36ec4c298cf68ecf6d49c1b3 || chráněný | Nepravda || velikost | 13167616 || stav | aktivní || updated_at | 2015-02-06T12:47:40 |+------------------+--------------------- ------------------+
[root@controller-hostname ~]# pohled image-show "Centos-6"+------------------+--------- -----------------------------+| Nemovitost | Hodnota |+------------------+---------------------------- ----------+| kontrolní součet | 62ac2565e3527377860361f57639f334 || formát_kontejneru | holý || created_at | 2015-02-13T06:18:52 || smazáno | Nepravda || disk_format | qcow2 || id | ac7ffb6d-1594-4a4c-94e7-9d8e70a120a8 || je_veřejné | Pravda || min_disk | 0 || min_ram | 0 || jméno | Centos-6 || majitel | e7c679bc36ec4c298cf68ecf6d49c1b3 || chráněný | Nepravda || velikost | 1151533056 || stav | aktivní || updated_at | 2015-02-13T06:20:29 |+------------------+--------------------- ------------------+

Instalovat službu Nova na uzel Controller:

Pojďme nyní k instalaci Novy na uzel Controller…

[root@controller-hostname ~]# yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient

Vytvořit databázi „nova“…

[root@controller-hostname ~]# mysql -u root -pmysql> VYTVOŘIT DATABÁZI nova;mysql> UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA nova.* TOMU 'nova'@'controller-hostname' IDENTIFIKOVANÉ PODLE 'setpassword';mysql> UDĚLEJTE VŠECHNA PRIVILEGIÍ NA nova.* PRO 'nova'@'%' IDENTIFIKOVANÉ OD 'setpassword';

Řekněte Nově, aby použila odpovídající databázi a poskytla pro ni přihlašovací údaje…

[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf připojení k databázi mysql://nova:setpassword@controller-hostname/nova

Připojte Message broker (Qpid) k Nova…

[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf VÝCHOZÍ rpc_backend qpid[root@controller-hostname ~]# openstack-config --set /etc/nova/nova .conf DEFAULT qpid_hostname controller-hostname 

Vytvořte tabulky pro databázi „nova“

[root@controller-hostname ~]# su -s /bin/sh -c "nova-manage db sync" nova

Vytvořit uživatele pro nova v KeyStone

[root@controller-hostname ~]# keystone user-create --name=nova --pass=setpassword --email=nova@controller-hostname[root@controller-hostname ~]# keystone user-role-add --user=nova --tenant=service --role=admin

Nakonfigurujte ověřování nova pomocí KeyStone

[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone[root@controller-hostname ~]# openstack-config --set /etc/nova/nova .conf keystone_authtoken auth_uri http://controller-hostname:5000[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host controller-hostname [root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova[root@controller-hostname ~]# openstack-config --set /etc/nova/nova. conf keystone_authtoken admin_tenant_name service[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password setpassword 

Zaregistrujte si nova pomocí KeyStone

[root@controller-hostname ~]# keystone service-create --name=nova --type=compute --description="OpenStack Compute"[root@controller-hostname ~]# keystone endpoint-create --service -id=$(keystone service-list | awk '/ compute / {print $2}') --publicurl=http://controller-hostname:8774/v2/%\(tenant_id\)s --internalurl=http://controller-hostname:8774/v2/%\(tenant_id\)s --adminurl=http://controller-hostname:8774/v2/%\(tenant_id\)s

Spustit služby související s Nova…

[root@controller-hostname ~]# služba openstack-nova-api start[root@controller-hostname ~]# chkconfig openstack-nova-api on[root@controller-hostname ~]# služba openstack-nova-cert start[root@controller-hostname ~]# chkconfig openstack-nova-cert on[root@controller-hostname ~]# služba openstack-nova-scheduler start[root@controller-hostname ~]# chkconfig openstack-nova-scheduler on[ root@controller-hostname ~]# služba  openstack-nova-novncproxy start[root@controller-hostname ~]# chkconfig openstack-nova-novncproxy on[root@controller-hostname ~]# služba  openstack-nova-consoleauth start[root@ controller-hostname ~]# chkconfig openstack-nova-consoleauth on[root@controller-hostname ~]# service  openstack-nova-conductor start[root@controller-hostname ~]# chkconfig openstack-nova-conductor on[root@controller- název hostitele ~]# služba  openstack-nova-metadata-api start[root@controller-hostname ~]# chkconfig openstack-nova-metadata-api on

Poznámka: Po spuštění služby zkontrolujte její stav a ujistěte se, že služba skutečně běží. Pokud se nepodařilo spustit některou ze služeb, zkontrolujte soubory protokolu pod /var/log/nova.

Přečtěte si také:Chyby a řešení instalace služby OpenStack Nova.

Příkazy Nova k testování konfigurace a služeb…

Zobrazení všech obrázků které jsou uloženy ve službě Glance…

[root@controller-hostname ~]# seznam obrázků nova+---------------------------------- ----+---------------+--------+--------------------- ------------------+| ID | Jméno | Stav | Server |+--------------------------------------+--------- -------+--------+--------------------------------- -----+| ac7ffb6d-1594-4a4c-94e7-9d8e70a120a8 | Centos-6 | AKTIVNÍ | || a338631b-3bb8-43ba-a700-d4648c040a05 | cirros | AKTIVNÍ | || e8c477ae-7c74-497d-9d9b-5fea1035d899 | testvm-snap1 | AKTIVNÍ | aa7c5535-4259-42f0-8d74-5b26f0d731de |+---------------------------------------+ ---------------+--------+------------------------- -------------+

Chcete-li zobrazit seznam všech služeb…

[root@controller-hostname ~]# nova service-list+------------------+--------------- ----------+----------+---------+-------+----------- ------------------+-----------------+| Binární | Host | Zóna | Stav | stát | Aktualizováno_zavináč | Důvod deaktivace |+------------------+-------------------------+- ---------+---------+-------+----------------------- ------+-----------------+| nova-cert | controller-hostname| vnitřní | povoleno | nahoru | 2015-02-16T11:06:09.000000 | - || nova-plánovač | controller-hostname| vnitřní | povoleno | nahoru | 2015-02-16T11:06:07.000000 | - || nova-consoleauth | controller-hostname| vnitřní | povoleno | nahoru | 2015-02-16T11:06:11.000000 | - || nova-vodič | controller-hostname| vnitřní | povoleno | nahoru | 2015-02-16T11:06:12.000000 | - || nova-konzole | controller-hostname| vnitřní | povoleno | nahoru | 2015-02-16T11:06:12.000000 | - |+------------------+--------------------------+-- --------+---------+-------+----------------------- -----+-----------------+

Nastavení Nova-Networking pro uzel Controller

V tomto nastavení dvou uzlů nainstalujeme síť Nova (Legacy) na uzly Controller a Compute. To znamená, že se nemusíte starat o komplexní službu Neutron.

Nakonfigurujte Novu tak, aby používala starší síť nova…

[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf VÝCHOZÍ network_api_class nova.network.api.API[root@controller-hostname ~]# openstack-config --set /etc/nova/nova.conf DEFAULT security_group_api nova

Restartujte služby nova

[root@controller-hostname ~]# služba openstack-nova-api restart[root@controller-hostname ~]# služba openstack-nova-scheduler restart[root@controller-hostname ~]# služba  openstack-nova-conductor restartovat

Vytvořte síť pro virtuální počítače

Nyní Nova ví, že by měla pro komunikaci používat starší sítě, ale musíte vytvořit síť a fond IP adres, ke kterým by měly být virtuální počítače přiřazeny. Jednoduše přejděte nahoru a zobrazí se diagram architektury, kde najdete externí IP (10.180.14.151) přiřazenou k výpočetnímu uzlu. Znamená to, že musíme vytvořit podsíť v síti 10.180.14.0, kterou budou virtuální počítače používat. In this tutorial, let us assume that we need 30 IP addresses for allocation. So the subnet details goes as below…

------------------------------------------------ TCP/IP NETWORK INFORMATION------------------------------------------------IP Entered =..................:10.180.14.160 CIDR =........................:/27 Netmask =.....................:255.255.255.224Wildcard Bits =...............:0.0.0.31------------------------------------------------Network Address =.............:10.180.14.160Broadcast Address =...........:10.180.14.191Usable IP Addresses =.........:30First Usable IP Address =.....: 10.180.14.161 Last Usable IP Address =......: 10.180.14.190 

For the subnet ‘10.180.14.160/27’, the first usable IP address is 10.180.14.161 and the last usable IP address is 10.180.14.190.

The below command will create a network called ‘private’

[root@controller-hostname ~]# nova network-create private --bridge br100 --multi-host T --fixed-range-v4 10.180.14.160/27[root@controller-hostname ~]# nova net-list+--------------------------------------+---------+------------------+| ID | Label | CIDR |+--------------------------------------+---------+------------------+| 60dfd46a-4649-4758-8b8d-88cc562b9b39 | private | 10.180.14.160/27 |+--------------------------------------+---------+------------------+

Add a security group to the created network to allow SSH connections

[root@controller-hostname ~]# nova secgroup-add-rule default tcp 22 22 0.0.0.0/0+-------------+-----------+---------+-----------+--------------+| IP Protocol | From Port | To Port | IP Range | Source Group |+-------------+-----------+---------+-----------+--------------+| tcp | 22 | 22 | 0.0.0.0/0 | |+-------------+-----------+---------+-----------+--------------+

Install Dashboard (Horizon) on Controller node

Now its time to install Horizon service on controller node – provides a portal to manage instances, services, network etc…

[root@controller-hostname ~]# yum install memcached python-memcached mod_wsgi openstack-dashboard

Change the values of CACHES[‘default’][‘LOCATION’] as below

# vi /etc/openstack-dashboard/local_settingsCACHES ={'default':{'BACKEND' :'django.core.cache.backends.memcached.MemcachedCache','LOCATION' :'127.0.0.1:11211'}}

The above changes should match the address and port specified in /etc/sysconfig/memcached .

Also modify ‘ALLOWED_HOSTS ‘ attribute to accept connection from your desktop – as that will allow you to access the dashboard via browser.

You have to make sure SELINUX allows connection to the web server

[root@controller-hostname ~]# setsebool -P httpd_can_network_connect on

Start web server and memcached

[root@controller-hostname ~]# service memcached start[root@controller-hostname ~]# service httpd start[root@controller-hostname ~]# chkconfig memcached on[root@controller-hostname ~]# chkconfig httpd on

Try accessing the dashboard service – http://controller-hostname/dashboard

Install Nova on Compute node

Finally, we are done with our installation on Controller node and we’ll now move on to install Nova on Compute node.

Install nova compute service on Compute node..

[root@compute-hostname ]# yum install openstack-nova-compute

Connect to nova database on controller node…

[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf database connection mysql://nova:setpassword@controller-hostname /nova

Setup authentication…

[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller-hostname :5000[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host controller-hostname [root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password setpassword 

Configure Nova to use Qpid message broker for communication

[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend qpid[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname controller-hostname 

Compute Node should know where the Glance is running, so we need to configure that as well.

[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT glance_host controller-hostname 

Start messagebus, libvirtd and nova-compute services

[root@compute-hostname ]# service libvirtd start[root@compute-hostname ]# chkconfig libvirtd on[root@compute-hostname ]# chkconfig messagebus on[root@compute-hostname ]# service messagebus start[root@compute-hostname ]# service openstack-nova-compute start[root@compute-hostname ]# chkconfig openstack-nova-compute on

Install Nova-Networking for Computer node

[root@compute-hostname ]# yum install openstack-nova-network openstack-nova-api

Configure network api, security group, firewall, network size, dhcp etc..

[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.api.API[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT security_group_api nova[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT network_manager nova.network.manager.FlatDHCPManager[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriver[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT network_size 254[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT allow_same_net_traffic False[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT multi_host True[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT send_arp_for_ha True[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT share_dhcp_address True[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT force_dhcp_release True

Configure network bridge and interfaces

If you remember we created a network bridge ‘br100 ‘ in controller node. For this tutorial, the external IP address of the compute node is 10.180.14.151 (configured on eth1 network interface) and the subnet is ‘10.180.14.160/27

[root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT flat_network_bridge br100 [root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT flat_interface eth1 [root@compute-hostname ]# openstack-config --set /etc/nova/nova.conf DEFAULT public_interface eth1 

Poznámka: Remember to change the network interface (eth1) to the corresponding interface of your compute node.

Start the services…

[root@compute-hostname ]# service openstack-nova-api start[root@compute-hostname ]# service openstack-nova-network start[root@compute-hostname ]# service openstack-nova-metadata-api start[root@compute-hostname ]# chkconfig openstack-nova-api on[root@compute-hostname ]# chkconfig openstack-nova-network on[root@compute-hostname ]# chkconfig openstack-nova-api on

Well, we are done with installations on both the Controller and Compute node. Let us now trying booting VM, but before that you should know the below commands.

List of networks created…

[root@controller-hostname ~]# nova net-list+--------------------------------------+---------+------------------+| ID | Label | CIDR |+--------------------------------------+---------+------------------+| 60dfd46a-4649-4758-8b8d-88cc562b9b39 | private | 10.180.14.160/27 |+--------------------------------------+---------+------------------+

List of images stored in Glance…

[root@controller-hostname ~]# nova image-list+--------------------------------------+---------------+--------+--------------------------------------+| ID | Name | Status | Server |+--------------------------------------+---------------+--------+--------------------------------------+| ac7ffb6d-1594-4a4c-94e7-9d8e70a120a8 | Centos-6 | ACTIVE | || a338631b-3bb8-43ba-a700-d4648c040a05 | cirros | ACTIVE | || e8c477ae-7c74-497d-9d9b-5fea1035d899 | henryvm-snap1 | ACTIVE | aa7c5535-4259-42f0-8d74-5b26f0d731de |+--------------------------------------+---------------+--------+--------------------------------------+

List of flavors available…

[root@controller-hostname ~]# nova flavor-list+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True || 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True || 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True || 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True || 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True |+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+

List of security groups created…

[root@controller-hostname ~]# nova secgroup-list+----+---------+-------------+| Id | Name | Description |+----+---------+-------------+| 1 | default | default |+----+---------+-------------+

You may want to generate SSH keys to allow users to login to the newly created instance.

[root@controller-hostname ~]# ssh-keygen

Add the SSH public key to the nova keypair list..

[root@controller-hostname ~]# nova keypair-add --pub-key ~/.ssh/id_rsa.pub test-key

View the list of key pairs created…

[root@controller-hostname ~]# nova keypair-list+----------+-------------------------------------------------+| Name | Fingerprint |+----------+-------------------------------------------------+| test-key | b0:e1:ff:a5:1b:b0:ff:14:d5:46:13:bc:b6:ba:97:9b |+----------+-------------------------------------------------+

Create an Instance

Based on the output from above commands, you can create a new instance as below:

[root@controller-hostname ~]# nova boot --flavor m1.small --image Centos-6 --nic net-id=60dfd46a-4649-4758-8b8d-88cc562b9b39 --security-group default --key-name test-key myfirstvm+--------------------------------------+-------------------------------------------------+| Property | Value |+--------------------------------------+-------------------------------------------------+| OS-DCF:diskConfig | MANUAL || OS-EXT-AZ:availability_zone | nova || OS-EXT-SRV-ATTR:host | - || OS-EXT-SRV-ATTR:hypervisor_hostname | - || OS-EXT-SRV-ATTR:instance_name | instance-00000016 || OS-EXT-STS:power_state | 0 || OS-EXT-STS:task_state | - || OS-EXT-STS:vm_state | building || OS-SRV-USG:launched_at | - || OS-SRV-USG:terminated_at | - || accessIPv4 | || accessIPv6 | || adminPass | hEMdKAnLs6XX || config_drive | || created | 2015-02-18T08:56:32Z || flavor | m1.small (2) || hostId | || id | a9735dd7-c601-4209-a86a-0575711239d1 || image | Centos-6 (ac7ffb6d-1594-4a4c-94e7-9d8e70a120a8) || key_name | test-key || metadata | {} || name | myfirstvm || os-extended-volumes:volumes_attached | [] || progress | 0 || security_groups | default || status | BUILD || tenant_id | e7c679bc36ec4c298cf68ecf6d49c1b3 || updated | 2015-02-18T08:56:32Z || user_id | 8607e0ccc8ee407daf50c1985616b153 |+--------------------------------------+-------------------------------------------------+

Check if the state of the VM is “ACTIVE” using the below command…

[root@controller-hostname ~]# nova list+--------------------------------------+------------------+--------+------------+-------------+-----------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+------------------+--------+------------+-------------+-----------------------+| 8aaa3873-09c5-48f0-9d1e-cb4401e44583 | Cluster-headnode | ACTIVE | - | Running | private=10.180.14.162 || a9735dd7-c601-4209-a86a-0575711239d1 | myfirstvm | ACTIVE | - | Running | private=10.180.14.163 |+--------------------------------------+------------------+--------+------------+-------------+-----------------------+

The new VM called “myfirstvm ” is running and the allocated IP address is 10.180.14.163 .

Login to an instance

[root@controller-hostname ~]# cd .ssh/[root@controller-hostname .ssh]# ssh -i id_rsa [email protected] login:Wed Feb 18 09:01:07 2015 from 10.180.10.132[centos@myfirstvm ~]$ hostnamemyfirstvm

Poznámka: Since we installed “Horizon” service on controller node, you should be able to create an instance via OpenStack dashboard. That’s super easy!

What is the password for Cirros?

In case, if you have used Cirros image to create an instance, then you must login with username as ‘cirros’ and password as ‘cubswin:)’ (of course, without single quotes).

To know information about the running VM, you can just issue the below command.

[root@controller-hostname ~]# nova show myfirstvm +--------------------------------------+----------------------------------------------------------+| Property | Value |+--------------------------------------+----------------------------------------------------------+| OS-DCF:diskConfig | MANUAL || OS-EXT-AZ:availability_zone | nova || OS-EXT-SRV-ATTR:host | gcompute.blr.cdac.in || OS-EXT-SRV-ATTR:hypervisor_hostname | gcompute.blr.cdac.in || OS-EXT-SRV-ATTR:instance_name | instance-00000016 || OS-EXT-STS:power_state | 1 || OS-EXT-STS:task_state | - || OS-EXT-STS:vm_state | active || OS-SRV-USG:launched_at | 2015-02-18T08:56:54.000000 || OS-SRV-USG:terminated_at | - || accessIPv4 | || accessIPv6 | || config_drive | || created | 2015-02-18T08:56:32Z || flavor | m1.small (2) || hostId | bd672087b1933d00d10e9d4f85cbac0326ebf3de73a0ce093c0d1838 || id | a9735dd7-c601-4209-a86a-0575711239d1 || image | Centos-6 (ac7ffb6d-1594-4a4c-94e7-9d8e70a120a8) || key_name | test-key || metadata | {} || name | myfirstvm || os-extended-volumes:volumes_attached | [] || private network | 10.180.14.163 || progress | 0 || security_groups | default || status | ACTIVE || tenant_id | e7c679bc36ec4c298cf68ecf6d49c1b3 || updated | 2015-02-18T08:56:41Z || user_id | 8607e0ccc8ee407daf50c1985616b153 |+--------------------------------------+----------------------------------------------------------+

Stop an Instance

If you want to stop a running instance, here’s how you can do that.

[root@controller-hostname ~]# nova stop myfirstvm

If you want to delete an instance completely, then here’s the command.

[root@controller-hostname ~]# nova delete myfirstvm

How to add another compute node to the OpenStack environment?
It’s simple! Just follow the same steps that we used for Compute-hostname node.

Do you like this tutorial? Share it with OpenStack community by clicking the share icons at the top.

A bonus je tady...

    Stáhněte si zdarma e-knihu o instalaci OpenStack Icehouse! Stáhněte si Cheat Sheet rozhraní příkazového řádku OpenStack! – Nejčastěji používané příkazy

Cent OS
  1. Průvodce NetInstall CentOS 6 | Nainstalujte CentOS 6 přes NetInstall

  2. Nainstalovat Grafana na CentOS 8 – průvodce krok za krokem?

  3. Nainstalovat FreeIPA na CentOS 8 – průvodce krok za krokem?

  1. Nainstalovat ClamAV na CentOS 8 – průvodce krok za krokem?

  2. Nainstalovat HAProxy na CentOS 8 – průvodce krok za krokem?

  3. Nainstalovat Steam na CentOS 8 – průvodce krok za krokem?

  1. Nainstalovat Discord na CentOS 8 – průvodce krok za krokem?

  2. Instalace Transmission na CentOS 8 – průvodce krok za krokem?

  3. Nainstalovat Mattermost na CentOS 8 – průvodce krok za krokem?