Terraform

Cara Menggunakan Terraform dengan Google Cloud Platform?

Cara Menggunakan Terraform dengan Google Cloud Platform?
Terraform adalah alat yang digunakan untuk mengelola infrastruktur sebagai kode dengan mudah. Ini dikembangkan oleh HashiCorp sebagai proyek sumber terbuka bagi pengembang cloud untuk mengelola infrastruktur mereka dalam bahasa tingkat sangat tinggi (HCL). Keuntungan terbesar dari alat ini adalah mengabstraksi layanan infrastruktur utama seperti AWS, OpenStack, Vultr, Digital Ocean, Google Cloud dan memungkinkan pengembang untuk menyatukan konfigurasi mereka dalam satu format standar. Selain itu, otomatisasi dan eksekusi detail juga dimungkinkan dengan Terraform. Ini tersedia di platform Windows, Linux, MacOS, dan dapat digunakan dengan platform cloud utama apa pun dengan pengetahuan teknis tingkat sedang.

Panduan ini menunjukkan cara menggunakan Terraform dengan platform Google Cloud. Panduan ini mengasumsikan, pengguna memiliki akun di platform Google Cloud dan siap digunakan, jika tidak dimungkinkan untuk membuat akun uji coba gratis dengan mudah selama setahun. Namun, Google Cloud memerlukan nomor kartu kredit yang valid untuk dikirimkan agar dapat mengakses konsolnya; maka pastikan itu ditangani sebelum melanjutkan ke depan.

Persyaratan dan Ketentuan

Platform Google Cloud terdiri dari sejumlah besar layanan; karenanya sulit untuk membahas semuanya dalam satu panduan, dan oleh karena itu, panduan ini hanya mencakup bagian instance Google VM. Ini menunjukkan cara menginstal server web Nginx di instance VM Ubuntu di infrastruktur Google Cloud.

Karena panduannya tentang terraform, jelas itu harus diinstal di sistem. Selain itu, kunci SSH harus dibuat untuk mengakses instance VM.

Cara Menginstal Terraform di Ubuntu

Terraform dapat dipasang dengan dua cara berbeda. Cara pertama adalah cara manual, yang mengharuskan pengguna mengunduh dan menginstalnya di sistem, cara alternatif dan paling direkomendasikan adalah cara otomatis, yaitu mengunduh dan menginstal terraform di sistem dengan beberapa baris kode. Ikuti perintah berikut untuk mewujudkannya.

  1. Instal paket unzip di sistem untuk mengekstrak paket terraform setelah diunduh.
sudo apt-get install unzip
  1. Unduh dan instal terraform dari tautan yang diberikan. Perhatikan bahwa saat artikel sedang ditulis, versi terraform terbaru adalah 0.11.10. Di masa depan versinya mungkin berbeda. Jadi selalu perhatikan website resmi mereka untuk mendapatkan informasi paket terraform terbaru.
wget https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.zip
  1. Ekstrak terraform ke direktori yang sedang aktif. Secara default, ini adalah direktori Home di Ubuntu.
buka zip terraform_0.11.10_linux_amd64.zip
  1. Pindahkan terraform ke folder biner. Terraform tidak memiliki file setup; maka file binernya harus ditempatkan di file bin secara manual.
sudo mv terraform /usr/local/bin/
  1. Gunakan perintah berikut untuk mengakses terraform dari baris perintah tanpa menentukan direktorinya.
terraform --versi

Cara Membuat Kunci SSH Anda Sendiri

Setelah menginstal terraform, langkah penting berikutnya adalah membuat pasangan kunci publik/pribadi SSH Anda sendiri untuk berkomunikasi dengan instance VM yang akan dibuat. Pasangan kunci SSH memberikan keamanan yang kuat atas otentikasi kata sandi/nama pengguna tradisional; maka mengikuti opsi ini sangat disarankan meskipun tidak wajib.

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

ssh-keygen

2. Pada awalnya, ia meminta nama untuk pasangan kunci, lalu frasa sandi untuk kunci ssh. Kunci publik dibuat sebagai .pub, sedangkan kunci pribadi dibuat sebagai . Kedua kunci dibuat di direktori aktif saat ini. Simpan kunci pribadi dengan aman di lokasi yang aman karena penting untuk mengakses instance VM.

Konfigurasikan Google Cloud dengan Terraform

