it Blog

To będzie pełny samouczek na temat instalacji OpenStack (minimalna konfiguracja). Bardzo chciałbym wypróbować open-source cloud OS, A OpenStack jest jednym z poważnych rozwiązań, z którego korzysta wiele instytucji i firm. Cern jest jednym z użytkowników, a Red Hat jest zwolennikiem OpenStack.

pamiętaj: nawet po tym samouczku „wyprasowanym” zostaniesz powitany błędami po skonfigurowaniu wszystkiego i będziesz musiał zbadać więcej, aby twój OpenStack działał poprawnie. O niektórych problemach napiszę w kilku szybkich przewodnikach.

OpenStack ma również reputację skomplikowanego w instalacji i utrzymaniu i niezbyt stabilnego. Czytałem dużo na temat OpenStack, przejrzałem wiele dokumentacji i to jest wynik. Obejmie to ręczną instalację Train release, a ta obszerna seria obejmie każdy komponent instalacji Minimal OpenStack (nie pozwól, aby ten minimal cię oszukał, jest wiele do zrobienia).

istnieje kilka różnic między oficjalną dokumentacją OpenStack a samym wdrożeniem, więc ten samouczek powinien również pomóc ci zaoszczędzić niezliczone godziny szukania błędów i rozszyfrowywania błędów.

procedura jest żmudna, ale Gorąco polecam, ponieważ na jej końcu będziesz miał dobre zrozumienie podstawowych zasad OpenStack.

Więcej na ten temat następnym razem do roboty.

jest krzywa uczenia się i z tego, co czytałem, uważam, że OpenStack jest w tej chwili stabilnym rozwiązaniem dla Twoich potrzeb w chmurze.

ale zobaczymy po drodze, zanurkujmy.

będę używał CentOS 7 do moich instalacji (V.1908). Będę tworzyć swoje laboratorium w VMware Fusion / Workstation. Początkowa instalacja CentOS jest minimalna bez GUI lub jakichkolwiek dodatków.

wszystkie moje maszyny wirtualne będą miały rdzenie 4CPU i 8GB PAMIĘCI RAM z minimum 120GB dysku twardego.Minimalne wymagania znajdziesz tutaj- https://docs.openstack.org/install-guide/overview.html

zwróć uwagę na dodatkowe wymagania dotyczące komponentów sieciowych i napędowych i dodaj je odpowiednio do swojego laboratorium.

moje laboratorium ma dostęp do Internetu.

po drodze będę śledził dokumentację OpenStack – https://docs.openstack.org/install-guide/common/conventions.html

zainstaluję Train build, który jest obecny. Zacznę od węzła Kontrolera 1 i węzła obliczeniowego 1.

Sieć dostawcy będzie wyglądać następująco (do tej konfiguracji potrzebny jest dostęp do Internetu):

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

stworzę później sieć w zakresie 203.0.113.0/24, która będzie siecią zarządzającą.

poniżej znajdują się również nazwy i adresy IP maszyn (potrzebne będą również w pliku hosts):

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

zmień nazwę hosta maszyny

dla każdej maszyny w laboratorium Zmień nazwę hosta. Zmienię moje nazwy hostów na nazwy, które podałem powyżej.

polecenie znajduje się poniżej, kontroler to nazwa jednej z maszyn, zmień ją na to, co uważasz za stosowne.

sudo hostnamectl set-hostname controller

oto jak wygląda Zmiana po restarcie.

nazwałem moje maszyny – controller, compute1, block1, object1, object2.

Konfiguracja rozdzielczości nazw

Edycja interfejsu sieciowego znajdującego się w/etc/sysconfig/network-scripts

w moim przypadku mam interfejs ifcfg-ens33

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

edytowałem następujące linie (przykład maszyny kontrolera):

BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no

oto jak to wygląda

restart maszyny po ustawieniu konfiguracji IP. Powtórz te kroki dla wszystkich maszyn w laboratorium (oczywiście Ustaw inny adres IP dla każdej z nich).

