Hướng dẫn Ansible - Học viết Playbooks Ansible



Trong blog Hướng dẫn Ansible này, bạn sẽ học cách viết sách phát Ansible, lệnh adhoc và thực hiện thực hành để triển khai Nginx trên máy chủ của bạn.

Hướng dẫn Ansible

Tôi hy vọng bạn đã xem qua blog trước của tôi để học hỏi và các thuật ngữ được sử dụng nhiều nhất của Ansible. Trong trường hợp bạn chưa làm vậy, hãy kiểm tra để có thể hiểu rõ hơn về Hướng dẫn Ansible này.Bạn cũng nên biết rằng Ansible chiếm một phần quan trọng trong như một công cụ để quản lý cấu hình, triển khai và điều phối.

Hãy để tôi cung cấp cho bạn tổng quan về ‘Hướng dẫn Ansible’ này:





Hướng dẫn sử dụng Ansible Playbook | Đào tạo DevOps | Edureka

Hướng dẫn Ansible - Viết Playbook Ansible

Playbook trong Ansible được viết ở định dạng YAML. Nó là một ngôn ngữ tuần tự hóa dữ liệu có thể đọc được của con người. Nó thường được sử dụng cho các tệp cấu hình. Nó cũng có thể được sử dụng trong nhiều ứng dụng nơi dữ liệu đang được lưu trữ.



Đối với Ansible, gần như mọi tệp YAML đều bắt đầu bằng một danh sách. Mỗi mục trong danh sách là một danh sách các cặp khóa / giá trị, thường được gọi là “băm” hoặc “từ điển”. Vì vậy, chúng ta cần biết cách viết danh sách và từ điển trong YAML.

Tất cả các thành viên của danh sách là các dòng bắt đầu ở cùng một mức thụt lề bắt đầu bằng dấu “-” (dấu gạch ngang và dấu cách). Có thể có cấu trúc dữ liệu phức tạp hơn, chẳng hạn như danh sách từ điển hoặc từ điển hỗn hợp có giá trị là danh sách hoặc kết hợp cả hai.

ví dụ. Để biết danh sách các phòng ban trong edureka:



các bộ phận: - tiếp thị - bán hàng - giải pháp - viết nội dung - hỗ trợ - sản phẩm

Bây giờ để tôi cung cấp cho bạn một ví dụ về từ điển:

-USA-lục địa: Bắc Mỹ -vốn: Washington DC-dân số: 319 triệu

Máy chủ và Người dùng:

Đối với mỗi lần chơi trong một playbook, bạn có thể chọn máy nào trong cơ sở hạ tầng của mình để nhắm mục tiêu và người dùng từ xa nào để hoàn thành nhiệm vụ. Để đưa máy chủ vào khoảng không quảng cáo Ansible, chúng tôi sẽ sử dụng địa chỉ IP của máy chủ.

Nói chung máy chủ là danh sách một hoặc nhiều nhóm hoặc mẫu máy chủ, được phân tách bằng dấu hai chấm. Người dùng từ xa chỉ là tên của tài khoản người dùng.

Biến:

Ansible sử dụng các biến đã được xác định trước đó để cho phép tính linh hoạt hơn trong các vở kịch và vai trò. Chúng có thể được sử dụng để lặp qua một tập các giá trị nhất định, truy cập nhiều thông tin khác nhau như tên máy chủ của hệ thống và thay thế các chuỗi nhất định trong các mẫu bằng các giá trị cụ thể.

Ansible đã định nghĩa một tập hợp các biến phong phú, riêng lẻ cho từng hệ thống. Bất cứ khi nào Ansible chạy trên một hệ thống, tất cả các dữ kiện và thông tin về hệ thống được thu thập và đặt dưới dạng các biến.

Nhưng có một qui định để đặt tên biến. Tên biến phải là chữ cái, số và dấu gạch dưới. Các biến phải luôn bắt đầu bằng một chữ cái. Ví dụ. wamp_21, port5 là các tên biến hợp lệ, trong khi 01_port, _server không hợp lệ.

Nhiệm vụ:

Các tác vụ cho phép bạn chia nhỏ chính sách cấu hình thành các tệp nhỏ hơn. Tác vụ bao gồm kéo từ các tệp khác. Task trong Ansible đi kèm với khá nhiều nghĩa tiếng Anh của nó.

Ví dụ: Cài đặt, cập nhật, v.v.

Người xử lý:

Các trình xử lý cũng giống như các tác vụ thông thường trong một playbook Ansible, nhưng chỉ được chạy nếu Tác vụ có chứa chỉ thị thông báo và cũng chỉ ra rằng nó đã thay đổi điều gì đó. Ví dụ: nếu tệp cấu hình bị thay đổi, thì tác vụ tham chiếu tệp cấu hình có thể thông báo cho trình xử lý khởi động lại dịch vụ.

Hãy để tôi cung cấp cho bạn một ví dụ về một playbook sẽ khởi động chương trình máy chủ Apache httpd:

