Terraform

Cara Menggunakan Terraform dengan Google Cloud Platform?

Cara Menggunakan Terraform dengan Google Cloud Platform?
Terraform adalah alat yang digunakan untuk mengurus infrastruktur sebagai kod dengan mudah. Ia dikembangkan oleh HashiCorp sebagai projek sumber terbuka untuk pembangun awan untuk menguruskan infrastruktur mereka dalam bahasa tahap tinggi (HCL). Kelebihan terbesar alat ini ialah ia menyingkirkan perkhidmatan infrastruktur utama seperti AWS, OpenStack, Vultr, Digital Ocean, Google Cloud dan membolehkan pembangun menyatukan konfigurasi mereka dalam satu format standard. Selain itu, automasi dan pelaksanaan terperinci juga dapat dilakukan dengan Terraform. Ia tersedia di platform Windows, Linux, MacOS, dan dapat digunakan dengan platform cloud utama dengan pengetahuan teknikal tahap sederhana.

Panduan ini menunjukkan cara menggunakan Terraform dengan platform Google Cloud. Panduan ini menganggap, pengguna mempunyai akaun di platform Google Cloud dan ia siap digunakan, jika tidak mungkin membuat akaun percubaan percuma dengan mudah selama satu tahun. Walau bagaimanapun, Google Cloud memerlukan nombor kad kredit yang sah untuk dihantar untuk mengakses konsolnya; oleh itu pastikan ia ditangani sebelum meneruskannya.

Keperluan dan Syarat

Platform Google Cloud terdiri daripada sebilangan besar perkhidmatan; oleh itu sukar untuk merangkumi semuanya dalam satu panduan, dan oleh itu, panduan ini hanya merangkumi bahagian contoh Google VM. Ini menunjukkan cara memasang pelayan web Nginx dalam instance VM Ubuntu di infrastruktur Google Cloud.

Oleh kerana panduan ini mengenai terraform, jelasnya mesti dipasang dalam sistem. Selain itu, kunci SSH harus dihasilkan untuk mengakses instance VM.

Cara Memasang Terraform di Ubuntu

Terraform boleh dipasang dengan dua cara yang berbeza. Kaedah pertama adalah cara manual, yang memerlukan pengguna memuat turun dan memasangnya dalam sistem, cara alternatif dan yang paling disyorkan adalah cara automatik, yang memuat turun dan memasang terraform dalam sistem dengan beberapa baris kod. Ikuti arahan berikut untuk mewujudkannya.

  1. Pasang pakej unzip dalam sistem untuk mengekstrak pakej terraform setelah dimuat turun.
sudo apt-get install unzip
  1. Muat turun dan pasang terraform dari pautan yang diberikan. Perhatikan bahawa pada saat artikel sedang ditulis versi terraform terbaru adalah 0.11.10. Pada masa akan datang versi mungkin berbeza. Oleh itu, perhatikan laman web rasmi mereka untuk mendapatkan maklumat mengenai pakej terraform terkini.
wget https: // siaran.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.zip
  1. Ekstrak terraform ke direktori yang sedang aktif. Secara lalai, ini adalah direktori Home di Ubuntu.
unzip terraform_0.11.10_linux_amd64.zip
  1. Pindahkan terraform ke folder binari. Terraform tidak mempunyai fail persediaan; oleh itu fail binarianya mesti diletakkan di dalam tong sampah secara manual.
sudo mv terraform / usr / local / bin /
  1. Gunakan perintah berikut untuk mengakses terraform dari baris perintah tanpa menentukan direktori.
terraform - penukaran

Bagaimana Menjana Kunci SSH Anda Sendiri

Setelah memasang terraform, langkah penting seterusnya adalah menghasilkan pasangan kunci awam / swasta SSH anda sendiri untuk berkomunikasi dengan instance VM yang akan dibuat. Pasangan kunci SSH memberikan keselamatan yang kuat terhadap pengesahan kata laluan / nama pengguna tradisional; Oleh itu, pilihan ini sangat digalakkan walaupun tidak wajib.

1. Pada shell Ubuntu, ketik perintah berikut untuk menghasilkan pasangan Kunci SSH.

ssh-keygen

2. Pada awalnya, ia meminta nama untuk pasangan kunci, kemudian frasa laluan untuk kunci ssh. Kunci awam dibuat sebagai .pub, sedangkan kunci peribadi dibuat sebagai . Kedua-dua kunci dibuat dalam direktori yang sedang aktif. Simpan kunci peribadi di lokasi yang selamat kerana penting untuk mengakses instance VM.

Konfigurasikan Google Cloud dengan Terraform

