# Jak stworzyć Linked Clone?

# Czym jest Linked Clone?

Linked Clone jest rozwiązaniem polegającym de facto na stworzeniu snapshota na maszynie źródłowej. Każdy dysk bazowy klona jest tak naprawdę snapshotem (punktem przywracania) nad dyskiem bazowym maszyny źródłowej. Po wykonaniu takiego klona można go włączać i wyłączać.

Więcej o snapshotach znajdziesz tutaj.

Zmiany na dyskach klonów są przechowywane na tych dyskach, które są de facto snapshotami umieszczonymi nad dyskiem bazowym maszyny źródłowej.

# Jak uruchomić Linked Clone?

Przejdź do udostępnionej przez Oktawave implementacji klienta Swagger dostępnej pod adresem: https://api.oktawave.com/services (opens new window).

Zautoryzuj się danymi dostępowymi, których używasz przy logowaniu do Panelu Admina.

Rozwiń zakładkę ACCOUNT i kliknij TRY IT OUT!. W odpowiedzi otrzymasz gotowe żądanie, które wklejone w terminal da konkretną odpowiedź.

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 0fc64d0f2790e255d23a5e360acee144' 'https://api.oktawave.com/services/account'

Powyższe polecenie daje zwrotkę w której zobaczysz ogólne informacje o koncie. Dodanie | json_pp na końcu polecenia pozwoli wyświetlić te informacje w bardziej czytelnej formie.

Kluczowy tutaj jest parametr Bearer, czyli token autoryzacyjny. Możesz oczywiście taki token pobrać za pomocą API, wklejając odpowiedni request bezpośrednio w terminal.

# Tworzenie klienta API

W Panelu Admina przejdź do zakładki Konto > Zarządzanie kontem > Klienci API. Kliknij Dodaj klienta API.

Warto jest zaznaczyć wszystkie dostępne prawa, read only oraz read.write

Secret klienta API należy zachować, gdyż nie będzie możliwe ponowne jego wyświetlenie, natomiast możliwe jest wygenerowanie nowego Secret klienta API.

Nadaj klientowi wybrane prawa oraz zapamiętaj/zapisz ID klienta API i Secret klienta API, które zwróci system po zapisaniu zmian.

# Pobranie tokena

Poniższa część poradnika stanowi jedynie uproszczone przedstawienie procesu generowania tokenu.
Więcej o API, autoryzacji oraz tokenach znajdziesz tutaj.

Teraz możesz uzupełnić polecenie zgodnie z wytycznymi poniżej:

curl -k -X POST -d "grant_type=password&username=login.panel&password=haslo.panel&scope=oktawave.api offline_access" -u "clientId:clientSecret" 'https://id.oktawave.com/core/connect/token'

login.panel oraz haslo.panel są danymi dostępowymi do Panelu Admina.
scope czyli prawa dostępowe można ustawić jako oktawave.api - czyli read/write, lub oktawave.api.readonly - czyli read only - ważne aby ten parametr pokrywał się z tym co zostało zaznaczone w panelu podczas tworzenia klienta API.
clientId i clientSecret uzupełnij zgodnie z informacjami zwróconymi w panelu podczas tworzenia klienta API.

Odpowiedź powinna wyglądać mniej więcej tak:

{"access_token":"3089bb2ef8928dc4fd78694b1866f2c8","expires_in":3600,"t
oken_type":"Bearer","refresh_token":"5048f8463aa61d61199bd5ad8329a05d"}

W **** tym przypadku należy zwrócić uwagę na wartość : access_token

W podanym przykładzie Bearer to: **** 3089bb2ef8928dc4fd78694b1866f2c8 - jest to wartość testowa przytoczona na potrzeby poradnika, która zmieni się w zależności od generowanego tokena.

# Pobranie listy instancji

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 3089bb2ef8928dc4fd78694b1866f2c8' 'https://api.oktawave.com/services/instances' | json_pp

W odpowiedzi należy poszukać podobnego pola:

"DnsAddress" : "72295-1-4c491c-01.services.oktawave.com",
 "SupportType" : null,
 "Id" : 72295,

Początek nazwy hosta to także ID maszyny.

# Tworzenie Linked Clone

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Bearer 3089bb2ef8928dc4fd78694b1866f2c8' -d '{
 "CloneName": "NAZWALINKEDCLONE",
 "PowerOn": true
}' 'https://api.oktawave.com/beta/instances/[ID_OCI]/clone_linked_ticket'

W odpowiedzi otrzymasz zwrotkę o zleconym zadaniu. LINKED CLONE powinien pojawić się w Panelu Admina (opens new window).

# Usunięcie Linked Clone

Klona można usunąć z poziomu Panelu Admina tak jak standardową instancję, lub za pomocą API wydając polecenie:

curl -X DELETE --header 'Accept: application/json' --header 'Authorization: Bearer 3089bb2ef8928dc4fd78694b1866f2c8' 'https://api.oktawave.com/services/instances/[ID_OCI]'

# O czym warto wiedzieć?

  1. Funkcja tworzenia Linked Clone dostępna jest wyłącznie poprzez API.
  2. Funkcja ta nie jest jeszcze udokumentowana.
  3. Nie jest obsługiwana jeszcze w NAP w formie "przycisku".
  4. Na czas istnienia jakichkolwiek Linked Clone maszyna źródłowa jest blokowana
  5. Linked Clone podlegają limitom OCI oraz OVS na koncie.
  6. Linked Clone nie można wykonać na masynie, która posiada dyski współdzielone.