Tutorial

Hướng dẫn cài đặt Ansible AWX với Nginx trên Ubuntu

awx-logo-1

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ỉ.

https://awx.hakase-labs.io

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

Click here to post a comment

Đă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ý !