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 cài đặt và cấu hình AWX trên máy chủ Ubuntu 18.04. Chúng ta sẽ cài đặt AWX với Nginx làm proxy ngược và được xây dựng trên kết nối bảo mật HTTPS.
Điều kiện tiên quyết
Bây giờ hãy cài đặt Docker và Ansible.
Sau khi cài đặt hoàn tất, hãy kiểm tra docker và ansible bằng các lệnh sau.
Dưới đây là kết quả.
Cài đặt 'python-pip' bằng lệnh apt bên dưới.
Sau khi cài đặt hoàn tất, hãy cài đặt các gói docker-compose 1.9.0 và docker-py từ kho lưu trữ PyPI bằng lệnh pip bên dưới.
Tiếp theo, chúng ta cần cài đặt nodejs và npm trên máy chủ.
Chạy lệnh sau.
Sau khi hoàn tất, hãy nâng cấp npm lên phiên bản mới nhất.
Và kết quả là tất cả các phần phụ thuộc đã được cài đặt vào hệ thống. Và chúng ta đã sẵn sàng để cài đặt AWX.
Tải xuống mã nguồn AWX từ kho lưu trữ git và đi đến thư mục cài đặt awx.
Sau đó, tạo khóa bí mật mới cho awx bằng lệnh openssl bên dưới.
Sao chép khóa bí mật đã tạo vào ghi chú của bạn.
Bây giờ hãy chỉnh sửa tệp cấu hình 'inventory'.
Thay đổi 'postgres_data_dir' vào thư mục '/var/lib/pgdocker'.
Đổi 'host_port' thành '8080'.
Bỏ chú thích dòng 'use_docker_compose' và đổi giá trị thành 'true', vì chúng ta sẽ quản lý awx bằng docker compose.
Bây giờ hãy đảm bảo rằng 'docker_compose_dir' nằm trong thư mục '/var/lib/awx'.
Thay đổi thông tin xác thực cho 'pg_password', 'rabbitmq_password', 'rabbitmq_erlang_cookie', 'admin_user' và 'admin_password' với thông tin đăng nhập mật khẩu của riêng bạn.
sau đó, thay đổi khóa bí mật của cấu hình awx bằng khóa được tạo ở trên cùng.
Sau đó, bỏ ghi chú cho 'project_data_dir' và giữ nguyên giá trị mặc định.
Lưu và đóng cấu hình.
Dưới đây là nội dung đã chỉnh sửa của tệp 'inventory'.
Tệp
cấu hình kho.
Và kết quả là chúng ta đã sẵn sàng cài đặt awx ở giai đoạn tiếp theo.
Playbook sẽ thực hiện một số tác vụ bao gồm tải xuống hình ảnh docker và tạo các container mới postgresql, memcached, rabbitmq, ứng dụng web awx và tác vụ awx.
Và bên dưới là kết quả.
Tiếp theo, hãy đến thư mục '/var/lib/awx' và bạn sẽ nhận được cấu hình 'docker-compose.yml'. Sau đó, hãy kiểm tra tất cả các container docker có sẵn bằng lệnh docker-compose.
Và bạn sẽ thấy các container awx như bên dưới.
Ngoài ra, bạn có thể kiểm tra nhật ký của dịch vụ 'task' bằng lệnh sau.
Cài đặt Nginx bằng lệnh apt sau.
Sau khi cài đặt hoàn tất, hãy vào thư mục '/etc/nginx/sites-available/' và tạo cấu hình máy chủ ảo mới có tên là 'awx' bằng trình soạn thảo vim.
Bây giờ hãy dán cấu hình bên dưới.
Thay đổi tên miền và địa chỉ IP proxy_pass bằng tên miền của bạn, sau đó lưu và thoát.
Bây giờ hãy kích hoạt máy chủ ảo 'awx' và kiểm tra cấu hình nginx.
Đảm bảo không có lỗi nào với cấu hình nginx, sau đó khởi động lại dịch vụ nginx.
Kết quả là quá trình cài đặt và cấu hình Nginx làm proxy ngược cho awx đã hoàn tất.
Bây giờ hãy khởi động và kích hoạt dịch vụ tường lửa ufw.
Nhập 'y' thành yes và tường lửa ufw đã được cấu hình.
Và bạn sẽ được hiển thị trang đăng nhập awx như bên dưới.
Bây giờ hãy nhập tên người dùng 'hakase' và mật khẩu 'hakasepass', sau đó nhấp vào nút 'đăng nhập'.
Bây giờ bạn sẽ có bảng điều khiển quản trị awx như bên dưới.
Và quá trình cài đặt Ansible AWX với Nginx reverse proxy đã hoàn tất thành công.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình AWX trên máy chủ Ubuntu 18.04. Chúng ta sẽ cài đặt AWX với Nginx làm proxy ngược và được xây dựng trên kết nối bảo mật HTTPS.
Điều kiện tiên quyết
- Máy chủ Ubuntu 18.04
- Bộ nhớ RAM +4GB và 2 lõi
- Quyền root
- Cài đặt Docker và Ansible
- Cài đặt các gói bổ sung
- Tải xuống và định cấu hình mã nguồn Ansible AWX
- Cài đặt Ansible AWX
- Cài đặt và định cấu hình Nginx làm Proxy ngược
- Thiết lập tường lửa UFW
- Kiểm tra
Bước 1 - Cài đặt Docker và Ansible
Đầu tiên, chúng ta sẽ cài đặt các gói chính cần thiết để cài đặt AWX, đó là Docker và Ansible. Trước khi cài đặt các gói này, hãy cập nhật kho lưu trữ Ubuntu bằng lệnh sau.
Mã:
sudo apt update
Mã:
sudo apt install ansible -y
sudo apt install docker.io -y
Mã:
docker version
ansible --version
Bước 2 - Cài đặt các gói bổ sung
Bây giờ chúng ta sẽ cài đặt các gói bổ sung để cài đặt AWX. Chúng ta sẽ cài đặt gói 'python-pip' vào hệ thống, sau đó cài đặt docker-compose và docker-py từ kho lưu trữ python PyPI.Cài đặt 'python-pip' bằng lệnh apt bên dưới.
Mã:
sudo apt install python-pip -y
Mã:
pip install docker-compose==1.9.0
pip install docker-py
Tiếp theo, chúng ta cần cài đặt nodejs và npm trên máy chủ.
Chạy lệnh sau.
Mã:
sudo apt install nodejs npm -y
Mã:
npm install npm --global
Bước 3 - Tải xuống mã nguồn AWX và cấu hình
Trong bước này, chúng ta sẽ tải xuống mã nguồn AWX và cấu hình tệp kiểm kê để cài đặt AWX.Tải xuống mã nguồn AWX từ kho lưu trữ git và đi đến thư mục cài đặt awx.
Mã:
git clone https://github.com/ansible/awx.git
cd awx/installer/
Mã:
openssl rand -hex 32
Bây giờ hãy chỉnh sửa tệp cấu hình 'inventory'.
Mã:
vim inventory
Mã:
postgres_data_dir=/var/lib/pgdocker
Mã:
host_port=8080
Mã:
use_docker_compose=true
Mã:
docker_compose_dir=/var/lib/awx
Mã:
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
Mã:
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Mã:
project_data_dir=/var/lib/awx/projects
Dưới đây là nội dung đã chỉnh sửa của tệp 'inventory'.
Mã:
grep -v '^#' inventory
cấu hình kho.
Mã:
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]
dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/var/lib/pgdocker
host_port=8080
use_docker_compose=true
docker_compose_dir=/var/lib/awx
pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
admin_user=hakase
admin_password=hakasepass
create_preload_data=True
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
project_data_dir=/var/lib/awx/projects
Bước 4 - Cài đặt Ansible AWX
Cài đặt awx bằng ansible-playbook sau lệnh.
Mã:
ansible-playbook -i inventory install.yml
Và bên dưới là kết quả.
Tiếp theo, hãy đến thư mục '/var/lib/awx' và bạn sẽ nhận được cấu hình 'docker-compose.yml'. Sau đó, hãy kiểm tra tất cả các container docker có sẵn bằng lệnh docker-compose.
Mã:
cd /var/lib/awx
docker-compose ps
Ngoài ra, bạn có thể kiểm tra nhật ký của dịch vụ 'task' bằng lệnh sau.
Mã:
docker-compose logs task
Bước 5 - Cài đặt và cấu hình Nginx làm Proxy ngược
Sau khi cài đặt awx, chúng ta sẽ cài đặt và cấu hình Nginx làm proxy ngược cho awx đang chạy cổng '8080'.Cài đặt Nginx bằng lệnh apt sau.
Mã:
sudo apt install nginx -y
Mã:
cd /etc/nginx/sites-available/
vim awx
Mã:
server {
listen 80;
server_name awx.hakase-labs.io;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? vĩnh viễn;
}
máy chủ {
lắng nghe 443 ssl http2;
tên máy chủ awx.hakase-labs.io;
nhật ký truy cập /var/log/nginx/awx.access.log;
nhật ký lỗi /var/log/nginx/awx.error.log;
ssl bật;
chứng chỉ ssl /etc/nginx/ssl/fullchain.pem;
khóa chứng chỉ ssl /etc/nginx/ssl/privkey.pem;
thời gian chờ ssl_session 5 phút;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_http_version 1.1;
proxy_set_header Máy chủ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "nâng cấp";
proxy_pass http://10.5.5.20:8080/;
}
}
Bây giờ hãy kích hoạt máy chủ ảo 'awx' và kiểm tra cấu hình nginx.
Mã:
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t
Đảm bảo không có lỗi nào với cấu hình nginx, sau đó khởi động lại dịch vụ nginx.
Mã:
sudo systemctl restart nginx
Bước 6 - Cấu hình Tường lửa UFW
Thêm SSH, HTTP và HTTPS dịch vụ cho cấu hình tường lửa UFW.
Mã:
ufw allow ssh
ufw allow http
ufw allow https
Mã:
ufw enable
Bước 7 - Kiểm tra
Mở trình duyệt web của bạn và nhập URL awx của bạn vào thanh địa chỉ.Và bạn sẽ được hiển thị trang đăng nhập awx như bên dưới.
Bây giờ hãy nhập tên người dùng 'hakase' và mật khẩu 'hakasepass', sau đó nhấp vào nút 'đăng nhập'.
Bây giờ bạn sẽ có bảng điều khiển quản trị awx như bên dưới.
Và quá trình cài đặt Ansible AWX với Nginx reverse proxy đã hoàn tất thành công.