Oktawave umożliwia wdrażanie na infrastrukturze wielu usług naraz poprzez zastosowanie orkiestracji Terraform. W praktyce, należy zainstalować Terraform, pobrać wtyczkę Providera z GitHub'a Oktawave, żeby po autoryzacji był gotowy do użycia. Samo pobranie tokena potrzebnego do uzyskania autoryzacji w ramach API Oktawave, jak również pobranie wartości dla plików konfiguracyjnych zostało opisane w dalszej części artykułu.
Zainstaluj Terraform zgodnie z: https://learn.hashicorp.com/terraform/getting-started/install dla linux (pełna procedura instalacji znajduje się w linku powyżej): 1. Pobierz konkretną paczkę TUTAJ i rozpakuj ją, na przykład w katalogu domowym użytkownika:
Polecenie może różnić się w zależności od nazwy pobranego pliku
wget https://releases.hashicorp.com/terraform/0.12.19/terraform_0.12.19_linux_amd64.zip && unzip terraform_0.12.19_linux_amd64.zip
oraz rozpakuj plik:
unzip terraform_0.12.19_linux_amd64.zip
2. Na potrzeby instalacji utwórz katalog terraform_oktawave do którego należy przenieść plik o nazwie terraform powstały w wyniku rozpakowania archiwum:
mkdir terraform_oktawave && mv terraform terraform_oktawave/
3. Następnie należy dodać ścieżkę (PATH) w ukrytym pliku .profile powłoki BASH (można użyć dowolnego edytora) do folderu z plikiem wykonywalnym Terraform:
ls -la && nano .profile
dodając do niego w końcowej części pliku linię:
export PATH=$PATH:~/terraform_oktawave
4. Zapisz zmiany i wyjdź z edytora.
Jeśli katalog terraform został umieszczony w innym miejscu, należy zmienić ścieżkę przy $PATH: odpowiednio)
5. Następnym krokiem jest aktualizacja ścieżki PATH dla obecnej sesji:
source ~/.profile
Dzięki temu będziesz mógł wywołać plik wykonywalny z dowolnego miejsca w systemie. Teraz należy sprawdzić, czy można wywołać aplikację:
terraform --version
w odpowiedzi, powinniśmy uzyskać informację o wersji oprogramowania odpowiadającej pobranej:
Terraform v0.12.19
Terraform korzysta z wtyczek zlokalizowanych w domyślnym katalogu instalacji. Nie jest on jednak w stanie pobierać innych niż domyślne wtyczki, stąd żeby wykorzystać wtyczkę Oktawave terraform przejdź do katalogu ~/terraform_oktawave i pobierz odpowiednią dla systemu wtyczkę stąd: https://github.com/oktawave-code/terraform-provider-oktawave/releases/ którą należy zapisać w katalogu ~/terraform_oktawave a następnie zmienić jego nazwę na terraform-provider-oktawave
Nadaj mu prawa wykonywalności komendą:
chmod +x terraform-provider-oktawave
Następnie utwórz prosty plik konfiguracyjny dla infrastruktury:
# PROVIDER & ACCESS:provider "oktawave" {access_token="YOUR-ACCESS-TOKEN"api_url = "https://api.oktawave.com/beta"}resource "oktawave_oci" "my_oci" {# NAME:instance_name="TERRAFORM_OCI"# OCI AUTH METOD:authorization_method_id=1399# OVS (STORAGE) PARAMETERS:# disk class (tier)disk_class=896# disk sizeinit_disk_size=5# IP ADDRESS:# Available values: id of ip address that you want to set as default# Comment: Replace default ip address that would be created as part of instance setup# If you comment this field, ip address will be computed & obtained by default# ip_address_id=id# SUBREGION ID:subregion_id=7# INSTANCE CLASS & OS TYPE:type_id = 1268template_id =776# INSTANCES COUNT:instances_count = 1# FREEMIUM PLAN (IF AVAILABLE):isfreemium=false}
który należy zapisać w katalogu aplikacją/plikiem wykonywalnym terraform. W katalogu tym powinny się znajdować w sumie 3 pliki, żeby wszystko zadziałało:
plik wykonywalny terraform
plik wykonywalny terraform-provider-oktawave
plik konfiguracyjny dla infrastruktury z rozszerzeniem .tf
Stworzenie klienta API do pobrania tokena W Nowym Panelu Administracyjnym przejdź do zakładki Konto: Zarządzanie kontem > Klienci API. Tworzymy klienta, nadajemy mu prawa i ZAPISUJEMY Id klienta API i Secret klienta API, które nam zwróci system po zapisaniu zmian.
Pobranie tokena Token autoryzacyjny (Bearer) ma format kilkunastu znaków i jest otrzymywany w odpowiedzi na żądanie autoryzacyjne do API Oktawave. Pobierz go następującym żądaniem:
curl -k -X POST -d "grant_type=password&username='[LOGIN]'&password='[HASLO-DO-PANELU]'&scope=oktawave.api" -u "[Id klienta API]:[Secret klienta API]" 'https://id.oktawave.com/core/connect/token'
w żądaniu należy uzupełnić dane autoryzacyjne do Panelu NAP oraz ID klienta API/Secret klienta API.
w odpowiedzi otrzymamy nasz token - Bearer, na przykład:
{"access_token":"5705017483762801c55c131122c9754a","expires_in":86400,"token_type":"Bearer"}
3. Zapisz wartość "access_token" do późniejszego wykorzystania.
Dane do konfig'a .tf można pobrać ze słownika w API Oktawave. Żeby to zrobić należy podać jedno żądanie, w którym musisz przekazać otrzymany na drodze autoryzacji TOKEN (Bearer):
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 5705017483762801c55c131122c9754a' 'https://api.oktawave.com/beta/dictionaries/
W przypadku gdy po dictionaries/
nic nie wpiszesz, żądanie zwróci listę wszystkich słowników, jeśli chcesz konkretny z nich otworzyć, w zależności od zasobu pdaj jego ID np. 12.
terraform init & terraform apply
terraform destroy