zaktualizuj instalację CentOS

zanim przejdziemy dalej, zaktualizujemy nasze instalacje CentOS. W ten sposób potwierdzimy również naszą łączność z Internetem.

sudo yum update -y

Edytuj plik hostów

ponownie musimy to zrobić na każdej maszynie. Będziemy edytować plik hosts, tak, że maszyny mogą zobaczyć się nawzajem po nazwie.

sudo vi /etc/hosts/

To jest to, co musimy wprowadzić

10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2

oto jak wygląda mój plik

jeśli zrobiliśmy wszystko ok, powinniśmy teraz być w stanie ping z kontrolera do compute1 i odwrotnie przez nazwę. (Upewnij się, że ping jest dostępny przez firewall)

działa.Wprowadź te wartości do każdego pliku hosts NA każdej maszynie i upewnij się, że możesz pingować każdą maszynę i testować z każdej maszyny.

Konfiguracja usługi NTP

dokładny pomiar czasu jest ważny, więc ustawimy serwer czasu i dołączymy do niego klientów. Serwer czasu będzie naszym serwerem kontrolera i klientem wszystkich innych maszyn.

konfiguracja serwera NTP

zrobimy to na naszym serwerze kontrolera.

sudo yum install chrony -y

Włącz i uruchom usługę, uruchamiając

sudo systemctl start chronydsudo systemctl enable chronyd

Możesz również sprawdzić status usługi, uruchamiając

systemctl status chronyd

następnie edytujemy/etc / chrony.plik conf

sudo vi /etc/chrony.conf

w tym tutorialu zostawię domyślne serwery NTP centos. W przeciwnym razie, jeśli chcesz edytować serwery NTP, można, poprzez dodanie polecenia poniżej (zastąpić ntp_server z nazwą serwera NTP)

server NTP_SERVER iburst

również będziemy musieli włączyć dostęp do naszych klientów NTP z sieci lokalnej przez komentowanie i edytowanie następujący wiersz

allow 10.0.0.0/24

Oto moja konfiguracja. Zielona część to miejsce, w którym wejdziesz na swoje serwery NTP, a czerwona część to włączony dostęp z naszej sieci lokalnej do synchronizacji czasu.

Uruchom ponownie serwer lub usługę chrony, wpisując

sudo systemctl restart chronyd

Sprawdzimy, czy nasz serwer synchronizuje czas, wpisując erwis działa dla mnie od 2009 roku, a w 2009 roku serwis został uruchomiony w 2009 roku.

włączymy go również poprzez zaporę sieciową

sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload

konfiguracja klientów NTP

te kroki należy wykonać na pozostałych maszynach.

ponownie, musimy zainstalować chrony

sudo yum install chrony

Włącz i uruchom usługę NTP

sudo systemctl start chronydsudo systemctl enable chronyd

Po tym ponownie musimy edytować/etc / chrony.conf

sudo vi /etc/chrony.conf

musisz usunąć wszystkie coment wszystkie serwery NTP i wprowadzić następujące

server controller iburst

zostaw wszystko tak, jak jest i zamknij plik. Tak wygląda mój.

ponownie uruchom usługę NTP

sudo systemctl restart chronyd

i sprawdźmy, czy działa

chronyc sources

to działa, klient komunikuje się z serwerem NTP.

i, na serwerze NTP jeśli wprowadzimy polecenie

chronyc clients

zobaczymy, że compute1 jest klientem NTP

powtórz krok na pozostałych maszynach.

Pakiety OpenStack

te kroki muszą być wykonane na wszystkich węzłach. Jeśli nie zaktualizowałeś instalacji CentOS, a także wyłączyłeś Repo EPEL.

!!!///Tylko dla instalacji RED HAT, CENTOS pomija to

subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms

uruchom następujące polecenie (instalujemy wydanie pociągu)

sudo yum install centos-release-openstack-train

następne polecenie, które uruchomimy, to

sudo yum upgrade

uruchom ponownie po nim i wybierz nowe jądro, aby je aktywować.

