Terraform cloud

[Tự học Terraform] phần 1: Hướng dẫn cài đặt Terraform và tạo Service Account Google Cloud

Giới Thiệu

Terraform là công cụ có khả năng quản lý cơ sở hạ tầng dưới dạng  mã Code của HashiCorp. Nó là một công cụ để xây dựng, thay đổi và quản lý cơ sở hạ tầng một cách an toàn. Các nhóm vận hành hệ thống và cơ sở hạ tầng có thể sử dụng Terraform để quản lý môi trường bằng ngôn ngữ được gọi là Ngôn ngữ cấu hình HashiCorp (HCL) để con người có thể đọc được, và tự động hóa triển khai. 

Trong bài này, chúng ta sẽ tìm hiểu về 3 phần là: tệp tin cấu hình, resource và module. 

Cấu hình tệp tin

Tập hợp các tập tin được sử dụng để mô tả cơ sở hạ tầng ở Terraform được gọi đơn giản là “Terraform configuration”. Terraform sử dụng ngôn ngữ cấu hình riêng của nó, dùng để mô tả ngắn gọn về cơ sở hạ tầng. 

Trong Terraform, chúng sử dụng ngôn ngữ được gọi là HCL (Hashcorp Configuration Language). Các file cấu hình có thể sử dụng dạng JSON, nhưng dạng này ít khi được sử dụng trong Terraform.

Thành phần nhỏ nhất của việc cấu hình là các đối số. Tập hợp nhiều đối số tạo thành khối và nhiều khối sẽ tạo thành module.

Cấu trúc thư mục có thể được hiển thị như sau:

Nói chung, chúng ta có thể nghĩ như sau:

Arguments   >   Blocks   >   Modules   >Terraform

Resources và Modules

Một cấu hình dạng Terraform bao gồm một mô-đun gốc ( root module ). Các mô-đun con bên trong, khi chúng gọi lẫn nhau sẽ tạo thành một cây thư mục con.

Mục đích chính của ngôn ngữ Terraform là khai báo các resource sử dụng. Tất cả các tính năng của những ngôn ngữ khác, mục đích cũng chỉ là để làm cho việc định nghĩa của resource linh hoạt hơn và thuận tiện hơn mà thôi.

Một nhóm các Resource có thể được tập hợp chung vào một module, tạo ra một đơn vị cấu hình lớn hơn. Trong khi, một tài nguyên dùng để cấu hình cơ sở hạ tầng, còn mô-đun có thể mô tả, cấu hình một tập hợp nhiều đối tượng và thể hiện các mối quan hệ cần thiết giữa chúng để tạo ra một hệ thống phức tạp hơn.

Vì vậy, trong thư mục Terraform root , có thể có nhiều thư mục module được gọi là root Module.

— — — — main terraform folder
— — — — — — — — -build
— — — — — — — — — — -main.tf, auth.tf,
— — — — — — — — -test
— — — — — — — — — — main.tf, auth.tf
— — — — — — — — -production
— — — — — — — — — — -main.tf,auth.tf
— — — — — — — — -Modules
— — — — — — — — — — -ebs,sg,vpc

Như vậy, chúng ta vừa lướt qua các thành phần chính của Terraform.  Tệp fin “Tf” có thể được gọi từ bất kỳ nơi nào, kể cả từ Github.

Install Terraform

Thêm the HashiCorp GPG key.
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
Thêm Add the official HashiCorp Linux repository.
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
Cập nhật và cài đặt
sudo apt-get update && sudo apt-get install terraform
Xác nhận cài đặt
terraform -help
Như vậy, chúng ta vừa thực xong bước cài đặt Terraform. Tiếp theo, ta sẽ tiến hành tạo và lấy key trên Google cloud, key này dùng để cho Terraform kết nối đến GCP. 

Tạo Service Account 

Trong bài này, chúng ta sẽ tạo và phân quyền Organization và Project ( có thể tùy chỉnh cho phù hợp với bạn )

Bạn click vào “IAM & Admin” > Service Account.

Chọn “Create Service Account“, điền tên Service Account.

Kế đến là phần phân quyền :

  • Organization Administrator
  • Storage Admin: full quyền với dịch vụ Google Cloud Storage
  • Compute Admin: full quyền với dịch vụ Compute Engine
  • Kubernetes Engine Admin: full quyền quản lý dịch vụ Kubernetes Cluster
  • Compute Network Admin: full quyền quản lý dịch vụ Networking

Sau khi “DONE” bạn sẽ có thông tin Service Account ở trang quản lý .

 

Bạn bấm vào tài khoản Service Account vừa khởi tạo, để tạo một key mới giúp cung cấp thông tin về tài khoản chứng thực GCP cho terraform.

Chọn định dạng file json.

Sau đấy lưu thông tin file JSON Service Account xuống máy tính của bạn.

2. Kích hoạt các GCP API cần thiết

Bạn cần kích hoạt các API sau cho Terraform sử dụng trên Project mà bạn quản lý hạ tầng:

+ Cloud Resource Manager API

 

 

+ Cloud Billing API

 

+ Identity and Access Management API

 

+ Compute Engine API

 

 

Như vậy, chúng ta vừa thực hiện xong bước cài đặt Terraform và tạo Service Account trên Google Cloud. Chúc các bạn thành công. 

          Nguồn:                  

congdonglinux.com

             Nhấn Subcribe để nhận thêm nhiều bài viết mới                              Like Facebook

                                       Nhấn Subcribe                                                           Like Facebook 

Add Comment

Click here to post a comment