hướng dẫn sql của tôi cho người mới bắt đầu
----máy chủ: máy chủ web ai: http_port: 80 max_clients: 200 remote_user: nguồn gốc nhiệm vụ: - Tên: đảm bảo apache là phiên bản mới nhất yum: name = httpd state = mới nhất - Tên: ghi tệp cấu hình apache bản mẫu: src = / srv / httpd.j2 dest = / etc / httpd.conf thông báo: - khởi động lại apache - Tên: đảm bảo apache đang chạy (và kích hoạt nó khi khởi động) dịch vụ: name = httpd state = started enable = yes người xử lý: - Tên: khởi động lại apache dịch vụ: name = httpd state = khởi động lại

Tôi hy vọng ví dụ sẽ giúp bạn liên quan đến tất cả các mô tả về các thành phần của playbook mà tôi đã đề cập ở trên. Nếu bạn vẫn chưa hiểu rõ, đừng lo lắng, tất cả những nghi ngờ của bạn sẽ rõ ràng trong phần sau của blog này.

Đây là tất cả về sách vở. Sách vở sẽ do bạn viết. Nhưng Ansible cũng cung cấp cho bạn một loạt các mô-đun mà bạn có thể sử dụng.

Hướng dẫn Ansible - Mô-đun

Các mô-đun trong Ansible là Idempotent. Từ quan điểm dịch vụ RESTful, để một hoạt động (hoặc cuộc gọi dịch vụ) trở nên lý tưởng, khách hàng có thể thực hiện lặp lại cùng một cuộc gọi trong khi tạo ra cùng một kết quả. Nói cách khác, việc đưa ra nhiều yêu cầu giống hệt nhau có tác dụng giống như việc đưa ra một yêu cầu duy nhất.

Có nhiều loại mô-đun khác nhau trong Ansible

  • Mô-đun cốt lõi
  • mô-đun bổ sung

Mô-đun cốt lõi

Đây là những mô-đun mà nhóm Ansible cốt lõi duy trì và sẽ luôn vận chuyển cùng với chính Ansible. Họ cũng sẽ nhận được mức độ ưu tiên cao hơn một chút cho tất cả các yêu cầu so với những yêu cầu trong repo 'bổ sung'.

Nguồn của các mô-đun này được Ansible lưu trữ trên GitHub trong lõi Ansible-module-core.

Mô-đun bổ sung

Các mô-đun này hiện được vận chuyển cùng với Ansible, nhưng có thể được vận chuyển riêng trong tương lai. Chúng cũng hầu hết được duy trì bởi cộng đồng Ansible. Các mô-đun không phải lõi vẫn hoàn toàn có thể sử dụng được, nhưng có thể nhận được tỷ lệ phản hồi thấp hơn một chút cho các sự cố và yêu cầu kéo.

Các mô-đun “bổ sung” phổ biến có thể được thăng cấp thành các mô-đun cốt lõi theo thời gian.

Nguồn cho các mô-đun này được Ansible lưu trữ trên GitHub trong Ansible-module-extras.

Ví dụ: Một trong những mô-đun bổ sung trong Mô-đun Quản lý Từ xa là mô-đun ipmi_power, là một bộ quản lý nguồn cho các máy từ xa. Nó yêu cầu python 2.6 trở lên và pyghmi để chạy.

Bạn có thể sử dụng mô-đun này bằng cách viết lệnh adhoc như lệnh tôi đã viết bên dưới:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Hướng dẫn Ansible - Giá trị Trả lại

Các mô-đun Ansible thường trả về một cấu trúc dữ liệu có thể được đăng ký vào một biến hoặc được nhìn thấy trực tiếp khi xuất ra bởi chương trình Ansible. Mỗi mô-đun có thể tùy chọn ghi lại các giá trị trả về duy nhất của riêng nó.

Một số ví dụ về giá trị trả về là:

  • đã thay đổi: trả về với giá trị boolean bất cứ khi nào tác vụ thực hiện bất kỳ thay đổi nào.
  • fail: trả về giá trị boolean, nếu tác vụ không thành công
  • msgstr: nó trả về một chuỗi với một thông báo chung được chuyển tiếp đến người dùng.

Hướng dẫn Ansible - Lệnh AdHoc

Lệnh Adhoc là lệnh đơn giản một dòng để thực hiện một số hành động. Các mô-đun chạy với lệnh Ansible là lệnh adhoc.

Ví dụ:

ansible host -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

Lệnh adhoc ở trên sử dụng mô-đun netscaler để vô hiệu hóa máy chủ. Có hàng trăm mô-đun có sẵn trong Ansible, từ đó bạn có thể tham khảo và viết các lệnh adhoc.

Vâng, đủ với tất cả các giải thích lý thuyết, hãy để tôi giải thích cho bạn về Ansible.

sự khác biệt giữa ansible và đầu bếp

Hướng dẫn Ansible - Thực hành

Tôi sẽ viết một playbook để cài đặt Nginx trên máy chủ / nút của tôi.

Hãy bắt đầu nào :)

Bước 1: Kết nối với máy chủ của bạn bằng SSH. Để làm được điều đó, bạn cần tạo khóa SSH công khai.

