Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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