Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Poutan käyttö OpenStack-rajapintojen kautta

Tässä artikkelissa esitellään Poutan käyttöä OpenStack-rajapintojen kautta. OpenStack-rajapinnat tarjoavat pääsyn kaikkiin OpenStack-komponentteihin ja niiden resursseihin, kuten novaan (laskenta), glanceen (virtuaalikonelevykuvat), keystoneen (todennus), swiftiin (oliotallennus), cinderiin (lohkopohjainen tallennus) ja neutroniin (verkotus).

OpenStack-rajapinnat ovat REST-rajapintoja, ja niiden kanssa voi toimia useilla tavoilla. Näitä ovat komentorivityökalujen (esim. openstack) käyttö, suorat HTTP-pyynnöt (esim. curl-työkalulla) sekä jokin asiakaskirjastoista (esim. openstacksdk).

Tässä artikkelissa tarkastelemme lyhyesti, miten cURLilla tehdään suoria HTTP-pyyntöjä OpenStack-rajapintoihin, ja siirrymme sitten katsomaan, miten openstacksdk:ta voidaan käyttää joidenkin rutiinitehtävien automatisointiin esimerkinomaisesti.

Poutan käyttö cURLin kautta

Ennen kuin voimme käyttää cURLia tai muuta asiakasohjelmaa rajapintapyyntöjen tekemiseen, meidän täytyy asettaa joitakin ympäristömuuttujia, jotka sisältävät Poutan käyttöoikeustietomme. Tämä voidaan tehdä suorittamalla skripti, jonka voit ladata Poutan selainkäyttöliittymästä kirjautumisen jälkeen. Katso lisätietoja viimeisestä osiosta kohdasta OpenStack-työkalujen asentaminen.

Kun olet saanut selainkäyttöliittymästä käyttöoikeustietosi sisältävän skriptin (<project_name>-openrc.sh), voit lisätä ympäristömuuttujat suorittamalla skriptin näin:

source <project_name>-openrc.sh

Ja antamalla pyydettäessä CSC-käyttäjätunnuksesi käyttäjänimen ja salasanan. Tämän jälkeen voit tehdä pyyntöjä Pouta-pilveen. Tavallisesti aloitat tunnistautumalla näin:

curl -v -s  -H "Content-Type: application/json"   -d '
{"auth": {
    "identity": {
      "methods": ["password"],
      "password": {
        "user": {
          "name": "'$OS_USERNAME'",
          "domain": {"name": "'$OS_USER_DOMAIN_NAME'"},
          "password": "'$OS_PASSWORD'"
        }
      }
    },
    "scope": {
      "project": {
        "domain": {"id": "'$OS_PROJECT_DOMAIN_ID'"},
        "name": "'$OS_PROJECT_NAME'"
      }
    }
  }
}' "$OS_AUTH_URL/auth/tokens?nocatalog" | python -m json.tool

Ja saat tunnisteesi vastauksen X-Subject-Token-otsakkeesta. Pyyntömme vastausrunko sisältää myös muuta hyödyllistä tietoa, kuten tunnisteen vanhenemispäivän ja -ajan muodossa "expires_at":"datetime".

Kun tunnistautuminen on tehty, voimme tehdä lisää CRUD-pyyntöjä eri rajapintoihin, jotka hallitsevat pilviresurssejamme. Voimme esimerkiksi pyytää laskentarajapinnalta luettelon saatavilla olevista virtuaalikoneiden flavor-tyypeistä näin:

export OS_TOKEN=<copy-your-token-here>
export OS_COMPUTE_API=https://pouta.csc.fi:8777/v2.1
curl -s -H "X-Auth-Token: $OS_TOKEN" \
  $OS_COMPUTE_API/flavors \
  | python -m json.tool

Voit tarkistaa Poutan selainkäyttöliittymästä oikeat arvot Poutan rajapintojen päätepisteille, kuten OS_COMPUTE_API.

Poutan käyttö asiakaskirjastojen kautta

Openstacksdk on asiakaskirjasto (SDK) OpenStack-pilvien kanssa toimivien sovellusten ja palveluiden rakentamiseen. Se tarjoaa yhtenäisen ja kattavan ominaisuusjoukon OpenStackin eri komponenttien kanssa toimimiseen. SDK toteuttaa Python-sidonnat OpenStack-rajapintaan, mikä mahdollistaa automaatiotehtävien suorittamisen Pythonissa tekemällä kutsuja Python-olioihin sen sijaan, että tehtäisiin REST-kutsuja suoraan.

Jotta voimme käyttää sitä sovellustemme kanssa, meidän täytyy ensin asentaa SDK näin:

pip install openstacksdk

Seuraavaksi meidän täytyy tarjota asetukset ja käyttöoikeustiedot clouds.yaml-tiedoston kautta, jonka voi ladata Poutan selainkäyttöliittymästä kirjautumisen jälkeen. Openstacksdk odottaa tämän tiedoston olevan jossakin seuraavista kansioista: current-hakemistossa, ~/.config/openstack-hakemistossa tai /etc/openstack-hakemistossa. clouds.yaml näyttää tältä:

clouds:
  openstack:
    auth:
      auth_url: https://pouta.csc.fi:5001/v3
      username: "username"
      project_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      project_name: "project_xxxxxx"
      user_domain_name: "Default"
    regions:
    - regionOne
    interface: "public"
    identity_api_version: 3

Sinun tulee lisätä salaisuudet, kuten salasana-kenttä, erilliseen tiedostoon nimeltä secure.yaml ja sijoittaa se samaan kansioon kuin clouds.yaml-tiedosto. secure.yaml-tiedoston tulee näyttää tältä:

clouds:
  openstack:
    auth:
      password: XXXXXXXXXX

Nyt voit suorittaa seuraavan yksinkertaisen esimerkin, joka listaa saatavilla olevat virtuaalikoneiden flavor-tyypit:

#!/usr/bin/python3
import openstack

# Initialize and turn on debug logging
openstack.enable_logging(debug=True)

# Initialize cloud
conn = openstack.connect(cloud='openstack')

# list VM flavors  
for flavor in conn.compute.flavors():
    print(flavor.to_dict())

Käytössä olevien porttien listaaminen

Voit nähdä cPoudan käyttämien porttien luettelon täällä
Voit myös hakea tämän luettelon seuraavalla komennolla:

openstack catalog list

public-merkityt portit ovat ne, joita tarvitset.

Ulkoinen dokumentaatio

Yksityiskohtaisempaa tietoa löytyy OpenStack SDK -dokumentaatiosta.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta