Zainstaluj OpenVPN:
winget install --exact --force --id OpenVPNTechnologies.OpenVPN
Uruchom OpenVPN GUI jako administrator
Zaimportuj konfigurację
Połącz się
Prawidłowe połączenie pokaże komunikat
Na potrzeby zajęć będziemy korzystali z instancji OpenStack w ramach CESNET
Identyczne kroki można wykonać na instancji PCSS gdy włączony jest VPN
Na etapie logowania wybierz EGI Check-in
Z menu po lewej wybierz Instances i kliknij w przycisk Launch Instance
Wypełnij wartości w kreatorze
NazwiskoImie.WlasnaNazwa
ubuntu-focal-x86_64
standard.tiny
group-project-network
nazwisko.imie
bo projekt jest współdzielonyKiedy instancja zostanie zbudowana, otrzyma prywatny adres IP
Aby móc się do niej połączyć, potrzeba skonfigurować tzw. pływający adres IP (Floating IP) klikając w przycisk Associate Floating IP
Jeżeli żaden adres nie jest dostępny, należy kliknąć w przycisk + i wybrać adres z puli public-muni-147-251-21-GROUP
Teraz powinna być możliwość połączenia się do maszyny poprzez SSH na pływający adres IP
ssh ubuntu@147.251.21.XYZ
Nazwa użytkownika ubuntu
wynika z użytego obrazu
początkowego dla instancji
Kiedy instancja nie jest potrzebna należy niezwłocznie ją usunąć zwalniając przy tym zasoby obliczeniowe (akcja Delete Instance dostępna w menu rozwijanym instancji)
Kurs opisujący jak korzystać z OpenStack przy pomocy klienta CLI znajduje się na platformie Moodle projektu EOSC-Synergy
Kurs oparty jest o CESNET, żeby korzystać z infrastruktury PCSS potrzeba:
Stworzyć plik
~/.config/fedcloud/site-config/PCSS.yaml
o zawartości:
---
gocdb: PCSS
endpoint: https://labitaas.man.poznan.pl:5000/v3
vos:
- name: university.eosc-synergy.eu
auth:
project_id: ed458f5b2f0a40728c1281d64f0c6cba
W komendach fedcloudclient
parametr
--site CESNET-MCC
zastąpić
--site PCSS
Nazwy obrazów czy typów (Flavor) mogą się różnić
Korzystając z CLI jesteśmy w stanie zaprogramować tworzenie i zarządzanie infrastrukturą
Otrzymujemy jednak bardzo podstawowe funkcje i większość logiki trzeba by zaprogramować samemu (np. sprawdź czy instancja istnieje, jeśli nie to stwórz ją i obsłuż błędy)
Podejściem, które lepiej wpisuje się w ideę Infrastructre-as-Code jest Terraform
W ramach Terraform opisujemy infrastrukturę w postaci zwięzłego, deklaratywnego kodu/konfiguracji
Oprogramowanie Terraform współpracuje z wieloma różnymi dostawcami infrastruktury (np. OpenStack)
Terraform przygotowuje listę zmian (operacji do wykonania), które poskutkują w pożądanej konfiguracji infrastruktury
Utwórz nowy katalog, a w nim plik main.tf
o
zawartości:
terraform {
required_providers {
openstack = {
source = "terraform-provider-openstack/openstack"
version = "1.47.0"
}
}
}
variable "token" {
type = string
}
provider "openstack" {
auth_url = "https://identity.cloud.muni.cz"
tenant_id = "a478488b79df46c4a086ecb7a321b038"
token = var.token
}
resource "openstack_compute_instance_v2" "example" {
name = "example"
image_name = "ubuntu-focal-x86_64"
flavor_name = "standard.tiny"
network {
name = "group-project-network"
}
key_pair = "TWOJA NAZWA KLUCZA"
}
resource "openstack_compute_floatingip_v2" "example_ip" {
pool = "public-muni-147-251-21-GROUP"
}
resource "openstack_compute_floatingip_associate_v2" "example_ip_associate" {
floating_ip = openstack_compute_floatingip_v2.example_ip.address
instance_id = openstack_compute_instance_v2.example.id
}
output "instance_address" {
value = openstack_compute_floatingip_v2.example_ip.address
}
Uruchom:
terraform init
W powyższym ustawieniu wymagane jest podanie żetonu
(token), ale jest to inny rodzaj żetonu niż OpenID Access Token
wykorzystywany przez fedcloud
Żetony OpenStack wydawane są przy użyciu komendy
openstack token issue
, które w przypadku
fedcloudclient
przybiera postać:
fedcloud openstack --site CESNET-MCC --vo university.eosc-synergy.eu token issue
Wartość żetonu wymagana przez Terraform znajduje się w polu
id
zwróconym przez powyższą komendę
Kiedy znasz już wartość żetonu, możesz zlecić uruchomienie instancji:
terraform apply
Kiedy operacja zakończy się sukcesem, zobaczysz na konsoli przypisany pływający adres IP:
(...)
instance_address = "147.251.21.XYZ"
Aby usunąć wszystkie utworzone zasoby (adres IP + instancję) wykonaj:
terraform destroy