Hướng dẫn chi tiết ansible
Tác giả đã chọn Quỹ Nguồn mở và Miễn phí để nhận một khoản đóng góp như một phần của chương trình Viết cho DO donate. Show Nội dung bài viết
Giới thiệuAnsible là một công cụ quản lý cấu hình thực thi sách chơi, là danh sách các hành động có thể tùy chỉnh được viết bằng YAML trên các máy chủ mục tiêu được chỉ định. Nó có thể thực hiện tất cả các hoạt động khởi động, như cài đặt và cập nhật phần mềm, tạo và xóa người dùng cũng như cấu hình các dịch vụ hệ thống. Do đó, nó phù hợp để đưa lên các máy chủ mà bạn triển khai bằng Terraform, được tạo trống theo mặc định. Ansible và Terraform không phải là các giải pháp cạnh tranh, vì chúng giải quyết các giai đoạn khác nhau của cơ sở hạ tầng và triển khai phần mềm. Terraform cho phép bạn xác định và tạo cơ sở hạ tầng của hệ thống, bao gồm phần cứng mà các ứng dụng của bạn sẽ chạy trên đó. Ngược lại, Ansible định cấu hình và triển khai phần mềm bằng cách thực thi các sách phát của nó trên các phiên bản máy chủ được cung cấp. Chạy Ansible trên các tài nguyên Terraform được cung cấp trực tiếp sau khi tạo cho phép bạn làm cho các tài nguyên có thể sử dụng được cho trường hợp sử dụng của mình nhanh hơn nhiều. Nó cũng cho phép bảo trì và khắc phục sự cố dễ dàng hơn, bởi vì tất cả các máy chủ đã triển khai sẽ có các hành động giống nhau được áp dụng cho chúng. Trong hướng dẫn này, bạn sẽ triển khai Droplets bằng Terraform và ngay sau khi tạo, bạn sẽ khởi động Droplets bằng
Ansible. Bạn sẽ gọi Ansible trực tiếp từ Terraform khi một tài nguyên triển khai. Bạn cũng sẽ tránh giới thiệu các điều kiện cuộc đua bằng cách sử dụng Terraform’s Điều kiện tiên quyếtGhi chú: Hướng dẫn này đã được thử nghiệm cụ
thể với Terraform Bước 1 – Xác định giọtTrong bước này, bạn sẽ xác định các Droplets mà sau đó bạn sẽ chạy một playbook Ansible, sẽ thiết lập máy chủ web Apache. Giả sử bạn đang ở trong Add the following lines: ~/terraform-ansible/droplets.tf
Tại đây, bạn xác định tài nguyên Droplet chạy Ubuntu 18.04 với RAM 1GB trên lõi CPU trong khu vực Lưu và đóng tệp khi bạn hoàn tất. Bây giờ bạn đã xác định các Droplets mà Terraform sẽ triển khai. Trong bước tiếp theo, bạn sẽ viết một playbook Ansible sẽ thực thi trên từng giọt trong số ba Giọt được triển khai và sẽ triển khai máy chủ web Apache. Sau đó, bạn sẽ quay lại mã Terraform và thêm tích hợp với Ansible. Bước 2 – Viết một Playbook AnsibleBây giờ bạn sẽ tạo một playbook Ansible thực hiện các tác vụ thiết lập máy chủ ban đầu, chẳng hạn như tạo người dùng mới và nâng cấp các gói đã cài đặt. Bạn sẽ hướng dẫn Ansible những việc cần làm bằng cách viết nhiệm vụ, là các đơn vị hành động được thực thi trên các máy chủ đích. Các tác vụ có thể sử dụng các chức năng cài sẵn hoặc chỉ định các lệnh tùy chỉnh để chạy. Bên cạnh các tác vụ cho
thiết lập ban đầu, bạn cũng sẽ cài đặt máy chủ web Apache và kích hoạt Trước khi viết playbook, hãy đảm bảo rằng các khóa SSH công khai và riêng tư của bạn, tương ứng với khóa trong tài khoản DigitalOcean của bạn, có sẵn và có thể truy cập được trên máy mà bạn đang chạy Terraform và Ansible. Một vị trí điển hình để lưu trữ chúng trên Linux sẽ là Ghi chú: Trên Linux, bạn cần đảm bảo rằng tệp khóa riêng có các quyền thích hợp. Bạn có thể đặt chúng bằng cách chạy:
Bạn đã xác định một biến cho khóa riêng tư, vì vậy bạn chỉ cần thêm một biến cho vị trí khóa công khai. Mở ra Add the following line: ~/terraform-ansible/provider.tf
Khi bạn hoàn tất, hãy lưu và đóng tệp. Với You’ll be building the playbook gradually. First, you’ll need to define on which hosts the playbook will run, its name, and if the tasks should be run as root. Add the following lines: ~/terraform-ansible/apache-install.yml
Bằng cách thiết lập Tác vụ đầu tiên mà bạn sẽ thêm sẽ tạo một người dùng mới, không phải root. Nối định nghĩa nhiệm vụ sau vào sổ chơi của bạn: ~ / terraform-ansible / apache-install.yml
Trước tiên, bạn xác định một danh sách các nhiệm vụ và sau đó thêm một nhiệm vụ vào đó. Nó sẽ tạo một người dùng có tên sammy và cấp cho họ quyền truy cập siêu người dùng bằng cách sử dụng Tác vụ tiếp theo sẽ thêm khóa SSH công khai của bạn vào người dùng, vì vậy bạn sẽ có thể kết nối với khóa này sau này: ~ / terraform-ansible / apache-install.yml
Tác vụ này sẽ đảm bảo rằng khóa SSH công khai, được tra cứu từ một tệp cục bộ, là Bây giờ bạn có thể đặt hàng cài đặt Apache và ~ / terraform-ansible / apache-install.yml
Nhiệm vụ đầu tiên sẽ đợi cho đến khi cài đặt gói trước đó bằng cách sử dụng Tại thời điểm này, playbook của bạn sẽ giống như sau: ~ / terraform-ansible / apache-install.yml
Khi bạn hoàn tất, hãy kiểm tra xem các thụt lề của tất cả các phần tử YAML có chính xác và khớp với các phần tử được hiển thị ở trên hay không. Đây là tất cả những gì bạn cần xác định ở phía Ansible, vì vậy hãy lưu và đóng playbook. Bây giờ bạn sẽ sửa đổi mã triển khai Droplet để thực thi playbook này khi Droplet đã cấp phép xong. Bước 3 – Chạy Ansible trên các giọt đã triển khaiBây giờ bạn đã xác định các hành động mà Ansible sẽ thực hiện trên các máy chủ mục tiêu, bạn sẽ sửa đổi cấu hình Terraform để chạy nó khi tạo Droplet. Terraform cung cấp hai trình điều khiển thực thi các lệnh: Bây giờ bạn sẽ thêm các định nghĩa cấp phép vào Droplet của mình để chạy Ansible sau khi triển khai. Mở ra Add the highlighted lines: ~/terraform-ansible/droplets.tf
Giống như Terraform, Ansible chạy cục bộ và kết nối với các máy chủ mục tiêu thông qua SSH. Để chạy nó, bạn xác định một Như đã lưu ý, Khi bạn thực hiện xong các thay đổi, hãy lưu và đóng tệp. Sau đó, triển khai Droplets bằng cách chạy lệnh sau. Nhớ thay
Đầu ra sẽ dài. Droplets của bạn sẽ cung cấp và sau đó kết nối sẽ thiết lập với mỗi. Tiếp theo
Sau đó, Terraform sẽ chạy
Ở cuối đầu ra, bạn sẽ nhận được danh sách ba giọt và địa chỉ IP của chúng:
Bây giờ bạn có thể điều hướng đến một trong các địa chỉ IP trong trình duyệt của mình. Bạn sẽ đến trang chào mừng Apache mặc định, báo hiệu việc cài đặt thành công máy chủ web. Điều này có nghĩa là Terraform đã cấp phép máy chủ của bạn và sách vở Ansible của bạn được thực thi trên đó thành công. Để kiểm tra xem khóa SSH đã được thêm đúng vào sammy trên Droplets được cung cấp, hãy kết nối với một trong số chúng bằng lệnh sau:
Hãy nhớ nhập vị trí khóa riêng tư và địa chỉ IP của một trong những giọt được cấp phép, bạn có thể tìm thấy những thứ này trong đầu ra Terraform của mình. Đầu ra sẽ giống như sau:
Bạn đã kết nối thành công với mục tiêu và có được quyền truy cập trình bao cho sammy người dùng, xác nhận rằng khóa SSH đã được định cấu hình chính xác cho người dùng đó. Bạn có thể phá hủy các giọt đã triển khai bằng cách chạy lệnh sau, nhập
Trong bước này, bạn đã thêm vào thực thi sách vở Ansible dưới dạng Phần kết luậnTerraform và Ansible cùng nhau tạo thành một quy trình làm việc linh hoạt để quay các máy chủ với cấu hình phần cứng và phần mềm cần thiết. Chạy trực tiếp Ansible như một phần của quá trình triển khai Terraform cho phép bạn thiết lập và khởi động các máy chủ với các phụ thuộc cho công việc phát triển và ứng dụng của bạn nhanh hơn nhiều. Hướng dẫn này là một phần của loạt bài Cách Quản lý Cơ sở hạ tầng với Terraform. Loạt bài này bao gồm một số chủ đề về Terraform, từ việc cài đặt Terraform lần đầu tiên đến quản lý các dự án phức tạp. Bạn cũng có thể tìm thấy các nguồn nội dung Ansible bổ sung trên trang chủ đề Ansible của chúng tôi. . |