Módosítások

Cloud for Education

15 971 bájt hozzáadva, 2017. december 20., 10:02
a
A fejezetcímek hierarchiájának kifésülése
== Hozzáférés ==
 
A szolgáltatás elérési helye https://c4e.niif.hu.
 
 
== Karbantartások ==
 
A C4E szolgáltatást nyújtó gépekre az alábbi ütemezés szerint telepítjük a frissítéseket:
 
* Minden hónap '''második hétfőjén''' nap közben (délelőtt 10 órától) megkezdődik a rendszer vezérlő gépeinek frissítése (Adatbázis, vezérlő gépek, terheléselosztó, hálózati node-ok)
A művelet során néhányszor 2-3 percre '''elérhetetlen lehet a webfelület''', illetve a hálózati csomópontok újraindításának következtében néhányszor 1-2 percre a '''Smart''' hálózatok elérése akadozhat, amíg a tartalék irány működésbe nem lép.
 
* Minden hónap '''második hétfőjén''' este egy második frissítési ciklust is tartunk az alábbiak szerint
** Páratlan hónapokban a '''Compute''' gépeket frissítjük, ami azzal jár, hogy futó virtuális gépeket elmigráljuk a fizikai gépekről. A folyamat során néhányszor 1 percre a futó virtuális erőforrások elérhetetlenek lehetnek, illetve folyamatosan íródó memóriájú gépeknél előfordul, hogy csak a virtuális gép leállításával/elindításával lesz sikeres a migráció.
** Páros hónapokban a diszk alrendszert '''(CEPH)''' frissítjük. Ilyenkor a háttérben '''adatszinkronizáció zajlik''', ami '''lassíthat egyes IO kéréseket''', de a felhasználók felé ez a művelet eddigi tapasztalataink alapján többnyire transzparens.
 
