Ez az útmutató bemutatja a Terraform használatát a Google Cloud platformmal. Ez az útmutató feltételezi, hogy a felhasználónak van fiókja a Google Cloud platformon, és készen áll a használatra, ha nem, akkor ingyenes próbafiókot könnyedén létrehozhat egy évig. A Google Cloud azonban érvényes hitelkártyaszámot igényel a konzolhoz való hozzáféréshez; ezért győződjön meg róla, hogy foglalkoznak vele, mielőtt továbblépne.
Követelmények és feltételek
A Google Cloud platform számos szolgáltatásból áll; ezért nehéz mindegyiket egyetlen útmutatóban lefedni, ezért ez az útmutató csak a Google virtuálisgép-példányok szakaszát fedi le. Bemutatja, hogyan lehet Nginx webkiszolgálót telepíteni az Ubuntu virtuális gép példányába a Google Cloud infrastruktúrában.
Mivel az útmutató a terraformról szól, nyilván telepíteni kell a rendszerbe. Ezenkívül SSH-kulcsot kell létrehozni a virtuális gép-példány eléréséhez.
A Terraform telepítése az Ubuntu-ra
A Terraform kétféle módon telepíthető. Az első módszer a kézi módszer, amely megköveteli a felhasználótól, hogy töltse le és telepítse a rendszerbe, az alternatív és a leginkább ajánlott módszer az automatizált módszer, amely néhány kódsorral letölti és telepíti a terraformot a rendszerbe. Kövesse az alábbi parancsokat a megvalósításához.
- Telepítse az unzip csomagot a rendszerbe a terraform csomag kibontásához, miután letöltötte.
- Töltse le és telepítse a terraformot a megadott linkről. Vegye figyelembe, hogy a cikk írásakor a terraform legújabb verziója 0.11.10. A jövőben a verzió más lehet. Ezért mindig figyeljen a hivatalos weboldalukra, hogy információkat szerezzen a legújabb terraform csomagokról.
- Bontsa ki a terraformot az éppen aktív könyvtárba. Alapértelmezés szerint ez az Otthoni könyvtár az Ubuntu-ban.
- Vigye a terraformot a bináris mappába. A Terraformnak nincs telepítőfájlja; ezért a bináris fájlt kézzel kell elhelyezni a bin fájlban.
- A következő paranccsal férhet hozzá a terraformhoz a parancssorból, annak könyvtárának megadása nélkül.
Saját SSH-kulcs előállítása
A terraform telepítése után a következő fontos lépés a saját SSH nyilvános / privát kulcspár létrehozása, hogy kommunikáljon a készülő virtuális gép példánnyal. Az SSH kulcspár erős biztonságot nyújt a hagyományos jelszó / felhasználónév hitelesítéssel szemben; ezért ennek az opciónak a követése erősen ajánlott, bár nem kötelező.
1. Írja be a következő parancsot az Ubuntu shellbe az SSH kulcspár létrehozásához.
ssh-keygen
2. Először nevet kér a kulcspárhoz, majd az ssh kulcs jelszavát. A nyilvános kulcs létrehozása
Konfigurálja a Google Cloud szolgáltatást a Terraform segítségével
Miután a fent említett két szegmens elkészült, folytassa, és hozzon létre egy ingyenes próbafiókot a Google Cloud szolgáltatásban. Mivel a fiók létrehozása egyszerű folyamat, itt nincs leírva. Miután hozzáférést kapott a Google Cloud konzolhoz, kövesse az alábbi lépéseket a Google Cloud terraformos konfigurálásához.
- Keresse meg a következő URL-t.
https: // konzol.felhő.Google.com
- Kattintson a „Saját projektek” gombra a konzol bal felső sarkában.
- Hozzon létre új projektet, vagy használjon meglévő projektet ehhez az útmutatóhoz. A „projekt” célja a különböző szolgáltatások csoportosítása a Google Cloud szolgáltatásban. A projekt ennek a szolgáltatási hierarchiának a legmagasabb csomópontja, és a többi szolgáltatás alá tartozik. Az egyik projekt alatt létrehozott szolgáltatás nem érhető el egy másik projektből. A projekt létrehozása után másolja és tartsa valahol biztonságos helyen. A következő képernyőképen a projekt azonosítója a következő karizmatikus-összeg-202020, és lehet, hogy más lesz a felhő konzolján.
- Keresse meg a következő webes URL-t, és töltse le a hitelesítő adatfájlt JSON formátumban, hogy hitelesítse a felhasználót, amikor csatlakozik a Google felhő platformjához. Ez a rendszergazdai fiók; ezért győződjön meg arról, hogy ez a hitelesítő fájl biztonságos helyen biztonságos. https: // konzol.felhő.Google.com / apis / credentials / serviceaccountkey
- Hozzon létre egy fájlt, és nevezze át főnek.tf. Ez a fájl a terraform konfigurációs fájlja, majd használja a következő kódblokkot első kódsoraként. A szolgáltató neve a szolgáltató kapcsolatfelvételének megadására szolgál. A Terraform számos felhőplatformot támogat; ezért a felhőplatform nevét kifejezetten meg kell adni. Itt a Google, ami azt jelenti, hogy kapcsolatba lép a Google felhő platformjával. A címsoron kívül 3 attribútum van a blokkban, a „hitelesítő adatok” attribútum a hitelesítő adatok fent leírt nevének megadására szolgál, a projekt neve az a hely a Google felhőben, ahol a virtuális gép példánya létrehozva. A 3. lépésben létrehozott azonosítót itt használjuk projektnévként. A régió az a földrajzi hely, ahol a virtuális gép-példány létrejön. Több régió létezik. Ezen a linken hivatkozhat az összes elérhető régióra. https: // felhő.Google.com / appengine / docs / helyszolgáltató "google"
hitelesítő adatok = "$ fájl (" CREDENTIALS_FILE.json ")"
project = "PROJECT_NAME"
régió = "REGION_NAME"
- A következő paranccsal telepítheti a terraform beépülő moduljait. A következő parancs automatikusan beolvassa a terraform konfigurációs fájlt, és meghatározza a telepítendő bővítményeket, valamint letölti a terraform szolgáltatói adatait is. Ez az útmutató a Google Cloud platformot használja; ezért letölti a Google felhő terraform szolgáltatójának adatait. A parancs a terraform konfigurációs fájlban a „szolgáltató” kulcsszónál megadott név alapján azonosítja a szolgáltatót. terraform init
- A következő két kódblokkal adjon meg további információkat a virtuális gép példányáról. A kezdetektől fogva a random id plugint használja egy 8 számjegyből álló véletlen szám előállítására, majd hozzárendeli ezt a számot a instance_id változóhoz, hogy a virtuális gép példányának előtagjaként használhassa. A második kódblokkban létrehoz egy virtuális gép példányt a „nucuta-vm-
. A géptípus az a kiszolgálócsomag, amelyet a virtuálisgép-példány fogadására használnak. Az elérhető géptípusok megtalálásához olvassa el ezt a webes URL-t. https: // felhő.Google.com / compute / docs / machine-types. A zóna a régió pontos helye. Minden régióban főleg 3 zóna áll rendelkezésre, a, b, c. Minden zónának megvan a saját hardver / szoftver konfigurációja. Használja ezt a webes URL-t az összes elérhető zóna és hardverkonfigurációjának hivatkozására. https: // felhő.Google.com / compute / docs / region-zone / resource "random_id" "instance_id"
bájt_hossz = 8
erőforrás "google_compute_instance" "nucuta"
név = "nucuta-vm - $ random_id.instance_id.hex "
géptípus = "f1-mikro"
zone = "asia-south1-a"
- Használja a következő kódblokkot a „google_compute_instance” kódblokk belsejében. Meghatározza a használni kívánt operációs rendszert. Használja ezt a webes URL-t a Google felhő platformjának összes elérhető operációs rendszerének megkereséséhez. https: // felhő.Google.com / compute / docs / images. Képet ír, mert az operációs rendszereket „kép” fájlként tárolják. A terraform config fájl végrehajtásakor a képfájl kibontásra kerül, és az operációs rendszere éppúgy települ a virtuális gép példányába, mint egy normál számítógépre. A képattribútum ebben a formátumban van, képprojekt / képcsalád. boot_disk
Initial_params
image = "ubuntu-os-cloud / ubuntu-1604-lts"
- Használja a következő kódot a „google_compute_instance” kódblokkban. Megadja az induló parancsfájlt, amelyet az újonnan létrehozott virtuális géppéldányon futtat. Ez a parancsfájl a virtuális gép példányának létrehozásakor azonnal végrehajtásra kerül. A következő példában frissíti a helyi csomaginformációk tárát a legfrissebb információkkal, majd az összes csomagot frissíti a dist-upgrade programmal, majd telepíti az nginx csomagot. Ügyeljen arra, hogy a -y flag használatával a folyamat ne legyen interaktív, vagyis automatikusan végrehajtja és végrehajtja a folyamatot anélkül, hogy felhasználói beavatkozást igényelne. metadata_startup_script = "sudo apt-get -y frissítés;
sudo apt-get -y dist-upgrade;
sudo apt-get -y telepítse az nginx "
- Használja a következő kódblokkot a „google_compute_instance” kódblokkban. Az alábbi kódblokk meghatározza a hálózati csatolót, amelyet az aktuális virtuális géppéldány összekapcsolására használnak más virtuális géppéldányokkal, eszközökkel és hálózatokkal. Az Access_config blokk arra szolgál, hogy a virtuális géppéldányhoz külső IP-címet rendeljen hozzá az internetről való eléréshez. hálózati felület
network = "alapértelmezett"
access_config
- Végül használja a következő kódblokkot a „google_compute_instance” kódblokkban. Megadja a felhasználónevet és a nyilvános SSH kulcsot. Győződjön meg arról, hogy a létrehozott nyilvános SSH kulcs ugyanabban a mappában van, mint a terraform konfigurációs fájl. A felhasználónévnek annak a fióknak a nevét kell megadnia, ahonnan az SSH kulcs létrejött, például ha a fiók neve root, akkor a felhasználónév root. metaadatok
sshKeys = "dilanga: $ file (" dilanga.kocsma")"
- A végső kódblokknak így kell kinéznie
- Használja a következő kódblokkot kívül a „google_compute_instance” kódblokkból. Alapértelmezés szerint a virtuális gép példánya blokkolja az összes bejövő és kimenő forgalmat. Mivel ez az útmutató webkiszolgálót hoz létre, meg kell nyitni a 80-as és a 443-as portot, hogy a felhasználók az interneten keresztül hozzáférhessenek hozzá. A névattribútum a kezdetektől profilt hoz létre a google számítási tűzfalakban ehhez a szabályhoz, a hálózati attribútum meghatározza, hogy a szabály mely hálózati interfészre vonatkozik, az engedélyezés blokk engedélyezi az alatta megadott protokollokat és portjait. Az Icmp protokollt a webszerver pingelésére használják, hogy megbizonyosodjanak arról, hogy nyilvános. A pingelést sok szolgáltatás gyakran használja a weboldal elérhetőségének megismerésére. erőforrás "google_compute_firewall" "alapértelmezett"
name = "nginx-tűzfal"
network = "alapértelmezett"
lehetővé teszi
protokoll = "tcp"
portok [[80 "," 443 "]
lehetővé teszi
protokoll = "icmp"
- Használja a következő kódblokkot kívül a „google_compute_instance” részből az aktuális virtuális gép-példány nyilvános IP-címének kinyomtatásához. kimenet "ip"
value = "$ google_compute_instance.nucuta.hálózati felület.0.hozzáférés_konfig.0.nat_ip "
- A következő paranccsal ellenőrizheti a konfigurációs fájlt és a hitelesítő adatokat. Ezenkívül előnézeti, hogyan néz ki a végeredmény a konfigurációs fájl végrehajtása után. terraform terv
- majd a következő paranccsal hajtsa végre a konfigurációs fájlt. terraform alkalmazható
- Most használja a nyilvános IP-címet bármely webböngészőn a virtuálisgép-példány webkiszolgálójának eléréséhez.
- A következő paranccsal érheti el a virtuális gép példányát SSH-n keresztül a kiszolgáló kezeléséhez. Ellenőrizze, hogy a privát kulcs az aktuális könyvtárban van-e, vagy adja meg a titkos kulcs elérési útját.
- ssh -i
@ Következtetés
Ennek elégnek kell lennie az induláshoz. A teljes konfigurációs fájl, fő.tf, az alábbiakban látható. A kiemelt szövegek a felhasználói igényeknek megfelelően módosíthatók.
szolgáltató "google"
hitelesítő adatok = "$ fájl (" dilannga_credentials.json ")"
project = "karizmatikus-összeg-202020"
region = "asia-south1"
erőforrás "random_id" "instance_id"
bájt_hossz = 8
erőforrás "google_compute_instance" "nucuta"
név = "nucuta-vm - $ random_id.instance_id.hex "
géptípus = "f1-mikro"
zone = "asia-south1-a"
boot_disk
Initial_params
image = "ubuntu-os-cloud / ubuntu-1604-lts"
metadata_startup_script = "sudo apt-get -y frissítés; sudo apt-get -y dist-upgrade;
sudo apt-get -y telepítse az nginx "
hálózati felület
network = "alapértelmezett"
access_config
metaadatok
sshKeys = "dilanga: $ file (" dilanga.kocsma")"
erőforrás "google_compute_firewall" "alapértelmezett"
name = "nginx-tűzfal"
network = "alapértelmezett"
lehetővé teszi
protokoll = "tcp"
portok [[80 "," 443 "]
lehetővé teszi
protokoll = "icmp"
kimenet "ip"
value = "$ google_compute_instance.nucuta.hálózati felület.0.hozzáférés_konfig.0.nat_ip "