Terraform Oktawave

Czyli jak wykorzystać popularne narzędzie do orkiestracji w celu zdeployowania usług w Oktawave

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.

Pobranie pliku wykonywalnego i uruchomienie jej razem z wtyczkami providera:

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 size
init_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 = 1268
template_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

Autoryzacja: tworzenie klienta i pobranie tokena

  1. 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.

  2. 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.

Skąd wziąć dane do pliku konfiguracyjnego?

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.

Uruchomienie infrastruktury
Uruchomienie infrastruktury
terraform init & terraform apply
Usunięcie infrastruktury
Usunięcie infrastruktury
terraform destroy