Setelah dua segmen di atas selesai, lanjutkan dan buat akun uji coba gratis di Google Cloud. Karena membuat akun adalah proses yang sederhana, itu tidak dijelaskan di sini. Setelah mendapatkan akses ke konsol Google Cloud, ikuti langkah-langkah berikut untuk mengonfigurasi Google Cloud dengan terraform.

  1. Arahkan ke URL berikut.
    https://konsol.awan.google.com
  1. Klik tombol "Proyek Saya" di sudut kiri atas konsol.
  2. Buat proyek baru atau gunakan proyek yang sudah ada untuk panduan ini. Tujuan dari "proyek" adalah mengelompokkan berbagai layanan di Google Cloud. Proyek adalah simpul tertinggi dari hierarki layanan ini, dan layanan lainnya berada di bawahnya. Layanan yang dibuat di bawah satu proyek tidak dapat diakses dari proyek lain. Setelah proyek dibuat, salin dan simpan ID-nya di tempat yang aman. Pada tangkapan layar berikut, id proyeknya adalah karismatik-sum-202020, dan mungkin berbeda di konsol cloud Anda. 
  3. Arahkan ke url web berikut untuk mengunduh file kredensial dalam format JSON untuk mengautentikasi pengguna saat terhubung dengan platform cloud Google. Ini adalah akun administrator; maka pastikan file kredensial ini aman di lokasi yang aman. https://konsol.awan.google.com/apis/credentials/serviceaccountkey 
  4. Buat file dan ganti namanya menjadi main.tf. File ini adalah file konfigurasi untuk terraform, kemudian gunakan blok kode berikut sebagai baris kode pertama. Nama penyedia adalah untuk menyatakan penyedia untuk terhubung dengan. Terraform mendukung sejumlah besar platform cloud; maka nama platform cloud harus dinyatakan secara eksplisit. Ini dia Google, yang berarti terhubung dengan platform cloud Google. Selain heading, ada 3 atribut di blok, atribut “credentials” adalah untuk menentukan nama file kredensial yang diunduh di atas, nama proyek adalah lokasi di google cloud tempat instance VM dibuat. Id yang dibuat pada langkah 3 digunakan sebagai nama proyek di sini. Region adalah lokasi geografis tempat instance VM dibuat. Ada beberapa wilayah. Gunakan tautan ini untuk merujuk ke semua wilayah yang tersedia. https://cloud.google.penyedia com/appengine/docs/locations "google"
    kredensial = "$file("CREDENTIALS_FILE.json")"
    proyek     = "PROJECT_NAME"
    wilayah      = "REGION_NAME"

  1. Gunakan perintah berikut untuk menginstal plugin untuk terraform. Perintah berikut secara otomatis memindai file konfigurasi terraform dan mengidentifikasi plugin mana yang akan diinstal, selain itu juga mengunduh informasi penyedia untuk terraform. Panduan ini menggunakan platform Google Cloud; karenanya mengunduh informasi penyedia cloud terraform Google. Perintah mengidentifikasi penyedia dari nama yang tercantum pada kata kunci "penyedia" di file konfigurasi terraform. terraform init
  1. Gunakan dua blok kode berikut untuk menentukan informasi lebih lanjut untuk instance VM. Sejak awal, ia menggunakan plugin id acak untuk menghasilkan nomor acak dengan 8 digit, kemudian menetapkan nomor itu ke variabel instance_id untuk digunakan sebagai awalan nama untuk instance VM. Di blok kode kedua, itu membuat instance VM dengan nama “nucuta-vm-. Jenis mesin adalah paket server yang digunakan untuk meng-host instance VM. Lihat URL web ini untuk menemukan jenis mesin yang tersedia. https://cloud.google.com/compute/docs/machine-types. Zona adalah lokasi yang tepat dari wilayah. Terutama ada 3 zona yang tersedia di setiap wilayah, a, b, c. Setiap zona memiliki konfigurasi perangkat keras/perangkat lunaknya sendiri. Gunakan URL web ini untuk merujuk ke semua zona yang tersedia dan konfigurasi perangkat kerasnya. https://cloud.google.com/compute/docs/regions-zones/ resource "random_id" "instance_id"
    byte_panjang = 8

    resource "google_compute_instance" "nucuta"
    nama = "nucuta-vm-$random_id.contoh_id.heksa"
    machine_type = "f1-mikro"
    zona = "asia-selatan1-a"
  1. Gunakan blok kode berikut di dalam blok kode “google_compute_instance”. Ini menentukan sistem operasi yang akan digunakan. Gunakan URL web ini untuk menemukan semua sistem operasi yang tersedia untuk platform Google Cloud. https://cloud.google.com/compute/docs/images. Dikatakan gambar, karena sistem operasi disimpan sebagai file "gambar". Ketika file konfigurasi terraform sedang dieksekusi, file gambar diekstraksi, dan sistem operasinya diinstal di instance VM seperti pada komputer biasa. Atribut gambar dalam format ini, proyek gambar/keluarga gambar. boot_disk
    inisialisasi_params
    gambar = "ubuntu-os-cloud/ubuntu-1604-lts"

  1. Gunakan kode berikut di blok kode “google_compute_instance”. Ini menentukan skrip start-up untuk dijalankan pada instance VM yang baru dibuat. Skrip ini dieksekusi segera setelah instance VM dibuat. Dalam contoh berikut, ia memperbarui repositori informasi paket lokal dengan informasi terbaru, kemudian memperbarui semua paket dengan dist-upgrade, kemudian menginstal paket nginx. Pastikan untuk menggunakan flag -y untuk membuat proses menjadi non-interaktif, artinya secara otomatis menjalankan dan menjalankan proses tanpa memerlukan campur tangan pengguna. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade ;
    sudo apt-get -y install nginx"
  1. Gunakan blok kode berikut di blok kode “google_compute_instance”. Blok kode berikut menentukan antarmuka jaringan, yang digunakan untuk menghubungkan instans VM saat ini dengan instans, perangkat, dan jaringan VM lainnya. Blok Access_config digunakan untuk mengalokasikan instance VM sebuah alamat IP eksternal untuk mengaksesnya dari Internet. jaringan_interface
    jaringan = "default"
    akses_config

  1. Terakhir, gunakan blok kode berikut di blok kode “google_compute_instance”. Ini menentukan nama pengguna dan kunci SSH publik. Pastikan kunci SSH publik yang dihasilkan berada di folder yang sama dengan file konfigurasi terraform. Nama pengguna harus nama akun tempat kunci SSH dibuat, misalnya jika nama akun adalah root, maka nama pengguna adalah root. metadata
    sshKeys = "dilanga:$file("dilanga.pub")"

  1. Blok kode terakhir akan terlihat seperti ini 
  2. Gunakan blok kode berikut di luar dari blok kode “google_compute_instance”. Secara default, instance VM memblokir semua lalu lintas masuk dan keluar. Karena panduan ini membuat server web, port 80 dan 443 harus dibuka agar pengguna dapat mengaksesnya melalui Internet. Sejak awal, atribut name membuat profil di google compute firewall untuk aturan ini, atribut network menetapkan antarmuka jaringan mana yang diterapkan aturan, blok izinkan mengizinkan protokol dan portnya ditetapkan di bawahnya. Protokol Icmp digunakan untuk melakukan ping ke server web untuk memastikannya tersedia untuk umum. Ping sering digunakan oleh banyak layanan untuk mengetahui ketersediaan situs web. resource "google_compute_firewall" "default"
    nama    = "nginx-firewall"
    jaringan = "default"
     
    izinkan
    protokol = "tcp"
    port    = ["80", "443"]

     
    izinkan
    protokol = "icmp"

  3. Gunakan blok kode berikut di luar dari "google_compute_instance" untuk mencetak alamat IP publik instance VM saat ini. keluaran "ip"
    nilai = "$google_compute_instance.nucuta.jaringan_interface.0.akses_config.0.nat_ip"
  4. Gunakan perintah berikut untuk memverifikasi file konfigurasi, dan file kredensial. Itu juga mempratinjau bagaimana hasil akhir terlihat setelah file konfigurasi dieksekusi. rencana terraform
  5. kemudian gunakan perintah berikut untuk menjalankan file konfigurasi. terraform berlaku
  6. Sekarang gunakan alamat ip publik di browser web apa pun untuk mengakses server web instance VM.
  7. Gunakan perintah berikut untuk mengakses instance VM melalui SSH untuk mengelola server. Pastikan kunci pribadi ada di direktori saat ini atau tentukan jalur ke kunci pribadi.
  8. ssh -i @

    Kesimpulan

    Ini seharusnya cukup bagi Anda untuk memulai.  File konfigurasi lengkap, main.tf, ditunjukkan di bawah ini. Teks yang disorot dapat diubah sesuai dengan kebutuhan pengguna.

    penyedia "google"
    kredensial = "$file("dilannga_credentials.json")"
    proyek     = "charismatic-sum-202020"
    wilayah      = "asia-south1"

     
    sumber daya "random_id" "instance_id"
    byte_panjang = 8

     
    resource "google_compute_instance" "nucuta"
    nama         = "nucuta-vm-$random_id.contoh_id.heksa"
    machine_type = "f1-mikro"
    zona         = "asia-south1-a"
     
    boot_disk
    inisialisasi_params
    gambar = "ubuntu-os-cloud/ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade ;
    sudo apt-get -y install nginx"
     
    jaringan_interface
    jaringan = "default"
     
    akses_config
     


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


     
    resource "google_compute_firewall" "default"
    nama    = "nginx-firewall"
    jaringan = "default"
     
    izinkan
    protokol = "tcp"
    port    = ["80", "443"]

     
    izinkan
    protokol = "icmp"


     
    keluaran "ip"
    nilai = "$google_compute_instance.nucuta.jaringan_interface.0.akses_config.0.nat_ip"
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...
Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...
0 A.D. tutorial
Dari sekian banyak game strategi di luar sana, 0 A.D. berhasil menonjol sebagai judul yang komprehensif dan permainan taktis yang sangat dalam meskipu...