Kem Intensif DevOps · Pelajaran

Pengenalan kepada Modul Terraform

Fahami manfaat menggunakan modul untuk merangkum dan menggunakan semula corak infrastruktur lazim, sekali gus memperbaik penyusunan serta kebolehselenggaraan kod.

Pelajaran 1 daripada 411 langkah

Pengenalan kepada Modul Terraform ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah Modul Terraform?

Modul Terraform ialah pakej konfigurasi Terraform yang berdikari. Anggaplah ia seperti fungsi atau kelas dalam bahasa pengaturcaraan. Modul membolehkan anda mengumpulkan sumber yang berkaitan dan menguruskannya sebagai satu unit.

Modul membantu anda menyusun kod infrastruktur dan menjadikannya lebih mudah diurus, terutamanya untuk projek yang lebih besar.

Mengapa Menggunakan Modul Terraform?

Modul memberikan beberapa manfaat utama kepada infrastruktur anda sebagai kod:

  • Kebolehgunaan Semula: Takrifkan sebahagian infrastruktur sekali dan gunakannya berulang kali merentas projek atau persekitaran yang berbeza.
  • Organisasi: Pecahkan konfigurasi kompleks kepada komponen yang lebih kecil, mudah diurus dan logik.
  • Kekonsistenan: Pastikan sumber disediakan dengan cara yang seragam setiap kali, sekali gus mengurangkan hanyutan konfigurasi dan ralat.
  • Kerjasama: Pasukan boleh membangunkan dan berkongsi modul, mempercepat pembangunan serta mengekalkan piawaian.

Penjelasan Struktur Modul

Modul Terraform pada asasnya ialah direktori yang mengandungi satu atau lebih fail .tf. Walaupun strukturnya fleksibel, struktur lazim merangkumi:

  • main.tf: Mentakrifkan sumber utama yang dicipta oleh modul.
  • variables.tf: Mengisytiharkan pemboleh ubah input yang menyesuaikan tingkah laku modul.
  • outputs.tf: Mentakrifkan nilai output yang didedahkan oleh modul kepada pemanggilnya.
  • versions.tf: Menentukan kekangan versi Terraform dan penyedia untuk modul.

Struktur yang tersusun ini membantu memastikan kod anda kemas dan mudah difahami.

Kod Modul Pertama Anda

Mari kita takrifkan modul yang sangat ringkas untuk mencipta baldi AWS S3. Kod ini biasanya disimpan dalam direktorinya sendiri, contohnya modules/my_s3_bucket/main.tf.

Fail lengkap ini boleh dijalankan sebagai modul akar untuk melihatnya berfungsi, tetapi tujuan utamanya di sini adalah untuk menunjukkan struktur dalaman modul.

provider "aws" {
  region = "us-east-1" # Example region
}

variable "bucket_name" {
  description = "Name for the S3 bucket."
  type        = string
}

variable "acl_setting" {
  description = "ACL for the S3 bucket."
  type        = string
  default     = "private"
}

resource "aws_s3_bucket" "example_bucket" {
  bucket = var.bucket_name
  acl    = var.acl_setting

  tags = {
    Environment = "Dev" # Example tag
  }
}

output "bucket_id" {
  description = "The ID of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.id
}

output "bucket_arn" {
  description = "The ARN of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.arn
}

Input Modul: Pemboleh Ubah

Pemboleh ubah input membolehkan anda menyesuaikan tingkah laku modul tanpa mengubah kod terasnya. Pemboleh ubah ini ditakrifkan dalam fail variables.tf dalam direktori modul.

Apabila anda memanggil modul, anda menghantar nilai kepada pemboleh ubah ini, menjadikan modul sangat boleh diguna semula untuk senario dan persekitaran yang berbeza. Anggaplah ia sebagai hujah fungsi.

variable "bucket_name" {
  description = "Name for the S3 bucket."
  type        = string
}

variable "acl_setting" {
  description = "ACL for the S3 bucket."
  type        = string
  default     = "private"
}

Output Modul: Mendedahkan Data

Nilai output digunakan untuk mendedahkan data daripada modul kepada konfigurasi yang memanggilnya. Dengan cara ini, anda boleh mengakses maklumat penting tentang sumber yang dicipta oleh modul.