Setelah dua segmen tersebut selesai, teruskan dan buat akaun percubaan percuma di Google Cloud. Oleh kerana membuat akaun adalah proses yang mudah, ia tidak dijelaskan di sini. Setelah mendapat akses ke konsol Google Cloud, ikuti langkah berikut untuk mengkonfigurasi Google Cloud dengan terraform.

  1. Navigasi ke URL berikut.
    https: // konsol.awan.google.com
  1. Klik pada butang "Projek Saya" di sudut kiri atas konsol.
  2. Buat projek baru atau gunakan projek yang ada untuk panduan ini. Tujuan "projek" adalah mengumpulkan pelbagai perkhidmatan di Google Cloud. Projek ini merupakan node tertinggi dalam hierarki perkhidmatan ini, dan perkhidmatan selebihnya berada di bawahnya. Perkhidmatan yang dibuat di bawah satu projek tidak dapat diakses dari projek lain. Setelah projek dibuat, salin dan simpan IDnya di tempat yang selamat. Pada tangkapan skrin berikut, id projek adalah karismatik-jumlah-202020, dan mungkin berbeza di konsol awan anda. 
  3. Navigasi ke url web berikut untuk memuat turun fail kelayakan dalam format JSON untuk mengesahkan pengguna semasa menyambung dengan platform awan Google. Ini adalah akaun pentadbir; oleh itu pastikan fail kelayakan ini selamat di lokasi yang selamat. https: // konsol.awan.google.com / apis / kelayakan / serviceaccountkey 
  4. Buat fail dan namakan semula sebagai utama.tf. Fail ini adalah fail konfigurasi untuk terraform, kemudian gunakan blok kod berikut sebagai baris kod pertama. Nama penyedia adalah untuk menyatakan penyedia untuk dihubungkan. Terraform menyokong sebilangan besar platform awan; oleh itu nama platform awan harus dinyatakan dengan jelas. Inilah Google, yang bermaksud menghubungkan dengan platform awan Google. Selain dari judul, ada 3 atribut di blok, atribut "credentials" adalah untuk menentukan nama file kelayakan yang diunduh di atas, nama projek adalah lokasi di cloud google tempat instance VM dibuat. Id yang dibuat pada langkah 3 digunakan sebagai nama projek di sini. Wilayah adalah lokasi geografi di mana instance VM dibuat. Terdapat pelbagai wilayah. Gunakan pautan ini untuk merujuk ke semua wilayah yang ada. https: // awan.google.com / appengine / docs / lokasi penyedia "google"
    kelayakan = "$ fail (" CREDENTIALS_FILE.json ")"
    projek = "PROJECT_NAME"
    wilayah = "REGION_NAME"

  1. Gunakan arahan berikut untuk memasang pemalam untuk terraform. Perintah berikut secara automatik mengimbas fail konfigurasi terraform dan mengenal pasti plugin mana yang akan dipasang, selain itu juga memuat turun maklumat penyedia untuk terraform. Panduan ini menggunakan platform Google Cloud; oleh itu ia memuat turun maklumat penyedia terraform awan Google. Perintah mengenal pasti penyedia dari nama yang dinyatakan pada kata kunci "penyedia" dalam fail konfigurasi terraform. terraform init
  1. Gunakan dua blok kod berikut untuk menentukan lebih banyak maklumat untuk instance VM. Sejak awal, ia menggunakan plugin id rawak untuk menghasilkan nombor rawak dengan 8 digit, kemudian memberikan nombor tersebut ke variabel instance_id untuk digunakan sebagai awalan untuk nama untuk instance VM. Pada blok kod kedua, ia membuat instance VM dengan nama "nucuta-vm-. Jenis mesin adalah pakej pelayan yang digunakan untuk menghosting instance VM. Rujuk URL web ini untuk mencari jenis mesin yang ada. https: // awan.google.com / compute / docs / jenis mesin. Zon adalah lokasi tepat di rantau ini. Terdapat terutamanya 3 zon yang tersedia di setiap wilayah, a, b, c. Setiap zon mempunyai konfigurasi perkakasan / perisiannya sendiri. Gunakan URL web ini untuk merujuk kepada semua zon yang tersedia dan konfigurasi perkakasannya. https: // awan.google.com / compute / docs / wilayah-zon / sumber "random_id" "instance_id"
    byte_length = 8

    sumber "google_compute_instance" "nucuta"
    nama = "nucuta-vm - $ random_id.contoh_id.hex "
    mesin_jenis = "f1-mikro"
    zon = "asia-south1-a"
  1. Gunakan blok kod berikut di dalam blok kod "google_compute_instance". Ini menentukan sistem operasi yang akan digunakan. Gunakan URL web ini untuk mencari semua sistem operasi yang tersedia untuk platform awan google. https: // awan.google.com / compute / docs / gambar. Ia mengatakan gambar, kerana sistem operasi disimpan sebagai fail "gambar". Ketika file konfigurasi terraform sedang dijalankan, file gambar diekstrak, dan sistem operasinya dipasang di instance VM sama seperti pada komputer biasa. Atribut gambar dalam format ini, projek gambar / keluarga gambar. but_disk
    memulakan_parameter
    gambar = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Gunakan kod berikut dalam blok kod "google_compute_instance". Ini menentukan skrip permulaan untuk dijalankan pada instance VM yang baru dibuat. Skrip ini dilaksanakan sebaik sahaja instance VM dibuat. Dalam contoh berikut, ia mengemas kini repositori maklumat pakej tempatan dengan maklumat terkini, kemudian mengemas kini semua pakej dengan peningkatan versi, kemudian memasang pakej nginx. Pastikan menggunakan bendera -y untuk menjadikan proses tidak interaktif, yang bermaksud secara automatik menjalankan dan menjalankan proses tanpa memerlukan campur tangan pengguna. metadata_startup_script = "kemas kini sudo apt-get -y;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
  1. Gunakan blok kod berikut dalam blok kod "google_compute_instance". Blok kod berikut menentukan antara muka rangkaian, yang digunakan untuk menghubungkan instance VM terkini dengan instance, perangkat, dan jaringan VM lain. Blok Access_config digunakan untuk memperuntukkan instance VM alamat IP luaran untuk mengaksesnya dari Internet. antara muka rangkaian
    rangkaian = "lalai"
    akses_config

  1. Akhirnya, gunakan blok kod berikut dalam blok kod "google_compute_instance". Ia menentukan nama pengguna dan kunci SSH awam. Pastikan kunci SSH awam yang dihasilkan berada dalam folder yang sama dengan fail konfigurasi terraform. Nama pengguna mestilah nama akaun dari mana kunci SSH dibuat, misalnya jika nama akaun adalah root, maka nama pengguna adalah root. metadata
    sshKeys = "dilanga: $ file (" dilanga.pub ")"

  1. Blok kod akhir akan kelihatan seperti ini 
  2. Gunakan blok kod berikut di luar sekatan kod “google_compute_instance”. Secara lalai, instance VM menyekat semua lalu lintas masuk dan keluar. Oleh kerana panduan ini membuat pelayan web, port 80 dan 443 harus dibuka untuk membolehkan pengguna mengaksesnya melalui Internet. Sejak awal, atribut name membuat profil di firewall google compute untuk peraturan ini, atribut network menentukan antarmuka rangkaian mana aturan tersebut berlaku, izinkan blok membenarkan protokol dan portnya ditentukan di bawahnya. Protokol Icmp digunakan untuk melakukan ping pelayan web untuk memastikannya tersedia untuk umum. Pinging sering digunakan oleh banyak perkhidmatan untuk mengetahui ketersediaan laman web. sumber "google_compute_firewall" "lalai"
    nama = "nginx-firewall"
    rangkaian = "lalai"
     
    benarkan
    protokol = "tcp"
    port = ["80", "443"]

     
    benarkan
    protokol = "icmp"

  3. Gunakan blok kod berikut di luar "google_compute_instance" untuk mencetak alamat IP awam instance VM semasa. keluaran "ip"
    nilai = "$ google_compute_instance.nucuta.antara muka_ rangkaian.0.akses_config.0.nat_ip "
  4. Gunakan perintah berikut untuk mengesahkan fail konfigurasi, dan fail kelayakan. Ia juga melihat bagaimana hasil akhir kelihatan setelah fail konfigurasi dijalankan. rancangan terraform
  5. kemudian gunakan arahan berikut untuk melaksanakan file config. terraform berlaku
  6. Sekarang gunakan alamat ip awam di mana-mana penyemak imbas web untuk mengakses pelayan web instance VM.
  7. Gunakan perintah berikut untuk mengakses instance VM melalui SSH untuk menguruskan pelayan. Pastikan kunci peribadi ada di direktori semasa atau tentukan jalan ke kunci peribadi.
  8. ssh -i @

    Kesimpulannya

    Ini mesti cukup untuk anda memulakannya.  Fail konfigurasi penuh, utama.tf, ditunjukkan di bawah. Teks yang disorot dapat diubah mengikut kehendak pengguna.

    penyedia "google"
    tauliah = "$ file (" dilannga_credentials.json ")"
    projek = "karismatik-jumlah-202020"
    rantau = "asia-south1"

     
    sumber "random_id" "instance_id"
    byte_length = 8

     
    sumber "google_compute_instance" "nucuta"
    nama = "nucuta-vm - $ random_id.contoh_id.hex "
    mesin_jenis = "f1-mikro"
    zon = "asia-south1-a"
     
    but_disk
    memulakan_parameter
    gambar = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "kemas kini sudo apt-get -y; sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
     
    antara muka_ rangkaian
    rangkaian = "lalai"
     
    akses_config
     


     
    metadata
    sshKeys = "dilanga: $ file (" dilanga.pub ")"


     
    sumber "google_compute_firewall" "lalai"
    nama = "nginx-firewall"
    rangkaian = "lalai"
     
    benarkan
    protokol = "tcp"
    port = ["80", "443"]

     
    benarkan
    protokol = "icmp"


     
    keluaran "ip"
    nilai = "$ google_compute_instance.nucuta.antara muka_ rangkaian.0.akses_config.0.nat_ip "
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...
Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...
HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux Sebelumnya
Banyak pembangun dan penerbit permainan hadir dengan penghapus HD permainan lama untuk memperpanjang usia francais, harap peminat meminta keserasian d...