Monday, October 7, 2024

[Ansible] Cài đặt Terraform bằng Ansible

-

Để cài đặt Terraform bằng Ansible và phân biệt biến và cấu hình thành hai file riêng, chúng ta có thể sử dụng một số module và cấu trúc thư mục của Ansible như sau:

  • Tạo thư mục terraform để chứa các file Ansible cho việc cài đặt Terraform. Sử dụng lệnh sau để tạo thư mục này:
mkdir terraform
  • Tạo hai thư mục varstasks bên trong thư mục terraform. Thư mục vars sẽ chứa các biến được sử dụng trong cấu hình, và thư mục tasks sẽ chứa các nhiệm vụ được thực thi để cài đặt Terraform. Sử dụng lệnh sau để tạo các thư mục này:
cd terraform
mkdir vars tasks
  • Trong thư mục vars, tạo một file main.yml để định nghĩa các biến cho cấu hình Terraform. Ví dụ:
---
terraform_version: "1.0.11"
terraform_url: "https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_linux_amd64.zip"
  • Trong ví dụ này, chúng ta đang định nghĩa hai biến terraform_versionterraform_url. Biến terraform_version chứa phiên bản Terraform cần cài đặt, và biến terraform_url chứa URL để tải về file zip của Terraform.
  • Trong thư mục tasks, tạo một file main.yml để định nghĩa các nhiệm vụ để cài đặt Terraform. Ví dụ:
---
- name: Install unzip package
  apt:
    name: unzip
    state: present

- name: Download Terraform
  get_url:
    url: "{{ terraform_url }}"
    dest: "/tmp/terraform.zip"

- name: Install Terraform
  unarchive:
    src: "/tmp/terraform.zip"
    dest: "/usr/local/bin/"
    remote_src: yes
    creates: "/usr/local/bin/terraform"

Trong ví dụ trên, chúng ta sử dụng Ansible để cài đặt Terraform trên một số máy chủ được liệt kê trong file inventory. Đầu tiên, chúng ta đã khai báo biến terraform_version để xác định phiên bản Terraform cần được cài đặt, và biến terraform_download_url để chỉ định URL để tải xuống gói cài đặt.

Tiếp theo, chúng ta đã sử dụng module get_url để tải xuống gói cài đặt Terraform từ URL đã chỉ định và lưu trữ nó tại đường dẫn cục bộ /tmp/terraform.zip. Sau đó, chúng ta đã sử dụng module unarchive để giải nén gói cài đặt đó và lưu trữ nó tại đường dẫn cục bộ /tmp/terraform.

Cuối cùng, chúng ta đã sử dụng module copy để sao chép file thực thi Terraform vào thư mục /usr/local/bin/ để có thể sử dụng từ bất kỳ thư mục nào trên hệ thống.

Chúng ta đã tách biến và cấu hình thành các file riêng biệt và sử dụng đường dẫn tương đối để trỏ đến các file này, giúp cho quá trình quản lý và bảo trì mã Ansible trở nên dễ dàng hơn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories