Od Ghulama Qadira, Alibaba Cloud Tech Share Autor. Tech Share je motivační program společnosti Alibaba Cloud na podporu sdílení technických znalostí a osvědčených postupů v rámci cloudové komunity.

OpenStack je bezplatná softwarová platforma s otevřeným zdrojovým kódem, která poskytuje IaaS (infrastruktura jako služba) pro veřejné a soukromé cloudy.

Platforma OpenStack se skládá z několika vzájemně souvisejících projektů, které řídí hardware, úložiště, síťové zdroje datového centra, jako např: Výpočet, Image Service, Block Storage, Identity Service, Networking, Object Storage, Telemetry, Orchestration a Database.

Přestože hlavní funkcí OpenStack je poskytovat platformu IaaS, používá se jako DBaaS (database-as-a-service), budování clusterů Hadoop, orchestrace kontejnerů a mnoho dalšího. Správu těchto komponent lze spravovat prostřednictvím webového rozhraní nebo pomocí příkazového řádku OpenStack.

Tento tutoriál vám ukáže, jak můžete nasadit vlastní infrastrukturu privátního cloudu s OpenStack nainstalovanou na jednom uzlu pomocí úložišť rdo, i když nasazení lze dosáhnout na více uzlech. Tuto službu budeme nasazovat na instancích Alibaba Cloud Elastic Compute Service (ECS) s operačním systémem CentOS 7.

  1. Hostname = openstack.example.com
  2. IP adresa = 192.168.1.40
  3. maska sítě = 255.255.255.0
  4. Brána = 192.168.1.1
  5. DNS = 192.168.1.254

Předpoklady

  1. Musíte mít aktivovanou službu Alibaba Cloud Elastic Compute Service (ECS) a ověřený platný způsob platby. Pokud jste nový uživatel, můžete získat bezplatný účet ve svém účtu Alibaba Cloud. Pokud nevíte, jak nastavit instanci ECS, můžete se podívat na tento návod nebo stručnou příručku.
  2. Měli byste nastavit název hostitele serveru.
  3. Přístup ke konzole VNC v Alibaba Cloud nebo klient SSH nainstalovaný v počítači.

Po splnění nezbytných podmínek se přihlaste jako uživatel root s uživatelským jménem root &heslem prostřednictvím klienta SSH (např. Putty) nebo konzoly VNC, která je k dispozici na ovládacím panelu vašeho účtu Alibaba Cloud.

Ujistěte se, že váš systém má alespoň 16 GB RAM a procesor s podporou VT. Podporu VT zkontrolujte pomocí níže uvedeného příkazu.

 egrep --color 'vmx|svm' /proc/cpuinfo | wc –l

Výstup: (neměla by být nulová)

 2

Počáteční konfigurace systému

  1. Než začnete připravovat uzel pro nasazení vlastní infrastruktury virtuálního cloudu, nejprve se přihlaste pomocí účtu root a ujistěte se, že je systém aktuální.

    Ujistěte se, že je v počítači nainstalována nejnovější verze systému CentOS 7.

     yum -y update
  2. Poté zadejte příkaz ss -tulpn pro výpis všech spuštěných služeb.
     Ss -tulpn

1

Nyní identifikujte nepotřebné služby, zastavte je, zakažte a odstraňte. Především Postfix, NetworkManager a Firewalld. Poté by na vašem linuxovém počítači měla běžet pouze služba sshd.

 # systemctl stop postfix firewalld NetworkManager # systemctl disable postfix firewalld NetworkManager # systemctl mask NetworkManager # yum remove postfix NetworkManager NetworkManager-libnm

Trvale zakažte politiku Selinux na vašem linuxovém počítači provedením následujících příkazů. Upravte také soubor /etc/selinux/config a upravte SELINUX z enforcing na disabled, jak ukazuje obrázek níže.

 # setenforce 0 # getenforce # vi /etc/selinux/config

2

V dalším kroku pomocí příkazu hostnamectl nastavte hostitelské jméno systému Linux. Nahraďte odpovídajícím způsobem proměnnou FQDN.

 # hostnamectl set-hostname cloud.centos.lan

3

Nakonec nainstalujte ntpdate, abyste mohli synchronizovat čas se serverem NTP.

 # yum install ntpdate

Instalace OpenStack v systémech CentOS a RHEL

OpenStack bude na vašem uzlu nasazen pomocí balíčku PackStack, který poskytuje repozitář rdo (RPM distribuce OpenStack).

Pro aktivaci repozitáře rdo v systému RHEL 7 spusťte níže uvedený příkaz.

 # yum install https://www.rdoproject.org/repos/rdo-release.rpm

