Skoro wiemy co to jest OpenStack to pora przygotować sobie środowisko do pracy :) Cele są dwa: będę chciał pobawić się OpenStack oraz mam zamiar postawić bota na slacka i chciałbym przetestować to na OpenStacku. W tym celu warto mieć skonfigurowane środowisko :)
Co jest wymagane?
Wymagany jest Pyhton. Wszystkie narzędzia klienckie są napisane w python jak i są dostępne poprzez python package reposistory. Jeżeli mamy maca to pewnie mamy homebrew, jak nie to polecam zainstalować.
Mając homebrew możemy przystąpić do instalacji pythona
brew install python pip install --upgrade pip setuptools
To znam zainstaluje wersję 3 pythona. Jeżeli chcemy wersję drugą to musimy wykonać brew install python2
. Także brew zainstaluje zarówno pip
jak i setuptools
. Druga linijka jest tylko po to by te narzędzia zaktualizować do najnowszej wersji.
OpenStack
Teraz zaczyna się zabawa. Mamy wiele narzędzi dających nam różne funkcje. Jak dowiedzieliśmy się już poprzednio, modułów jest wiele. Na szczęście istnieje prosty sposób ich instalacji…
pip install python-PROJ_NAMEclient
Gdzie PROJ_NAME
to nazwa modułu jak na przykład magnum. W naszym przypadku tych narzędzi może być nawet 20. Do tego jest jeszcze klient OpenStack który umożliwia nam zarządzania chmurą. Nie wszystkim, częścią.
Zanim jednak zainstalujemy wszystkie narzędzia, zainstalujmy głównego klienta:
pip install python-openstackclient
Po zainstalowaniu mamy dostępne narzędzie openstack. Dla zabawy wpiszcie sobie openstack -h
:) czasami sądzę, że naprawdę da się lepiej, ale ludziom się nie chce ;)
Jeżeli przypadkowo wejdziecie w openstack bez podania parametrów to słowo kluczowe: exit i wyjdziecie z linii poleceń openstack.
To jeszcze nie koniec. By podłączyć się do naszej chmury potrzebujemy skonfigurować openstack tak by wiedział, gdzie i jak ma się podłączyć. W tym celu, jeżeli mamy chmurę do której możemy się podłączyć to otwieramy interfejs horizon (mhhh, nie pisałem o tym co? ;)) i wybieramy API Access i ściągamy albo plik RC albo yaml
. Te pliki to konfiguracja openstack. W zależności od pliku mamy różne formy ich wykorzystania.
Shell script odpalamy i mamy zmienne środowiskowe ustawione. Przy yaml
musimy go w odpowiednie miejsce wgrać:
~./config/openstack/clouds.yaml
Po zainstalowaniu i odpaleniu odpowiedniej formy konfiguracji możemy sprawdzić czy nam to wszystko działa:
openstack flavor list
Zwróci to nam listę możliwych maszyn wirtualnych które możemy postawić. W zależności od tego, gdzie i jak jest postawiony OpenStack ta lista będzie różna.
Pozostałe narzędzia
Teraz możemy zainstalować pozostałe narzędzia. Część z nich była już opisana. Nie potrzeba też instalować wszystkiego! Tylko to co jest nam potrzebne oraz to czego się nie da zrobić przez openstack. Problem jest: co się da a co się nie da? Na to pytanie nie odpowiem, przynajmniej teraz :(
barbican
- Key Manager Service API
ceilometer
- Telemetry API
cinder
- Block Storage API and extensions
cloudkitty
- Rating service API
designate
- DNS service API
fuel
- Deployment service API
glance
- Image service API
gnocchi
- Telemetry API v3
heat
- Orchestration API
magnum
- Container Infrastructure Management service API
manila
- Shared file systems API
mistral
- Workflow service API
monasca
- Monitoring API
murano
- Application catalog API
neutron
- Networking API
nova
- Compute API and extensions
sahara
- Data Processing API
senlin
- Clustering service API
swift
- Object Storage API
trove
- Database service API
Po wybraniu nazwy, wstawiamy ją w miejsce PROJ_NAME
:
pip install python-PROJ_NAMEclient
Trochę czekamy i mamy nowe narzędzie o nazwie PROJ_NAME
dostępne do zabawy :)
Podsumowanie
To tyle i aż tyle. Ciężko się połapać teraz co do czego i kiedy wykorzystywać. Fajnie jest mieć czasami opcje jednak bez przesady :)
Na szczęście nic więcej nie potrzebujemy. Żadnych pluginów do edytorów nic – tylko linia poleceń. Jednak utwierdzam się w przekonaniu, że muszę wiedzieć duuużo by móc coś tutaj zrobić. Wystarczy popatrzeć na listę komend openstack.
Zabawa będzie :)
PS.: ktoś wie, kiedy mam korzystać z openstack
a kiedy z na przykład glance
? Dzięki!