==Ismertető==
22 perces ismertető, ami az NWS 2016-on hangzott el. http://videotorium.hu/hu/recordings/details/13396,Cloud4Education_-_Kezdo_lepesek
[[File:Fwaas7.png|726px|Szabály beszúrása]]
==Virtuális gép indítása==
Az előfeltételek teljesítése után elkészíthető a kívánt virtuális gép. Ehhez válasszuk a bal oldali menüből a „Compute”, azon belül pedig az „Instances” lehetőséget, majd a bal felső sarokban válasszuk a „Launch Instance” gombot és az alábbi képeken látható módon készítsük el a gépet.
[[File:Launch1.png|726px|VM indítása]]
===Kulcspár és security group társítása===
A következő ábrán látható módon a VM létrehozásakor kiválaszthatjuk az előzőleg feltöltött publikus kulcsunkat, vagy feltölthetünk egy teljesen újat is a létrehozás közben, valamint megadhatjuk, hogy melyik Security Group vonatkozzon a virtuális gépünkre.
[[File:launch2.png|726px|SecurityGroup kiválasztása]]
===Hálózat kiválasztása===
Következő lépésként meg kell adni a használni kívánt hálózatot. Ez legyen a példában létrehozott „Internal” hálózat.
* A weboldalba ágyazott VNC konzol segítségével vezérelhetjük gépünket, azonban egyes előre gyártott lemezképfájlból készített virtuális gépek nem támogatják csak a kulcsos autentikációt, így sajnos ezeknél a gépeknél ez a módszer nem elérhető.
====Floating IP hozzárendelése====
Az előzőekben létrehozott Ubuntu operációs rendszerrel ellátott virtuális gépünk a második lehetőséget nem támogatja, így szükségünk van a gép eléréséhez egy publikus IP címre, amelynek allokálása és géphez rendelése a következőképpen történik.
A sikeres hozzárendelés után a gépünk már rendelkezik publikus IP címmel, amelyen keresztül külső hálózatokból is elérhetjük a gépet, amennyiben ezt a Security Group-ban, vagy a Firewall alatt engedélyezzük.
==Virtuális gépek kezelése==
===Snapshot létrehozása/indítás snapshotból===
További lehetőség a létrehozott virtuális géppel kapcsolatban, hogy bármikor készíthetünk róla egy úgynevezett pillanatképet, amelyből később létrehozhatunk egy másik virtuális gépet, folytatva ott a munkát, ahol a pillanatkép készült, a régi gépet pedig leállíthatjuk, vagy törölhetjük. Ehhez a már ismert „Compute” menüpont alatt válasszuk a „Volume” lehetőséget. A kilistázott Volume-ok között válasszuk ki a megfelelőt, majd az „Actions” szekcióban található legördülő menüből válasszuk a „Create Snapshot” lehetőséget. Az ábrán látható módon adjunk neki egy nevet, majd készítsük el a pillanatképet.
[[File:Create_snapshot2.png|724px|Snapshot létrehozás]]
==="Extrém" diszkigény kielégítése===
Előfordul, hogy valamilyen projekthez nagyobb (TB-os nagyságrendű) területre van szükség, mint amit a kvóta megenged. Habár a kvóta növelésével könnyen orvosolhatnánk egyes felhasználók helyigényét, ezt sajnos <big>nem áll módunkban</big> megtenni, ugyanis azzal felborulna a kiosztott erőforrások közötti egyensúly (nem lenne terület, ahonnan bootoljanak az új gépek, a CPU/RAM pedig kihasználatlan maradna) valamint bizonyos szolgáltatások (jellemzően az adatbázis-szerverek) számára nem előnyös a CEPH alapú háttértár.
==== Csatlakozás Linux alapú operációs rendszer alól ====
===== Óvintézkedés! =====
Sajnos az iSCSI jelenléte boot időben előfordul, hogy a virtuális gépet megállítja a boot során. Ez alapból nem lenne probléma, viszont a sablon image-ek alapértelmezetten egy read only konzolra küldik az emergency shell kimenetét, amin nem lehet módosításokat végezni.
* Firefox és Chrome újabb verziói alatt problémák lehetnek a VNC konzol elérésével/válaszidejével (ez sajnos egy fejlesztők által ismert, de még nem javított hiba)
===== Előkészületek =====
* Konfigurálni kell az interfészeket
Ez az Debian base image-nél alapból konfigurálva van az alábbi módon:
===== Targetek konfigurálása =====
====== The easy way ======
Egy letölthető bash szkript, ami megcsinál mindent: '''[[:File:Iscsi-site-admin-c4e.sh|iscsi-site-admin-c4e.sh]]'''
====== The hard way ======
A következő lépés az iSCSI targetekhez történő csatlakozás. (A leírásban az username és password paraméterek a felhasználót (initiatort, azaz a virtuális gépet) azonosító egyedi paraméterek, míg az username_in és password_in a Mutual CHAP (bidirectional) azonosításhoz használható (target-et, azaz magát az Eternus tárolót azonosító) paraméterek. (Az username_in, azaz a <target CHAP felhasználó> tipikusan "eternus"...)
multipath -r
===== Szépészeti beavatkozások =====
Az iSCSI un. WWID-ket használ (ami a <code>multipath -ll kiementében </code> kimenetében jól látszik) az egyes területek azonosítására, ami sajnos olvashatatlan, és körülményes tud lenni. Az egyszerűbb megnevezések érdekében lehetőség van a korábban szerkesztett <code>multipath.conf </code> állomány bővítésére az alábbi módon (a teljes állomány látható, a fent található Eternus releváns konfigurációval együtt):
<pre>
</pre>
Ha kész az átnevezés (és persze nincsenek a területek csatolva sehol) , újra kell olvastatni a devmapot (esetleg újra kell indítani a szervert):
multipath -r
</pre>
==== Csatlakozás Windows alapú operációs rendszer alól (hamarosan) ====
===== Előkészületek =====
A gépet természetesen hozzá kell adni a megfelelő "Eternus7 - iSCSI1" és "Eternus7 - iSCSI2" hálózatokhoz.
# Az iso-t csatolva az English/setup.exe lesz az, amit fel kell telepíteni a többutas tároló megfelelő működéséhez.
===== Initiator konfigurálása =====
# A "Felügyeleti eszközök" közül az "iSCSI-kezdeményező" / "iSCSI-Initiator" -t kell választani
# A megnyitott ablakban a "Konfiguráció" fül alatt a "Kezdeményező neve:" részhez be kell állítani az IQN-t, amit a storage igénylésekor megadtunk (ehhez az alatta lévő módosítás gombra kell kattintani)
== C4E (Openstack) Publikus API == <big> '''FONTOS!''' </big> Az API külvilági elérését csomagszűrő tűzfal védi, és kizárólag az általunk ismert magyarországi IP(v4/v6) címekről érhető el.Akkor, ha timeout hiba merülne fel, a cloud@niif.hu címen kell jelezni az elérés igényét, és a kérdéses IP címet.Amennyiben az IP valóban hazai cím, és még nem szerepel a tűzfalban, rövid távon permanensen az egész alhálózat számára elérhetővé tesszük az API-t. <big> '''FONTOS!''' </big> Minden itt leírt dokumentáció a C4E openstack jelenlegi (Mitaka) verziójához készült!  === Kezdő lépések: jelszó szerzése ===
Kialakításra került a C4E publikus API elérése. Ahhoz, hogy a felhasználók ezt igénybe tudják venni, az alábbiak szükségesek:
* Első lépésben küldeni kell egy levelet az alábbiakkal a '''cloud@niif.hu''' címre:
** C4E projekt(ek) neve
** C4E usernév (ez szinte biztosan az eppn)
** Privát kezelésben lévő belföldi mobiltelefon száma, ahova SMS formájában küldjük el az eléréshez szükséges jelszót
 
A levélnek arról az e-mail címről kell származnia, ami az adott intézmény IdP-je adott át a C4E-nek az eppn mellett!
 
=== Kezdő lépések: környezet kialakítása (Debian/Ubuntu) ===
 
Első körben hozzá kell adni a repository-t az apt konfigurációjához, frissíteni a csomaglistát, majd telepíteni a szükséges csomagokat:
 
Debian:
<pre>
echo "deb http://http.debian.net/debian jessie-backports main" >>/etc/apt/sources.list.d/openstack.list
apt-get update
apt-get install python-openstackclient
</pre>
 
Ubuntu (A 16.04-es verziótól Mitaka verziót tölt le az eredeti konfigurációval):
<pre>
apt-get update
apt-get install python-openstackclient
</pre>
 
Második körben be kell szerezni a szükséges <big>'''openrc'''</big> file-t az api eléréséhez:
* Be kell jelentkezni a C4E-be (IdP-n keresztül természetesen)
* Ki kell választani az elérni kívánt projektet, ha több lenne (az rc file-ok projektfüggők!)
* Az <big>''' Access & Security -> API Access '''</big> oldalon a <big>''' Download OpenStack RC File v3 '''</big> opciót választani
* Az rc file-t a kezelő gépre juttatni (ha nem ott lenne)
 
A harmadik lépés, hogy betöltjük az rc file-t, majd a jelszó beírása után elérhetővé válik a C4E API
 
<pre>
debian@apitest:~$ source cloudadmin_v3.rc
Please enter your OpenStack Password:
 
debian@apitest:~$ openstack server list
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
| 3ac59936-cdae-4822-9855-60fabeff135f | apitest | ACTIVE | Flat1=2001:738:0:519:f816:3eff:fedd:d5e8, 193.224.22.225 ||
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
debian@apitest:~$
</pre>
 
=== API használata ===
 
Az API használatával kapcsolatban a mindenkori Openstack dokumentáció a mérvadó: https://developer.openstack.org/api-guide/quick-start/api-quick-start.html#
 
Ugyanezen oldalról egy (hálózat/ssh kulcs nélküli!) instance elindításának kezdő lépései: https://developer.openstack.org/api-guide/quick-start/api-quick-start.html#launch-an-instance
 
Az openstack parancs elérhető funkciói (ebből természetesen van, ami a felhasználó számára nem, illetve olyan is, ami nincs implementálva!):
 
Részlet az <big>'''openstack --help'''</big> kiementéből:
 
<pre>
Commands:
access token create Create access token command
aggregate add host Add host to aggregate
aggregate create Create a new aggregate
aggregate delete Delete an existing aggregate
aggregate list List all aggregates
aggregate remove host Remove host from aggregate
aggregate set Set aggregate properties
aggregate show Show a specific aggregate
backup create Create backup command
backup delete Delete backup command
backup list List backup command
backup restore Restore backup command
backup show Show backup command
complete print bash completion command
compute agent create Create compute agent command
compute agent delete Delete compute agent command
compute agent list List compute agent command
compute agent set Set compute agent command
compute service list List service command
compute service set Set service command
console log show Show console-log command
console url show Show console-url command
consumer create Create consumer command
consumer delete Delete consumer command
consumer list List consumer command
consumer set Set consumer command
consumer show Show consumer command
container list List containers
container show Show container information
credential create Create credential command
credential delete Delete credential command
credential list List credential command
credential set Set credential command
credential show Show credential command
domain create Create domain command
domain delete Delete domain command
domain list List domain command
domain set Set domain command
domain show Show domain command
endpoint create Create endpoint command
endpoint delete Delete endpoint command
endpoint list List endpoint command
endpoint set Set endpoint command
endpoint show Show endpoint command
extension list List extension command
flavor create Create flavor command
flavor delete Delete flavor command
flavor list List flavor command
flavor show Show flavor command
group add user Add user to group
group contains user Checks that user is in a specific group
group create Create group command
group delete Delete group command
group list List groups
group remove user Remove user to group
group set Set group command
group show Show group command
help print detailed help for another command
host list List host command
host show Show host command
hypervisor list List hypervisor command
hypervisor show Show hypervisor command
identity provider create Create identity_provider command
identity provider delete Delete identity provider
identity provider list List identity providers
identity provider set Set identity provider
identity provider show Show identity provider
image create Create/upload an image
image delete Delete an image
image list List available images
image save Save an image locally
image set Change image properties
image show Show image details
ip fixed add Add fixed-ip command
ip fixed remove Remove fixed-ip command
ip floating add Add floating-ip command
ip floating create Create floating-ip command
ip floating delete Delete floating-ip command
ip floating list List floating-ip command
ip floating pool list List floating-ip-pool command
ip floating remove Remove floating-ip command
keypair create Create keypair command
keypair delete Delete keypair command
keypair list List keypair command
keypair show Show keypair command
limits show Show compute and volume limits
module list List module versions
object list List objects
object show Show object information
policy create Create policy command
policy delete Delete policy command
policy list List policy command
policy set Set policy command
policy show Show policy command
project create Create new project
project delete Delete project
project list List projects
project set Set project properties
project show Show project command
project usage list List resource usage per project.
quota set Set quotas for project or class
quota show Show quotas for project or class
request token authorize Authorize request token command
request token create Create request token command
role add Adds a role to a user or group on a domain or project
role assignment list Lists role assignments according to the given filters
role create Create new role
role delete Delete existing role
role list List roles
role remove Remove role command
role set Set role command
role show Show single role
security group create Create a new security group
security group delete Delete a security group
security group list List all security groups
security group rule create Create a new security group rule
security group rule delete Delete a security group rule
security group rule list List all security group rules
security group set Set security group properties
security group show Show a specific security group
server add security group Add security group to server
server add volume Add volume to server
server create Create a new server
server delete Delete server command
server image create Create a new disk image from a running server
server list List servers
server lock Lock server
server migrate Migrate server to different host
server pause Pause server
server reboot Perform a hard or soft server reboot
server rebuild Rebuild server
server remove security group Remove security group from server
server remove volume Remove volume from server
server rescue Put server in rescue mode
server resize Convert server to a new flavor
server resume Resume server
server set Set server properties
server show Show server details
server ssh Ssh to server
server suspend Suspend server
server unlock Unlock server
server unpause Unpause server
server unrescue Restore server from rescue mode
server unset Unset server properties
service create Create new service
service delete Delete service
service list List services
service set Set service properties
service show Show service details
snapshot create Create snapshot command
snapshot delete Delete snapshot command
snapshot list List snapshot command
snapshot set Set snapshot command
snapshot show Show snapshot command
token issue Issue token command
user create Create new user
user delete Delete user
user list List users
user set Set user properties
user show Show user details
volume create Create new volume
volume delete Delete volume
volume list List volumes
volume set Set volume properties
volume show Show specific volume
volume type create Create new volume type
volume type delete Delete volume type
volume type list List volume types
volume type set Set volume type property
volume type unset Unset volume type property
volume unset Unset volume properties
</pre>
 
Az egyes parancsok részletes leírását így lehet elérni:
<pre>
debian@apitest:~$ openstack help server list
usage: openstack server list [-h] [-f {csv,table}] [-c COLUMN]
[--max-width <integer>]
[--quote {all,minimal,none,nonnumeric}]
[--reservation-id <reservation-id>]
[--ip <ip-address-regex>]
[--ip6 <ip-address-regex>] [--name <name>]
[--status <status>] [--flavor <flavor>]
[--image <image>] [--host <hostname>]
[--instance-name <server-name>] [--all-projects]
[--long]
 
List servers
 
optional arguments:
-h, --help show this help message and exit
--reservation-id <reservation-id>
Only return instances that match the reservation
--ip <ip-address-regex>
Regular expression to match IP addresses
--ip6 <ip-address-regex>
Regular expression to match IPv6 addresses
--name <name> Regular expression to match names
--status <status> Search by server status
--flavor <flavor> Search by flavor ID
--image <image> Search by image ID
--host <hostname> Search by hostname
--instance-name <server-name>
Regular expression to match instance name (admin only)
--all-projects Include all projects (admin only)
--long List additional fields in output
 
output formatters:
output formatter options
 
-f {csv,table}, --format {csv,table}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated
 
table formatter:
--max-width <integer>
Maximum display width, 0 to disable
 
CSV Formatter:
--quote {all,minimal,none,nonnumeric}
when to include quotes, defaults to nonnumeric
 
debian@apitest:~$
</pre>
Amennyiben valamilyen problémába merül fel, célszerű a parancsot -v (-vv -vvv) kapcsolóval futtatni, és egy esetleges hibabejelentésnél a kimenetet csatolni.
==FAQ==
===Nem sikerült az image létrehozása a webfelületen===
=== Nem tudok belépni a gépre távolról ===
Az alapértelmezett tűzfalszabályok nem engedélyezik a kívülről jövő kapcsolatokat. Konfigurációjuk leírása a [[#Security_group-ok|Security group-ok]] szakaszban található.
 
=== Nem sikerült a csatlakozás a konzolra ===
 
A hibaüzenet: ''Failed to connect to server (code: 1006)''.
Ilyenkor az F5 gomb megnyomása segít.
===Nem tudok a létrehozott VM konzolján gépelni===
Ahhoz, hogy gépelni tudjunk, vagy grafikus felülettel rendelkező oprációs operációs rendszer esetén az egérrel dolgozni, a konzol melletti szürke területre kell kattintani és NEM a konzol ablakába. ===Baj van a DNS-el, <code>resolv.conf</code>-fal, stb.===A C4E networking stackje több irányból konfigurálja egy-egy VM DNS beállításait. ==== DHCP oldali beállítások ====Ahhoz, hogy a DHCP ne írja felül minduntalan a <code>resolv.conf</code> egyes sorait a következőt érdemes tenni: A <code>/etc/dhcp/dhclient.conf</code> állományt értelemszerűen bővíteni kell az alábbi(ak közül szükséges) sorokkal:<pre>supersede domain-name "sajatdomain.hu";supersede domain-search "sajatdomain.hu";supersede domain-name-servers 8.8.8.8, 8.8.4.4;</pre> ==== Cloudinit oldali beállítások ====Minden C4E virtuális gépen megtalálható egy ún. "Cloudinit" szkriptrendszer, ami az egyes beállításokat (hostnév, diszknövelés, ssh kulcs, stb.) hivatott beállítani.Ahhoz, hogy a Cloudinit ne állítsa át a hostnevet, és a hosts állományt, az alábbi konfiguráció szükséges a <code>/etc/cloud/cloud.cfg</code> állományban:<pre># This will cause the set+update hostname module to not operate (if true)preserve_hostname: true manage_etc_hosts: false</pre> 
===IPv6 címre van szükségem, a felület szerint kapnom kéne, de mégsem===
18
szerkesztés

Navigációs menü