Sử dụng lệnh dưới đây:

ssh-keygen

Tạo khóa Ssh - Hướng dẫn Ansible - Edureka

Như bạn có thể thấy trong ảnh chụp nhanh ở trên, lệnh ssh-keygen đã tạo khóa SSH công khai.

Bước 2: Nhiệm vụ tiếp theo của bạn là sao chép khóa SSH công khai trên máy chủ của bạn. Để làm điều đó, hãy sử dụng lệnh dưới đây:

ssh-copy-id -i root @

Ảnh chụp nhanh ở trên cho thấy khóa SSH đang được sao chép vào máy chủ.

Bước 3: Liệt kê địa chỉ IP của các máy chủ / nút trong kho của bạn.

Sử dụng lệnh sau:

vi / etc / ansible / hosts

Thao tác này sẽ mở ra một trình soạn thảo vi, nơi bạn có thể liệt kê các địa chỉ IP của máy chủ của bạn. Đây bây giờ là hành trang của bạn.

Bước 4: Hãy ping để đảm bảo kết nối đã được thiết lập.

Ảnh chụp nhanh ở trên xác nhận rằng kết nối đã được thực hiện giữa máy điều khiển và máy chủ của bạn.

kiến thức cơ bản về máy chủ sql cho người mới bắt đầu

Bước 5: Bây giờ chúng ta hãy viết một playbook để cài đặt Nginx trên máy chủ. Bạn có thể viết playbook của mình trong trình chỉnh sửa vi. Đối với điều đó, chỉ cần tạo playbook của bạn bằng lệnh:

vi

Ảnh chụp nhanh dưới đây cho thấy playbook của tôi để cài đặt Nginx được viết ở định dạng YAML.

Các nhiệm vụ của một playbook được định nghĩa trong YAML như một danh sách các từ điển và được thực hiện từ trên xuống dưới. Nếu chúng ta có nhiều máy chủ, thì mỗi tác vụ được thử cho mỗi máy chủ trước khi chuyển sang tác vụ tiếp theo. Mỗi nhiệm vụ được định nghĩa như một từ điển có thể có một số khóa, chẳng hạn như “tên” hoặc “sudo” biểu thị tên của nhiệm vụ và liệu nó có yêu cầu đặc quyền sudo hay không.

Một biến số cổng máy chủ được đặt lắng nghe trên cổng TCP 8080 cho các yêu cầu đến.

Ở đây, nhiệm vụ đầu tiên là lấy gói cần thiết để cài đặt Nginx và sau đó cài đặt nó.Trong nội bộ, Ansible sẽ kiểm tra xem thư mục có tồn tại hay không và tạo nó nếu không, nếu không, nó sẽ không làm gì cả.

Nhiệm vụ tiếp theo là cấu hình Nginx.Trong Nginx, ngữ cảnh chứa chi tiết cấu hình.

Ở đây, mẫu là một tệp bạn có thể triển khai trên máy chủ. Tuy nhiên, tệp mẫu cũng bao gồm một số biến tham chiếu được lấy từ các biến được xác định là một phần của sách phát Ansible hoặc dữ kiện thu thập từ máy chủ. Dữ liệu chứa chi tiết cấu hình đang được lấy từ thư mục nguồn và được sao chép vào thư mục đích.

Các trình xử lý ở đây xác định hành động chỉ được thực hiện khi có thông báo về nhiệm vụ hoặc thay đổi trạng thái. Trong playbook này, chúng tôi đã xác định, thông báo: khởi động lại trình xử lý Nginx sẽ khởi động lại Nginx khi tệp và mẫu được sao chép vào máy chủ.

Bây giờ, hãy lưu tệp và thoát.

Bước 6: Bây giờ, hãy chạy playbook này bằng cách sử dụng lệnh bên dưới:

ansible-playbook .yml

Chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng tác vụ của chúng ta đang được thực thi Nginx đang được cài đặt.

Bước 7: Hãy kiểm tra xem Nginx đã được cài đặt trên máy chủ của tôi chưa. Sử dụng lệnh dưới đây:

ps waux | grep nginx

Bạn có thể thấy trong ảnh chụp màn hình ở trên, rằng các id quy trình khác nhau 3555 và 103316 đang chạy, điều này đảm bảo rằng Nginx đang chạy trên các máy chủ của bạn.

Xin chúc mừng! Bạn đã triển khai thành công Nginx trên máy chủ của mình bằng cách sử dụng sách phát Ansible. Tôi hy vọng bạn đã thích đọc blog Hướng dẫn Ansible này. Vui lòng cho tôi biết nếu bạn có bất kỳ thắc mắc nào trong phần bình luận bên dưới.

Nếu bạn tìm thấy điều này “ Hướng dẫn Ansible ' liên quan, thích hợp, kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo Chứng chỉ Edureka DevOps giúp người học có được kiến ​​thức chuyên môn về các quy trình và công cụ DevOps khác nhau như Puppet, Jenkins, Ansible, Nagios và Git để tự động hóa nhiều bước trong SDLC.