AWX là một ứng dụng web nguồn mở cung cấp giao diện người dùng, API REST và công cụ tác vụ cho Ansible. Đây là phiên bản mã nguồn mở của Ansible Tower. AWX cho phép bạn quản lý sổ tay Ansible, kho lưu trữ và lên lịch công việc để 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à định cấu hình AWX trên máy chủ Ubuntu 18.04. Chúng tôi 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
- Đặc quyền gốc
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 cho việc 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 Ubuntu bằng lệnh sau.
sudo apt update
Bây giờ cài đặt Docker và Ansible.
sudo apt install ansible -y
sudo apt install docker.io -y
Sau khi quá trình cài đặt hoàn tất, hãy kiểm tra docker và ansible bằng các lệnh sau.
docker version
ansible --version
Dưới đây là kết quả.
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 tôi sẽ cài đặt gói ‘python-pip’ vào hệ thống, sau đó cài đặt docker-compose và docker-py từ kho python PyPI.
Cài đặt ‘python-pip’ bằng lệnh apt bên dưới.
sudo apt install python-pip -y
Sau khi quá trình 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 PyPI bằng cách sử dụng các lệnh pip bên dưới.
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.
sudo apt install nodejs npm -y
Sau khi hoàn tất, hãy nâng cấp npm lên phiên bản mới nhất.
npm install npm --global
Và kết quả là tất cả các phụ thuộc đã được cài đặt vào hệ thống. Và chúng tôi đã sẵn sàng cài đặt AWX.
Bước 3 – Tải xuống mã nguồn AWX và định cấu hình
Trong bước này, chúng tôi sẽ tải xuống mã nguồn AWX và định cấu hình tệp kiểm kê để cài đặt AWX.
Tải xuống mã nguồn AWX từ kho git và đi tới thư mục cài đặt awx.
git clone https://github.com/ansible/awx.git
cd awx/installer/
Sau đó, tạo khóa bí mật mới cho awx bằng lệnh openssl bên dưới.
openssl rand -hex 32
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 ‘khoảng không quảng cáo’.
vim inventory
Thay đổi ‘postgres_data_dir’ thành thư mục ‘/var/lib/pgdocker’.
postgres_data_dir=/var/lib/pgdocker
Thay đổi ‘host_port’ thành ‘8080’.
host_port=8080
Bỏ ghi chú dòng ‘use_docker_compose’ và thay đổi giá trị thành ‘true’, vì chúng ta sẽ quản lý awx bằng cách sử dụng docker soạn.
use_docker_compose=true
Bây giờ hãy đảm bảo rằng ‘docker_compose_dir’ được đặt trong thư mục ‘/var/lib/awx’.
docker_compose_dir=/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’ bằng thông tin xác thực mật khẩu của riêng bạn.
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
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.
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Sau đó bỏ ghi chú ‘project_data_dir’ và để giá trị như mặc định.
project_data_dir=/var/lib/awx/projects
Lưu và đóng cấu hình.
Dưới đây là bản chỉnh sửa của tệp ‘hàng tồn kho’.
grep -v '^#' inventory
tập tin cấu hình hàng tồn kho.
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
Và kết quả là chúng tôi đã sẵn sàng cài đặt awx ở giai đoạn tiếp theo.
Bước 4 – Cài đặt Ansible AWX
Cài đặt awx bằng lệnh ansible-playbook sau.
ansible-playbook -i inventory install.yml
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 vùng chứa mới postgresql, memcached, rabbitmq, ứng dụng web awx và tác vụ awx.
Và dưới đây là kết quả.
Tiếp theo, hãy chuyển đến thư mục “/var/lib/awx” và bạn sẽ nhận được cấu hình “docker-compose.yml”. Sau đó kiểm tra tất cả các vùng chứa docker có sẵn bằng lệnh docker-compose.
cd /var/lib/awx
docker-compose ps
Và bạn sẽ được hiển thị các thùng chứa awx như bên dưới.
Ngoài ra, bạn có thể kiểm tra nhật ký của dịch vụ ‘tác vụ’ bằng lệnh sau.
docker-compose logs task
Bước 5 – Cài đặt và định cấu hình Nginx làm Proxy ngược
Sau khi cài đặt awx, chúng tôi sẽ cài đặt và định cấu hình Nginx làm proxy ngược cho awx chạy cổng ‘8080’.
Cài đặt Nginx bằng lệnh apt sau.
sudo apt install nginx -y
Sau khi quá trình cài đặt hoàn tất, hãy chuyển đến 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.
cd /etc/nginx/sites-available/
vim awx
Bây giờ dán cấu hình bên dưới.
server {
listen 80;
server_name awx.hakase-labs.io;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name awx.hakase-labs.io;
access_log /var/log/nginx/awx.access.log;
error_log /var/log/nginx/awx.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_session_timeout 5m;
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 Host $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 Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://10.5.5.20:8080/;
}
}
Thay đổi tên miền và địa chỉ IP proxy_pass bằng tên miền của riêng 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.
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t
Đảm bảo không có lỗi với cấu hình nginx, sau đó khởi động lại dịch vụ nginx.
sudo systemctl restart 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ước 6 – Cấu hình tường lửa UFW
Thêm các dịch vụ SSH, HTTP và HTTPS vào cấu hình tường lửa UFW.
ufw allow ssh
ufw allow http
ufw allow https
Bây giờ hãy bắt đầu và kích hoạt dịch vụ tường lửa ufw.
ufw enable
Nhập ‘y’ thành có và tường lửa ufw đã được cấu hình.
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 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 có đượ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 proxy ngược Nginx đã hoàn tất thành công.
Tham khảo
https://github.com/ansible/awx
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Add Comment