AWX là một ứng dụng web nguồn mở cung cấp giao diện người dùng, REST API và công cụ tác vụ cho Ansible. Đây là phiên bản nguồn mở của Ansible Tower. AWX cho phép bạn quản lý sổ tay hướng dẫn, kho lưu trữ và lên lịch các tác vụ Ansible để chạy bằng giao diện web.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng cơ bản của Ansible AWX. Vì vậy, bạn cần một máy chủ đã được cài đặt Ansible AWX. Chúng tôi sẽ giới thiệu một số cấu hình cơ bản của Ansible AWX mà bạn phải biết, chẳng hạn như thông tin xác thực thiết lập, kho lưu trữ, thiết lập và chạy mẫu công việc, v.v. Nếu bạn chưa cài đặt Ansible, vui lòng xem hướng dẫn này: https://www.howtoforge.com/how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.
Điều kiện tiên quyết
[*] Quyền root
Những gì chúng ta sẽ làm:
Chúng ta có hai máy chủ cho chính awx và máy mục tiêu.
Bây giờ chúng ta sẽ triển khai playbook với tư cách là người dùng có tên là 'hakase' và sử dụng xác thực SSH dựa trên khóa. Vì vậy, hãy đảm bảo rằng bạn đã thiết lập xác thực dựa trên người dùng và khóa trên máy mục tiêu 'lemp'.
Kiểm tra bằng lệnh sau từ máy chủ 'ansible-awx'.
Đảm bảo rằng bạn đã đăng nhập mà không cần bất kỳ mật khẩu nào.
Bây giờ người dùng 'hakase' phải có mật khẩu root không cần mật khẩu để chạy các tác vụ.
Trên máy mục tiêu 'lemp', hãy chạy lệnh sudo như bên dưới.
Đảm bảo rằng bạn đã nhập các đặc quyền root mà không cần mật khẩu.
Bây giờ bạn phải cài đặt các gói python trên tất cả các máy mục tiêu do Ansible quản lý.
Theo mặc định, Ansible AWX hỗ trợ nhiều thông tin xác thực, bao gồm máy VM thông qua xác thực SSH, Amazon Web Services, Google Compute Engine, OpenStack, mật khẩu Vault, Source Control, v.v.
Để thiết lập thông tin xác thực, hãy nhấp vào menu 'Thông tin xác thực' ở bên trái và nhấp vào nút '+' ở bên phải của menu đó.
Bây giờ hãy nhập thông tin xác thực 'TÊN' và 'MÔ TẢ', sau đó chỉ định 'LOẠI THÔNG TIN XÁC NHẬN' thành 'Máy'.
Đơn giản là thông tin xác thực 'Máy' sẽ cho phép bạn sử dụng xác thực SSH để quản lý máy chủ. Hỗ trợ cả xác thực dựa trên mật khẩu và khóa.
Đối với hướng dẫn này, chúng tôi sẽ sử dụng xác thực dựa trên khóa. Vì vậy, hãy nhập tên người dùng và dán khóa riêng cho người dùng đó.
Sau đó, nhấp vào nút 'LƯU'.
Kết quả là, loại thông tin xác thực Ansible AWX mới 'Máy' đã được tạo.
Để quản lý và cung cấp máy chủ, chúng ta phải tạo một nhóm hàng tồn kho mới, sau đó thêm máy chủ lưu trữ vào nhóm hàng tồn kho đó.
Để thêm hàng tồn kho mới, hãy nhấp vào menu 'Hàng tồn kho' ở bên trái, sau đó nhấp vào nút '+' và chọn 'Hàng tồn kho'.
Nhập 'TÊN' và 'MÔ TẢ' của hàng tồn kho, sau đó nhấp vào nút 'LƯU'.
Bây giờ hãy nhấp vào tab 'HOSTS' và nhấp vào nút '+' để thêm máy chủ mới.
Nhập 'TÊN MÁY CHỦ', 'MÔ TẢ' và 'BIẾN' với cấu hình bổ sung cho địa chỉ IP của máy đích 'ansible_host: 10.5.5.21'.
Bây giờ hãy nhấp vào nút 'LƯU'.
Tiếp theo, chúng ta cần đảm bảo cấu hình máy chủ bằng cách kiểm tra máy chủ bằng lệnh ping.
Quay lại tab 'MÁY CHỦ', đánh dấu vào máy chủ tên máy chủ của bạn và nhấp vào nút 'CHẠY LỆNH'.
Bây giờ hãy chọn 'MÔ-ĐUN' có tên là 'ping', nhấp vào nút tìm kiếm bên trong 'THÔNG TIN MÁY' và 'CHỌN' của riêng bạn, sau đó nhấp vào nút 'KHỞI CHẠY'.
Bạn sẽ được chuyển hướng đến trang mới và bên dưới là kết quả.
Một kho lưu trữ mới đã được tạo và máy chủ mục tiêu đã được thêm vào đó.
Để tạo dự án mới, hãy nhấp vào menu 'Dự án' ở bên trái và nhấp vào nút '+'.
Nhập 'TÊN' của dự án và 'MÔ TẢ', sau đó chọn 'LOẠI SCM' thành 'Git' và dán kho lưu trữ playbook của bạn.
Bây giờ hãy nhấp vào nút 'LƯU' và kết quả là một dự án mới cho playbook đã được tạo.
Ngoài ra:
Nếu bạn muốn tạo một dự án mới với loại SCM 'Manual', bạn có thể tạo một thư mục playbook mới nằm trong thư mục '/var/lib/awx/projects'.
Thư mục '/var/lib/awx/projects' là thư mục dự án mặc định cho playbook Ansible của bạn nếu bạn đang sử dụng phiên bản docker AWX với 'project_data_dir' được bật.
Đối với hướng dẫn này, chúng tôi đã tạo Dự án, Thông tin xác thực và Kho hàng mới. Vì vậy, chỉ cần nhấp vào menu 'Mẫu' ở bên trái, sau đó nhấp vào nút '+' và chọn tùy chọn 'Mẫu công việc'.
Bây giờ bạn cần nhập 'TÊN' và 'MÔ TẢ' của công việc. Sau đó chọn 'KHO', 'CHỨNG NHẬN' và 'DỰ ÁN'. Sau đó, hãy chỉ định 'PLAYBOOK' mà bạn muốn chạy và triển khai.
Và kết quả là mẫu công việc mới Ansible AWX đã được tạo.
Nhấp vào menu 'Mẫu' ở bên trái và bạn sẽ nhận được danh sách các mẫu công việc khả dụng.
Sau khi công việc hoàn tất, bạn sẽ nhận được dấu hiệu màu xanh lá cây bên trong tên mẫu công việc.
Nhấp vào dấu hiệu màu xanh lá cây bên trong tên mẫu công việc và bạn sẽ thấy kết quả thực tế của công việc đó.
Công việc đã hoàn thành thành công và máy đích đã được cài đặt LEMP Stack thông qua Ansible AWX.
Kiểm tra các dịch vụ Nginx và PHP-FPM bằng lệnh systemctl.
Kiểm tra cơ sở dữ liệu MySQL trên máy đích. Cấu hình chi tiết của cơ sở dữ liệu MySQL được lưu trữ tại tệp cấu hình 'roles/db/vars/main.yml'.
Kết quả là, LEMP Stack đã được cài đặt trên máy đích thông qua Ansible AWX.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng cơ bản của Ansible AWX. Vì vậy, bạn cần một máy chủ đã được cài đặt Ansible AWX. Chúng tôi sẽ giới thiệu một số cấu hình cơ bản của Ansible AWX mà bạn phải biết, chẳng hạn như thông tin xác thực thiết lập, kho lưu trữ, thiết lập và chạy mẫu công việc, v.v. Nếu bạn chưa cài đặt Ansible, vui lòng xem hướng dẫn này: https://www.howtoforge.com/how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.
Điều kiện tiên quyết
- 2 hoặc 3 máy chủ10.5.5.20 ansible-awx
- 10.5.5.21 lemp
[*] Quyền root
Những gì chúng ta sẽ làm:
- Thiết lập và cấu hình môi trường
- Thiết lập thông tin xác thực
- Thiết lập hàng tồn kho
- Thiết lập dự án
- Thiết lập mẫu công việc
- Chạy công việc
Bước 1 - Thiết lập và cấu hình môi trường
Trong hướng dẫn này, chúng ta sẽ triển khai và chạy playbook Ansible để cài đặt LEMP cơ bản thông qua bảng điều khiển Ansible AWX.Chúng ta có hai máy chủ cho chính awx và máy mục tiêu.
Mã:
10.5.5.20 ansible-awx
10.5.5.21 lemp
Kiểm tra bằng lệnh sau từ máy chủ 'ansible-awx'.
Mã:
su - hakase
ssh [emailprotected]
Bây giờ người dùng 'hakase' phải có mật khẩu root không cần mật khẩu để chạy các tác vụ.
Trên máy mục tiêu 'lemp', hãy chạy lệnh sudo như bên dưới.
Mã:
su - hakase
sudo su
Bây giờ bạn phải cài đặt các gói python trên tất cả các máy mục tiêu do Ansible quản lý.
Mã:
sudo apt install python -y
Bước 2 - Thiết lập thông tin xác thực
Trước hết, chúng ta cần cấu hình thông tin xác thực Ansible AWX. Nó được sử dụng để xác thực khi khởi chạy và chạy các công việc trên các máy chủ được quản lý, đồng bộ hóa với các nguồn kiểm kê và nhập các dự án.Theo mặc định, Ansible AWX hỗ trợ nhiều thông tin xác thực, bao gồm máy VM thông qua xác thực SSH, Amazon Web Services, Google Compute Engine, OpenStack, mật khẩu Vault, Source Control, v.v.
Để thiết lập thông tin xác thực, hãy nhấp vào menu 'Thông tin xác thực' ở bên trái và nhấp vào nút '+' ở bên phải của menu đó.
Bây giờ hãy nhập thông tin xác thực 'TÊN' và 'MÔ TẢ', sau đó chỉ định 'LOẠI THÔNG TIN XÁC NHẬN' thành 'Máy'.
Đơn giản là thông tin xác thực 'Máy' sẽ cho phép bạn sử dụng xác thực SSH để quản lý máy chủ. Hỗ trợ cả xác thực dựa trên mật khẩu và khóa.
Đối với hướng dẫn này, chúng tôi sẽ sử dụng xác thực dựa trên khóa. Vì vậy, hãy nhập tên người dùng và dán khóa riêng cho người dùng đó.
Sau đó, nhấp vào nút 'LƯU'.
Kết quả là, loại thông tin xác thực Ansible AWX mới 'Máy' đã được tạo.
Bước 3 - Thiết lập Inventories
Inventories là nhóm máy chủ lưu trữ được Ansible AWX quản lý. Inventories cho phép bạn tạo một nhóm có nhiều máy chủ lưu trữ trên đó. Và nó giúp quản lý các máy chủ khác nhau với các môi trường khác nhau dễ dàng hơn.Để quản lý và cung cấp máy chủ, chúng ta phải tạo một nhóm hàng tồn kho mới, sau đó thêm máy chủ lưu trữ vào nhóm hàng tồn kho đó.
Để thêm hàng tồn kho mới, hãy nhấp vào menu 'Hàng tồn kho' ở bên trái, sau đó nhấp vào nút '+' và chọn 'Hàng tồn kho'.
Nhập 'TÊN' và 'MÔ TẢ' của hàng tồn kho, sau đó nhấp vào nút 'LƯU'.
Bây giờ hãy nhấp vào tab 'HOSTS' và nhấp vào nút '+' để thêm máy chủ mới.
Nhập 'TÊN MÁY CHỦ', 'MÔ TẢ' và 'BIẾN' với cấu hình bổ sung cho địa chỉ IP của máy đích 'ansible_host: 10.5.5.21'.
Bây giờ hãy nhấp vào nút 'LƯU'.
Tiếp theo, chúng ta cần đảm bảo cấu hình máy chủ bằng cách kiểm tra máy chủ bằng lệnh ping.
Quay lại tab 'MÁY CHỦ', đánh dấu vào máy chủ tên máy chủ của bạn và nhấp vào nút 'CHẠY LỆNH'.
Bây giờ hãy chọn 'MÔ-ĐUN' có tên là 'ping', nhấp vào nút tìm kiếm bên trong 'THÔNG TIN MÁY' và 'CHỌN' của riêng bạn, sau đó nhấp vào nút 'KHỞI CHẠY'.
Bạn sẽ được chuyển hướng đến trang mới và bên dưới là kết quả.
Một kho lưu trữ mới đã được tạo và máy chủ mục tiêu đã được thêm vào đó.
Bước 4 - Thiết lập Dự án
Các dự án được thể hiện dưới dạng Ansible Playbooks trên AWX. Bộ sưu tập Ansible Playbook mà chúng ta có thể quản lý thông qua thư mục dự án cục bộ hoặc sử dụng hệ thống SCM như Git, Subversion, Mercurial và RedHat Insights.Để tạo dự án mới, hãy nhấp vào menu 'Dự án' ở bên trái và nhấp vào nút '+'.
Nhập 'TÊN' của dự án và 'MÔ TẢ', sau đó chọn 'LOẠI SCM' thành 'Git' và dán kho lưu trữ playbook của bạn.
Bây giờ hãy nhấp vào nút 'LƯU' và kết quả là một dự án mới cho playbook đã được tạo.
Ngoài ra:
Nếu bạn muốn tạo một dự án mới với loại SCM 'Manual', bạn có thể tạo một thư mục playbook mới nằm trong thư mục '/var/lib/awx/projects'.
Thư mục '/var/lib/awx/projects' là thư mục dự án mặc định cho playbook Ansible của bạn nếu bạn đang sử dụng phiên bản docker AWX với 'project_data_dir' được bật.
Bước 5 - Tạo mẫu công việc mới
Mẫu công việc là định nghĩa của chính playbook Ansible đang chạy. Vì vậy, để tạo mẫu công việc mới hoặc chạy mẫu công việc, chúng ta cần thêm playbook Ansible từ 'Dự án', 'Thông tin xác thực' để xác thực và các máy mục tiêu được lưu trữ trên 'Kho hàng'.Đối với hướng dẫn này, chúng tôi đã tạo Dự án, Thông tin xác thực và Kho hàng mới. Vì vậy, chỉ cần nhấp vào menu 'Mẫu' ở bên trái, sau đó nhấp vào nút '+' và chọn tùy chọn 'Mẫu công việc'.
Bây giờ bạn cần nhập 'TÊN' và 'MÔ TẢ' của công việc. Sau đó chọn 'KHO', 'CHỨNG NHẬN' và 'DỰ ÁN'. Sau đó, hãy chỉ định 'PLAYBOOK' mà bạn muốn chạy và triển khai.
Và kết quả là mẫu công việc mới Ansible AWX đã được tạo.
Bước 6 - Chạy mẫu công việc
Sau khi tạo mẫu công việc mới, chúng tôi sẽ chạy mẫu công việc và triển khai 'Dự án' Playbook tới các máy chủ mục tiêu trên 'Kho'.Nhấp vào menu 'Mẫu' ở bên trái và bạn sẽ nhận được danh sách các mẫu công việc khả dụng.
Sau khi công việc hoàn tất, bạn sẽ nhận được dấu hiệu màu xanh lá cây bên trong tên mẫu công việc.
Nhấp vào dấu hiệu màu xanh lá cây bên trong tên mẫu công việc và bạn sẽ thấy kết quả thực tế của công việc đó.
Công việc đã hoàn thành thành công và máy đích đã được cài đặt LEMP Stack thông qua Ansible AWX.
Bước 7 - Kiểm tra máy đích
Kiểm tra tên miền của máy đích. Cấu hình tên miền được lưu trữ tại cấu hình 'roles/web/vars/main.yml'.Kiểm tra các dịch vụ Nginx và PHP-FPM bằng lệnh systemctl.
Mã:
systemctl status nginx
systemctl status php7.2-fpm
Kiểm tra cơ sở dữ liệu MySQL trên máy đích. Cấu hình chi tiết của cơ sở dữ liệu MySQL được lưu trữ tại tệp cấu hình 'roles/db/vars/main.yml'.
Kết quả là, LEMP Stack đã được cài đặt trên máy đích thông qua Ansible AWX.