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!