następnym poleceniem będzie

sudo yum install python-openstackclient

i w końcu musimy zintegrować naszą instalację OpenStack z SELinux

sudo yum install openstack-selinux

baza danych SQL

zostanie zainstalowana na węźle kontrolera.Zainstalujemy MariaDB.

sudo yum install mariadb mariadb-server python2-PyMySQL

Po zakończeniu instalacji będziemy musieli edytować openstack.conf znajduje się w /etc / my.cnf.d

sudo vi /etc/my.cnf.d/openstack.conf

utworzymy sekcję mysqld z następującymi informacjami (upewnij się, że bind-address jest adresem kontrolera)

bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8

oto jak to wygląda w moim przypadku

włącz i uruchom MariaDB

sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service

dodamy również wyjątek Firewall

sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload

wreszcie zabezpieczymy naszą instalację i ustawimy hasło dla root SQL użytkownik

sudo mysql_secure_installation

Kolejka komunikatów

OpenStack używa kolejki komunikatów do koordynuj operacje i status między służbami. Zwykle działa na kontrolerze, więc zainstalujemy go na kontrolerze. Zainstalujemy RabbitMQ

Instalacja

sudo yum install rabbitmq-server

Uruchom i włącz serwis

sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service

Dodaj do niego użytkownika openstack. Zamień RABBIT_PASS na hasło.

sudo rabbitmqctl add_user openstack RABBIT_PASS

Ustaw uprawnienia

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

są to ustawienia zapory dla 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

opcjonalne polecenie SELinux

setsebool -P nis_enabled 1

memcached

mechanizm uwierzytelniania usług tożsamości używa Memcached do pamięci podręcznej tokenów. Usługa memcached zazwyczaj działa na węźle kontrolera, więc zainstaluję ją na węźle kontrolera.

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.usługi org-OpenStack mogą używać Etcd, rozproszonego niezawodnego magazynu wartości klucza do rozproszonego blokowania kluczy, przechowywania konfiguracji, śledzenia aktywności usługi i innych scenariuszy.

Etcd należy zainstalować na węźle kontrolera.

Instalacja

sudo yum install etcd

następnie edytujemy/etc/etcd / etcd.conf

sudo vi /etc/etcd/etcd.conf

powinieneś edytować plik w ten sposób I zmienić wartości poniżej, aby pasowały do twojego IP lub nazwy kontrolera.

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

tak wygląda mój plik

Włączanie i uruchamianie usługi

sudo systemctl enable etcdsudo systemctl start etcd

dodatkowe ustawienia zapory

sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload

tak więc, jesteśmy mniej więcej „skończeni” z częścią inicjalną, teraz będziemy robić Minimalne wdrożenie dla pociągu.

Minimalne wdrożenie dla pociągu

Ok, więc jak na razie udało się. Będziemy teraz robić Minimalne wdrożenie usług dla pociągu. Więcej szczegółów można znaleźć tutaj – https://docs.openstack.org/install-guide/openstack-services.html

usługi muszą być zainstalowane w określonej kolejności, jak pokazano poniżej

od tego poradnika idzie już trochę długo, mam zamiar zakończyć to tutaj, i obejmować każdą z powyższych usług w osobnym samouczku.

ważne jest, aby wykonać wszystkie usługi w dokładnej kolejności, jak są poniżej.

poniżej znajdują się linki

  1. – instalacja keystone dla pociągu

2. Serwis obrazowy-przegląd instalacji pociągu

3. Placement service – instalacja placement dla pociągu

4. Serwis komputerowy-instalacja nova dla pociągu

5. Usługa sieciowa-instalacja neutronowa dla pociągu

radzimy również zainstalować następujące komponenty po zainstalowaniu minimalnych usług wdrożeniowych:

6. Dashboard – instalacja horizon dla pociągu

7. Usługa przechowywania bloków-instalacja pustaków dla pociągu

8. Object Storage service – swift installation for Train

Additional links for after installation for errors you may encounter:

Disclaimer

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.