Instalowanie OpenStack
Jeśli chcesz szybko rozpocząć pracę, przejdź tutaj:
Ta odpowiedź to bardziej szczegółowe spojrzenie na korzystanie z Juju z OpenStack.
Zakres
Platforma OpenStack jest potężna, a jej zastosowania różnorodne. Ta sekcja dokumentacji dotyczy przede wszystkim wdrażania „standardowego” systemu OpenStack z wykorzystaniem, między innymi, komponentów Canonical, takich jak MAAS, Juju i Ubuntu. W stosownych przypadkach zostaną wymienione inne metody i oprogramowanie.
Założenia
- Korzystanie z MAAS - najpierw postępuj zgodnie z tymi instrukcjami.
- Korzystanie z Juju
- Konfiguracja sieci lokalnej - w tym dokumencie założono, że masz odpowiednią konfigurację sieci lokalnej, w tym oddzielne interfejsy umożliwiające dostęp do chmury OpenStack. Idealne sieci są określone w [MAAS] [dokumentacji MAAS dla OpenStack].
Planowanie instalacji
Przed wdrożeniem jakichkolwiek usług bardzo przydatne jest dokonanie bilansu dostępnych zasobów i sposobu ich wykorzystania. OpenStack składa się z szeregu powiązanych ze sobą usług (Nova, Swift itp.), Z których każda ma różne wymagania dotyczące hostów. Na przykład usługa Swift, która zapewnia przechowywanie obiektów, ma inne wymagania niż usługa Nova, która zapewnia zasoby obliczeniowe.
Minimalne wymagania dla każdej usługi i zaleceń są określone w oficjalnym przewodniku operacyjnym OpenStack
Zalecana kompozycja węzłów do wdrażania OpenStack z MAAS i Juju polega na tym, że wszystkie węzły w systemie powinny być w stanie obsługiwać DOWOLNE usługi. Jest to najlepsza praktyka w zakresie niezawodności systemu, ponieważ ponieważ jeden fizyczny węzeł powinien ulec awarii, inny może zostać zmieniony, aby zajął jego miejsce. Dotyczy to oczywiście wszelkich wymagań sprzętowych, takich jak dodatkowe interfejsy sieciowe.
Jeśli ze względów ekonomicznych lub w inny sposób zdecydujesz się na użycie różnych konfiguracji sprzętu, powinieneś pamiętać, że Twoja zdolność do przezwyciężenia awarii sprzętu zostanie zmniejszona. Konieczne będzie również ukierunkowanie wdrożeń na określone węzły - patrz sekcja dokumentacji MAAS na temat znaczników .
Utwórz plik konfiguracyjny OpenStack
Będziemy używać uroków Juju do wdrażania części składowych OpenStack. Każdy urok zawiera wszystko, co jest potrzebne do skonfigurowania określonej usługi. Jednak poszczególne usługi mają wiele opcji konfiguracji, z których niektóre będziemy chcieli zmienić.
Aby to zadanie było łatwiejsze i bardziej powtarzalne, utworzymy osobny plik konfiguracyjny z odpowiednimi opcjami dla wszystkich usług. Jest to napisane w standardowym formacie YAML ( patrz www.yaml.org, jeśli nie jest ci to znane ).
Oto przykład openstack-config.yaml:
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
W przypadku wszystkich usług możemy skonfigurować opcję openstack-origin
wskazywania źródła instalacji. W takim przypadku będziemy polegać na ustawieniach domyślnych, które wskażą odpowiednie źródła dla wersji Ubuntu 14.04 LTS Trusty. Dalsza konfiguracja każdej usługi jest wyjaśniona w tym dokumencie .
Inne konfiguracje
Możliwe są inne ustawienia i opcje konfiguracji dla wdrażania usług OpenStack. Są one szczegółowo opisane w dokumentacji poszczególnych uroków używanych przez Juju, i można je sprawdzić, odwiedzając internetowy sklep z urokami Juju i szukając uroków za pomocą pola wyszukiwania w lewym górnym rogu strony. ustawienia konfiguracji są następnie wyszczególnione w sekcji „Konfiguracja” na stronie głównej, jak pokazano:
Wdrażanie OpenStack z Juju
Teraz, gdy konfiguracja jest zdefiniowana, możemy użyć Juju do wdrożenia i powiązania usług.
Inicjalizacja Juju
Juju wymaga minimalnej ilości konfiguracji. Tutaj zakładamy, że został on już skonfigurowany do pracy z klastrem MAAS (więcej informacji na ten temat można znaleźć w [Przewodniku instalacji Juju] [juju_install].
Po pierwsze, musimy pobrać obrazy i narzędzia, których użyje Juju:
juju sync-tools --debug
Następnie możemy utworzyć instancję bootstrap:
juju bootstrap --upload-tools --debug
Używamy przełącznika narzędzi do przesyłania, aby korzystać z lokalnych wersji narzędzi, które właśnie pobraliśmy. Przełącznik debugowania da pełne wyjście, które może być przydatne. Proces ten może potrwać kilka minut, ponieważ Juju tworzy instancję i instaluje narzędzia. Po zakończeniu możesz sprawdzić status systemu za pomocą polecenia:
juju status
Powinno to zwrócić coś takiego:
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
Wdróż Charms OpenStack
Teraz, gdy węzeł ładowania Juju jest już uruchomiony i możemy uruchomić usługi wymagane do przeprowadzenia instalacji OpenStack. Aby poprawnie skonfigurować te usługi podczas ich wdrażania, wykorzystamy zdefiniowany wcześniej plik konfiguracyjny, przekazując go wraz z --config
przełącznikiem przy każdej komendzie wdrażania. Podaj nazwę i ścieżkę pliku konfiguracyjnego, jeśli jest inny.
Wdrażanie usług w poniższej kolejności jest przydatne, ale nie jest konieczne. Zalecane jest również otwarcie dodatkowego okna terminala i uruchomienie polecenia juju debug-log
. Spowoduje to wyświetlenie dzienników wszystkich uruchomionych usług i może być przydatne do rozwiązywania problemów.
Zaleca się także juju status
okresowe uruchamianie polecenia, aby sprawdzić, czy każda usługa została zainstalowana i działa poprawnie. Juju automatycznie spróbuje pobrać najlepszą możliwą wersję uroku z internetowego sklepu z urokami. Jeśli instalujesz z sieci ograniczonej lub zamkniętej, możliwe jest wstępne pobranie wymaganych uroków. Zobacz [dokumentację uroków offline] [charms-offline].
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
Dodaj relacje między usługami OpenStack
Chociaż usługi są teraz wdrażane, nie są jeszcze połączone ze sobą. Każda usługa istnieje obecnie w izolacji. Używamy tego juju add-relation
polecenia, aby uświadomić sobie nawzajem i skonfigurować odpowiednie połączenia i protokoły. O tę dodatkową konfigurację dbają same uroki.
Powinniśmy zacząć dodawać relacje między talizmanami, konfigurując usługę autoryzacji Keystone i jej bazę danych, ponieważ będą one potrzebne wielu innym połączeniom:
juju add-relation keystone mysql
Czekamy, aż relacja zostanie ustawiona. Po zakończeniu sprawdź go ze statusem juju:
juju status mysql
juju status keystone
Uregulowanie tej usługi może zająć kilka chwil. Chociaż z pewnością można nadal dodawać relacje (Juju zarządza kolejką oczekujących działań), może to przynieść efekt przeciwny do zamierzonego pod względem całkowitego czasu, ponieważ wiele relacji odnosi się do tych samych usług.
Konieczne są również następujące relacje:
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone
Na koniec wynik statusu juju powinien pokazywać wszystkie relacje jako zakończone. Chmura OpenStack działa teraz, ale zanim będzie gotowa do użycia, należy ją wypełnić dodatkowymi składnikami.