OpenStackin komentorivikäyttöliittymätyökalut Poutaan
Tässä artikkelissa kuvataan Poudan käyttöä komentorivillä. Jos et ole vielä tehnyt sitä, aloita asentamalla OpenStack-työkalut.
Voit tehdä suurimman osan tarvitsemistasi asioista cPoudan ja ePoudan OpenStackin (Horizon) selainkäyttöliittymässä. Joskus komentorivityökalujen käyttö on kuitenkin kätevämpää tai jopa välttämätöntä. OpenStack on jaettu alikomponentteihin, joista kukin huolehtii tietyistä tehtävistä, kuten virtuaalikoneiden, taltioiden tai levyvedosten hallinnasta. Jokaisella näistä alikomponenteista on oma API, jota voidaan käyttää joko ohjelmallisesti tai päätteen kautta tässä luvussa esiteltävillä komentorivityökaluilla.
Komentorivityökaluja käytetään palvelun käytön hallintaan, joten ne kannattaa asentaa joko omalle kannettavalle/pöytäkoneelle tai toiselle palvelimelle, jota käytät palvelun hallintaan.
Poudan käyttäminen komentoriviltä
Tässä artikkelissa luetellaan joitakin peruskomentoja OpenStackin yleisimpiin toimintoihin. Kunkin toiminnon kohdalla näytämme komennon, jossa käytetään yleistä OpenStackin komentorivityökalua.
Suositellut asiakasohjelmaversiot
Näiden OpenStack-asiakasohjelmapakettien versioiden tiedetään toimivan ePoudassa ja cPoudassa tällä hetkellä käytössä olevan OpenStack-version (Yoga) kanssa:
- python-openstackclient==5.8.1
- python-cinderclient==8.3.0
- python-glanceclient==3.6.0
- python-heatclient==2.5.1
- python-keystoneclient==4.4.0
- python-neutronclient==7.8.0
- python-novaclient==17.7.0
- python-swiftclient==3.13.1
Lisätietoja: OpenStackClientin pip-moduuli
Info
PyPI:n uusin julkaisu on yleensä taaksepäin yhteensopiva, mutta jos kohtaat ongelmia, asenna sen sijaan jokin yllä luetelluista versioista.
OpenStack-komennot ja ohje
openstack -h
Saat luettelon käytettävissä olevista OpenStackin alikomennoista lisäämällä openstack-komennon perään "-h". Jos haluat nähdä tietyn alikomennon valinnat, lisää komennon nimi sanan "help" jälkeen. Esimerkiksi:
openstack help server create
Avainparin lisääminen
Ensimmäinen asia, joka sinun kannattaa tehdä, on lisätä avainpari. Sitä käytetään virtuaalikoneidesi käyttämiseen SSH:n kautta, ja tässä antamasi nimi on <key name>, jonka välität myöhemmin komennolle openstack server create --key-name. Avainparin voi lisätä kahdella tavalla.
Käytä olemassa olevaa julkista avainta.
Jos sinulla on jo SSH-avainpari, lataa sen julkinen avain sen sijaan, jotta OpenStack ei koskaan luo tai näe yksityistä avainta:
openstack keypair create --public-key <file> <name>
Tässä <file> on olemassa olevan julkisen avaimesi polku ja <name> on nimi, jonka haluat antaa tälle avainparille OpenStackissa — ne eivät ole sama asia. Esimerkiksi jos haluat ladata julkisen avaimen ~/.ssh/id_rsa.pub ja nimetä sen OpenStackissa nimellä "test":
openstack keypair create --public-key ~/.ssh/id_rsa.pub test
Jos sinulla ei vielä ole SSH-avainparia, katso ohjeet sen luomiseen ssh-keygen-komennolla kohdasta SSH-avainparin luominen tietokoneella.
Tai anna OpenStackin luoda uusi avainpari puolestasi.
Tämä luo sekä julkisen että yksityisen avaimen ja tulostaa yksityisen avaimen päätteeseesi, joten ohjaa tuloste suoraan tiedostoon:
openstack keypair create <name> > <name>.pem
Esimerkiksi seuraava komento luo avainparin nimeltä "test" ja tallentaa sen yksityisen avaimen tiedostoon "test.pem" (käytä omavalintaisia nimiä "test"-nimen sijaan):
openstack keypair create test > test.pem
Säilytä tämä yksityisen avaimen tiedosto turvallisesti ja rajoita sen oikeuksia, esimerkiksi komennolla chmod 600 test.pem.
Käytettävissä olevien levyvedosten listaaminen
openstack image list
Tämä komento listaa käyttäjän käytettävissä olevat levyvedokset. Näihin sisältyvät julkiset levyvedokset ja käyttäjän lisäämät levyvedokset.
Käytettävissä olevien flavorien listaaminen
openstack flavor list
Virtuaalikoneen flavor määrittää sen virtuaalisen laitteiston: kuinka monta ydintä, kuinka paljon muistia ja niin edelleen.
Virtuaalikoneen käynnistäminen
openstack server create --flavor <flavor> --image <image id> --key-name <key name> <name for machine>
Tämä komento sisältää vähimmäismäärän tietoja toimivan virtuaalikoneen käynnistämiseen.
Info
Komennon "openstack server create" tuloste näyttää myös salasanan nimeltä adminPass. Tätä salasanaa ei tarvitse tallentaa, koska sitä ei käytetä yhdistettäessä virtuaalikoneeseen. Virtuaalikone sallii pääsyn käyttäjälle vain, jos käyttäjä käyttää SSH-avaimia.
Virtuaalikoneen mukauttaminen ennen käynnistystä
openstack server create --flavor <flavor> --image <image id> --key-name <key name> --user-data user-data.sh <name for machine>
Tiedosto user-data.sh voi sisältää lisäkomentoja, jotka suoritetaan automaattisesti instanssin käynnistämisen jälkeen.
Alla on esimerkki skriptitiedoston sisällöstä, joka lisäisi instanssiin mukautetun käyttäjän ja antaisi sille sudo-oikeudet:
#!/bin/sh
# Add a new user called boss
useradd -m boss
# Add the user to sudoers. No password is needed for sudo.
echo 'boss ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/boss
Skriptitiedosto voi sisältää mitä tahansa komentoja, joten varovaisuutta suositellaan.
Note
Huomaa, että esimerkki ei sisällä käyttäjän tunnistautumisen (julkinen SSH-avain) lisäämistä.
Instanssien listaaminen
openstack server list
Tämä antaa luettelon käyttäjän instansseista ja niihin liittyvistä tiedoista.
Instanssien poistaminen
openstack server delete <server>
Tämä komento sammuttaa ja poistaa koneen. Käynnissä oleva virtuaalikone poistetaan, eikä sitä voi palauttaa.
Julkisen osoitteen liittäminen
openstack floating ip create public
Julkinen osoite on ensin varattava osoitepoolista. Tässä vaiheessa IP-osoitetta ei ole vielä liitetty mihinkään isäntään.
openstack server add floating ip <server> <address>
Tämä komento liittää juuri varatun osoitteen virtuaalikoneeseen.
Kun et enää tarvitse julkista osoitetta, voit vapauttaa sen julkiseen pooliin poistamalla sen.
openstack floating ip delete <address>
Näin säästät laskutusyksiköitä (BUs) ja ylläpidät julkisten IP-osoitteiden tehokasta käyttöä.
Valtuutus yhteyden muodostamiseen virtuaalikoneisiin
Luo uusi tietoturvaryhmä:
openstack security group create <security group name>
Lisää tähän uuteen ryhmään sääntö, joka sallii pingin tietystä lähdeverkosta:
openstack security group rule create --proto icmp --remote-ip <source network> --dst-port 0 <security group name>
Lisää sääntö, joka sallii SSH:n tietystä lähdeverkosta:
openstack security group rule create --proto tcp --remote-ip <source network> --dst-port 22 <security group name>
Liitä juuri luotu tietoturvaryhmä virtuaalipalvelimeesi:
openstack server add security group <server> <security group name>
Oletuksena kaikki yhteydet virtuaalikoneisiin on estetty. Tämä komento sallii pingin ja SSH-yhteyden.
Palvelinryhmät ja affiniteetti
OpenStackissa on mahdollista luoda niin sanottuja palvelinryhmiä, joilla on tietyt affiniteetti- ja anti-affiniteettisäännöt. Määrität, haluatko käyttää tiettyä ryhmää palvelinta käynnistettäessä.
Affiniteettisäännöllä varustettu palvelinryhmä takaa, että kaikki ryhmässä käynnistetyt virtuaalikoneet käynnistetään samalla fyysisellä palvelimella. Anti-affiniteettisäännöllä varustettu palvelinryhmä takaa, että kaikki ryhmän palvelimet käynnistetään eri fyysisillä palvelimilla. Jos sopivaa fyysistä palvelinta ei löydy, virtuaalikonetta ei luoda.
openstack server group create --policy <affinity or anti-affinity> <server group name>
Sen jälkeen voit käynnistää virtuaalikoneita ryhmässä määrittämällä ryhmän tunnisteen hint-parametrissa.
openstack server create --flavor <flavor> --image <image id> --key-name <key name> --hint group=<server group id> <name for machine>
Tarkista, mitkä virtuaalikoneet kuuluvat palvelinryhmään:
openstack server group show <server group id>