# Oktawave Terraform
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.
Dostępne są 2 ścieżki instalacji Terraform'a:
- pobranie wykonywalnej binarki
- zainstalowanie go za pomocą APT lub właściwego dla systemu managera pakietów.
Poniższy przykład opiera się na pobraniu wykonywalnej binarki
# Pobranie pliku wykonywalnego i uruchomienie jej razem z wtyczkami providera:
1. Pobierz konkretną paczkę TUTAJ (opens new window) 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
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, stąd żeby wykorzystać dodatek Oktawave terraform przejdź do katalogu ~/terraform_oktawave i pobierz odpowiednią dla systemu wtyczkę stąd:
https://github.com/oktawave-code/terraform-provider-oktawave/releases/ (opens new window)
którą należy zapisać w katalogu ~/terraform_oktawave a następnie zmienić jego nazwę na terraform-provider-oktawave
przykładowo, dla systemu Linux
cd ~/terraform_oktawave && wget https://github.com/oktawave-code/terraform-provider-oktawave/releases/download/v0.4.0/terraform_linux_amd64
zmieniamy nazwę wtyczki i nadajemy jej prawa do wykonywania:
mv terraform_linux_amd64 terraform-provider-oktawave && 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://pl1-api.oktawave.com/services"
}
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 =1021
# INSTANCES COUNT:
instances_count = 1
# FREEMIUM PLAN (IF AVAILABLE):
isfreemium=false
}
Token wygenerowany w PL-1-WAW można również wykorzystać podczas operacji w PL-2-KRK.
Endpoint API dla regionu PL-2-KRK:
https://pl2-api.oktawave.com/services
Plik 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
Stworzenie klienta API do pobrania tokena W Nowym Panelu Administracyjnym (opens new window) 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.
# 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):
powinno być curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 5705017483762801c55c131122c9754a' 'https://api.oktawave.com/services/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 podaj jego ID np. 12. Więcej o słownikach tutaj.
Uruchomienie infrastruktury
terraform init & terraform apply
Usunięcie infrastruktury
Terraform destroy
← Słowniki Architektura →