V systému CentOS 7 obsahuje repozitář Extras RPM, který aktivuje repozitář OpenStack. Extras je již povolen, takže můžete snadno nainstalovat RPM pro nastavení úložiště OpenStack:

 # yum install -y centos-release-openstack-mitaka # yum update –y

Nainstalujme balíček Packstat na linuxový počítač pomocí následujícího příkazu:

 # yum install openstack-packstack

V dalším kroku vygenerujte soubor odpovědi pro Packstack s výchozími konfiguracemi, který bude později upraven o požadované parametry za účelem nasazení samostatné instalace Openstack (jeden uzel).

Soubor bude při generování pojmenován podle časového razítka aktuálního dne (den, měsíc a rok).

 # packstack --gen-answer-file='date +"%d.%m.%y"'.conf # ls

4

Nyní soubor s odpovědí upravte pomocí svého oblíbeného textového editoru.

 vi 26.07.18.conf

a nahraďte následující parametry tak, aby odpovídaly níže uvedeným hodnotám. Pro jistotu odpovídajícím způsobem nahraďte pole s hesly.

 CONFIG_NTP_SERVERS=0.ro.pool.ntp.org

5

 CONFIG_PROVISION_DEMO=n

6

 CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user

7

Přístup k dashboardu OpenStack přes protokol HTTP se zapnutým protokolem SSL.

 CONFIG_HORIZON_SSL=y

8

Heslo kořenového serveru MySQL.

 CONFIG_MARIADB_PW=mypassword1234

9

Po dokončení úprav soubor uložte a zavřete. Otevřete také konfigurační soubor serveru SSH a odkomentujte řádek PermitRootLogin odstraněním předního hashtagu, jak je znázorněno na následujícím obrázku.

 # vi /etc/ssh/sshd_config

10

Poté restartujte službu SSH, aby se změny projevily.

 # systemctl restart sshd 

Spuštění instalace Openstack pomocí souboru s odpovědí Packstack

Nakonec spusťte proces instalace Openstack prostřednictvím výše upraveného souboru s odpovědí spuštěním níže uvedené syntaxe příkazu:

 # packstack --answer-file 13.04.16.conf

11

Po úspěšném dokončení instalace komponent OpenStack zobrazí instalační program několik řádků s odkazy na místní ovládací panely pro OpenStack a Nagios a již výše nakonfigurovanými požadovanými pověřeními pro přihlášení do obou panelů.

12

Pověřovací údaje jsou také uloženy ve vašem domovském adresáři v souboru keystonerc_admin.

Pokud z nějakého důvodu instalační proces skončí chybou týkající se služby httpd, otevřete soubor /etc/httpd/conf.d/ssl.conf a ujistěte se, že jste zakomentovali následující řádek, jak je znázorněno níže.

 #Listen 443 https

13

Poté restartujte démona Apache, aby se změny uplatnily.

 # systemctl restart httpd.service

Poznámka: V případě, že stále nemůžete procházet webový panel Openstacku na portu 443, restartujte instalační proces od začátku stejným příkazem, který byl vydán pro počáteční nasazení.

 # packstack --answer-file /root/26.07.18.conf

Vzdálený přístup k panelu OpenStack

Chcete-li přistupovat k webovému panelu OpenStack ze vzdáleného hostitele v síti LAN, přejděte na IP adresu svého počítače nebo FQDN/panelu prostřednictvím protokolu HTTPS.

Vzhledem k tomu, že používáte certifikát s vlastním podpisem vydaný nedůvěryhodnou certifikační autoritou, měla by se v prohlížeči zobrazit chyba.

Přijměte chybu a přihlaste se k dashboardu pomocí uživatele admin a hesla nastaveného v parametru CONFIG_KEYSTONE_ADMIN_PW z výše nastaveného souboru odpovědí.

 https://192.168.1.40/dashboard

14

15

Pokud jste se rozhodli nainstalovat komponentu Nagios pro OpenStack, můžete alternativně navštívit webový panel Nagios na následujícím URI a přihlásit se pomocí pověření nastavených v souboru odpovědí.

 https://192.168.1.40/nagios

16

17

Konfigurace

OpenStack je kolekce komponent open source projektu, které umožňují nastavení cloudových služeb. Každá komponenta používá podobné konfigurační techniky a společný rámec pro volby souborů INI.

Tento průvodce shromažďuje několik odkazů a možností konfigurace pro následující komponenty OpenStack:

  1. Služba Bare Metal
  2. Služba Blokové úložiště
  3. Výpočetní služba
  4. Dashboard
  5. Služba Databáze
  6. Služba Zpracování dat
  7. Služba Identita
  8. Služba Obrázky
  9. Zpráva service
  10. Networking service
  11. Object Storage service
  12. Orchestration service
  13. Shared File Systems service
  14. Telemetry service

