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
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform
Xác nhận cài đặt
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:
Nhấn Subcribe để nhận thêm nhiều bài viết mới Like Facebook
[maxbutton id=”2″ ] [maxbutton id=”3″ ]
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Add Comment