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
- – 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