Output ditakrifkan dalam fail outputs.tf dalam direktori modul dan boleh dirujuk oleh bahagian lain dalam konfigurasi Terraform anda atau oleh modul lain.

output "bucket_id" {
  description = "The ID of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.id
}

output "bucket_arn" {
  description = "The ARN of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.arn
}

Memanggil Modul Tersuai Anda

Sekarang modul my_s3_bucket telah ditakrifkan, mari kita panggilnya daripada konfigurasi akar. Atribut source menentukan tempat Terraform boleh mencari modul tersebut.

Bagi modul tempatan, ini ialah laluan relatif kepada direktori modul. Kami menghantar nilai kepada pemboleh ubah input modul dan boleh mengakses output yang didedahkannya.

provider "aws" {
  region = "us-east-1"
}

module "my_website_bucket" {
  source      = "./modules/my_s3_bucket" # Path to your local module
  bucket_name = "my-unique-website-bucket-12345"
  acl_setting = "public-read"
}

output "website_bucket_arn" {
  description = "ARN of the website S3 bucket."
  value       = module.my_website_bucket.bucket_arn
}

output "website_bucket_id" {
  description = "ID of the website S3 bucket."
  value       = module.my_website_bucket.bucket_id
}

Sumber Modul yang Berbeza

Modul bukan hanya untuk kegunaan tempatan! Terraform boleh mendapatkan modul daripada pelbagai sumber, memberikan anda fleksibiliti:

  • Laluan Tempatan: ./modules/my_module (seperti dalam contoh kami)
  • Terraform Registry: hashicorp/vpc/aws (modul yang tersedia secara awam)
  • Repositori Git: git::https://example.com/repo.git
  • Baldi S3: s3::https://s3-us-west-2.amazonaws.com/example-bucket/module.zip

Terraform Registry ialah tempat yang baik untuk mencari modul siap bina yang telah disemak oleh komuniti bagi corak infrastruktur lazim.

Kesan Praktikal Modul

Bayangkan anda mengurus ratusan sumber merentas berbilang persekitaran (pembangunan, pementasan, pengeluaran). Tanpa modul, anda akan mempunyai fail konfigurasi yang sangat besar dan berulang.

Modul membolehkan anda mentakrifkan corak "pelayan web" atau "pangkalan data" sekali sahaja. Kemudian, anda hanya perlu memanggil modul itu untuk setiap tika sambil menghantar pemboleh ubah yang berbeza bagi tetapan khusus persekitaran. Ini mengurangkan ralat dengan ketara, memudahkan kemas kini dan menjadikan infrastruktur anda benar-benar boleh diskalakan.

Semakan Pantas

Anda telah mempelajari struktur dan manfaat modul Terraform. Mari lihat sama ada anda boleh mengenal pasti satu kelebihan utama.

Imbas Kembali & Langkah Seterusnya

Dalam pelajaran ini, kami memperkenalkan modul Terraform sebagai alat berkuasa untuk menyusun dan menggunakan semula kod infrastruktur anda. Anda telah mempelajari perkara berikut:

  • Modul merangkum sumber ke dalam unit yang boleh diguna semula.
  • Modul meningkatkan organisasi kod, kekonsistenan dan kebolehgunaan semula.
  • Modul menggunakan variables.tf untuk input dan outputs.tf untuk data yang didedahkan.
  • Anda boleh memanggil modul daripada laluan tempatan, pendaftaran atau repositori Git.

Seterusnya, kita akan mendalami penciptaan modul boleh guna semula anda sendiri, serta meneroka corak lanjutan dan amalan terbaik.

Percuma untuk bermula

Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
142
Pelajaran
568

Soalan Lazim

Adakah pelajaran “Pengenalan kepada Modul Terraform” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Pengenalan kepada Modul Terraform”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengenalan kepada Modul Terraform”?

Fahami manfaat menggunakan modul untuk merangkum dan menggunakan semula corak infrastruktur lazim, sekali gus memperbaik penyusunan serta kebolehselenggaraan kod. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Pengenalan kepada Modul Terraform” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?

Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengenalan kepada Modul Terraform
  2. Mencipta Modul Boleh Guna Semula
  3. Menggunakan Ruang Kerja untuk Persekitaran
  4. Menerbitkan Modul ke Pendaftaran
← Kembali ke Kem Intensif DevOps