OpenStack používá pro konfigurační soubory formát INI. Soubor INI je jednoduchý textový soubor, který specifikuje možnosti jako dvojice klíč=hodnota seskupené do sekcí. Sekce DEFAULT obsahuje většinu konfiguračních možností. Řádky začínající znakem hash (#) jsou řádky s komentáři. Například:

 # 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

Možnosti mohou mít různé typy hodnot. Komentáře v ukázkových konfiguračních souborech je vždy uvádějí a tabulky uvádějí hodnotu Opt jako první položku, například (BoolOpt) Toggle….. Ve službě OpenStack se používají následující typy:

boolean hodnota (BoolOpt)

Zapíná nebo vypíná možnost. Povolené hodnoty jsou true a false.

 # Enable the experimental use of database reconnect on # connection lost (boolean value) use_db_reconnect = false

hodnota s pohyblivou řádovou čárkou (FloatOpt)

Číslo s pohyblivou řádovou čárkou, například 0,25 nebo 1000.

 # Sleep time in seconds for polling an ongoing async task # (floating point value) task_poll_interval = 0.5

celočíselná hodnota (IntOpt)

Celočíselná hodnota je číslo bez zlomkových složek, například 0 nebo 42.

 # Sleep time in seconds for polling an ongoing async task # (floating point value) task_poll_interval = 0.5

Celočíselná hodnota je číslo bez zlomkových složek.

 # The port which the OpenStack Compute service listens on. # (integer value) compute_port = 8774

Adresa IP (IPOpt)

Adresa IPv4 nebo IPv6.

 # Address to bind the server. Useful when selecting a particular network # interface. (ip address value) bind_host = 0.0.0.0

Páry klíč-hodnota (DictOpt)

Páry klíč-hodnota, známé také jako diktanty. Dvojice klíč-hodnota jsou odděleny čárkami a pro oddělení klíče a hodnoty se používá dvojtečka. Příklad: key1:value1,key2:value2.

 # 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

Seznam hodnot (ListOpt)

Představuje hodnoty jiných typů, oddělené čárkami. Jako příklad uvádíme následující nastavení allowed_rpc_exception_modules na seznam obsahující čtyři prvky oslo.messaging.exceptions, nova.exception, cinder.exception a 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)

Vícehodnotová volba je řetězcová hodnota a může být zadána více než jednou, použity budou všechny hodnoty.

 # 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)

Číslo portu TCP/IP. Rozsah portů může být od 1 do 65535.

 # Port to which the UDP socket is bound. (port value) # Minimum value: 1 # Maximum value: 65535 udp_port = 4952

hodnota řetězce (StrOpt)

Řetězce mohou být volitelně uzavřeny jednoduchými nebo dvojitými uvozovkami.

 # 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 = " "

Sekce

Možnosti konfigurace jsou seskupeny podle sekcí. Většina konfiguračních souborů podporuje alespoň následující sekce:

Obsahuje většinu konfiguračních voleb. Pokud dokumentace k některé konfigurační volbě neuvádí její sekci, předpokládejte, že se nachází v této sekci.

Konfigurační volby pro databázi, která uchovává stav služby OpenStack.

Zastupování

Konfigurační soubor podporuje nahrazování proměnných. Po nastavení konfigurační volby se na ni lze odkazovat v pozdějších konfiguračních hodnotách, když před ní uvedete znak $, například $OPTION.

Následující příklad používá hodnoty rabbit_host a rabbit_port k definování hodnoty volby rabbit_hosts, v tomto případě jako 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

Chcete-li se vyhnout substituci, použijte

$$, nahradí se jedním $. Pokud je například vaše heslo LDAP DNS $xkj432, zadejte ho, takto:

 ldap_dns_password = $$xkj432

Kód používá řetězec Python. Template.safe_substitute() k implementaci nahrazování proměnných. Další podrobnosti o tom, jak je nahrazování proměnných řešeno.

Bílé znaky

Chcete-li do konfigurační hodnoty zahrnout bílé znaky, použijte řetězec s uvozovkami. Například:

 ldap_dns_passsword='a password with spaces'

Definice alternativního umístění konfiguračního souboru

Většina služeb a klientů příkazového řádku -manage načte konfigurační soubor. Chcete-li definovat alternativní umístění konfiguračního souboru, předejte při spouštění služby nebo volání příkazu -manage parametr –config-file CONFIG_FILE.

Závěr

Předvedli jsme instalaci OpenStack v systémech Red Hat, CentOS a Fedora Linux. Nyní můžete snadno nastavit vlastní prostředí privátního cloudu na službě Alibaba Cloud Elastic Compute Service (ECS) pomocí technologie OpenStack.

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.