AWX adalah aplikasi web open source yang menyediakan antarmuka pengguna, REST API, dan mesin tugas untuk Ansible. Ini adalah versi open source dari Ansible Tower. AWX memungkinkan Anda mengelola playbook Ansible, inventaris, dan menjadwalkan pekerjaan untuk dijalankan menggunakan antarmuka web.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi AWX di server Ubuntu 18.04. Kami akan menginstal AWX dengan Nginx sebagai proxy terbalik dan dibangun di atas koneksi aman HTTPS.
Prasyarat
- Server Ubuntu 18.04
- Memori RAM +4GB dan 2 Core
- Hak istimewa root
Apa yang akan kami lakukan:
- Instal Docker dan Kemungkinan
- Instal Paket Tambahan
- Unduh dan Konfigurasikan Kode Sumber AWX yang Memungkinkan
- Instal AWX yang Memungkinkan
- Instal dan Konfigurasi Nginx sebagai Proxy Terbalik
- Menyiapkan Firewall UFW
- Pengujian
Langkah 1 - Instal Docker dan Ansible
Pertama, kita akan menginstal paket utama yang diperlukan untuk instalasi AWX, yaitu Docker dan Ansible itu sendiri. Sebelum menginstal paket-paket ini, perbarui repositori Ubuntu menggunakan perintah berikut.
sudo apt update
Sekarang instal Docker dan Ansible.
sudo apt install ansible -y
sudo apt install docker.io -y
Setelah instalasi selesai, periksa buruh pelabuhan dan aktifkan menggunakan perintah berikut.
docker version
ansible --version
Di bawah ini adalah hasilnya.
Langkah 2 - Instal Paket Tambahan
Sekarang kita akan menginstal paket tambahan untuk instalasi AWX. Kami akan menginstal paket 'python-pip' ke sistem, dan kemudian menginstal docker-compose dan docker-py dari repositori python PyPI.
Instal 'python-pip' menggunakan perintah apt di bawah ini.
sudo apt install python-pip -y
Setelah penginstalan selesai, instal paket docker-compose 1.9.0 dan docker-py dari repositori PyPI menggunakan perintah pip di bawah ini.
pip install docker-compose==1.9.0
pip install docker-py
Selanjutnya, kita perlu menginstal nodejs dan npm di server.
Jalankan perintah berikut.
sudo apt install nodejs npm -y
Setelah selesai, tingkatkan npm ke versi terbaru.
npm install npm --global
Dan sebagai hasilnya, semua dependensi telah diinstal ke sistem. Dan kami siap memasang AWX.
Langkah 3 - Unduh Kode Sumber AWX dan Konfigurasi
Pada langkah ini, kita akan mengunduh kode sumber AWX dan mengonfigurasi file inventaris untuk penginstalan AWX.
Unduh kode sumber AWX dari repositori git dan buka direktori instalasi awx.
git clone https://github.com/ansible/awx.git
cd awx/installer/
Setelah itu, buat kunci rahasia baru untuk awx menggunakan perintah openssl di bawah ini.
openssl rand -hex 32
Salin kunci rahasia yang dihasilkan ke catatan Anda.
Sekarang edit file konfigurasi 'inventaris'.
vim inventory
Ubah 'postgres_data_dir' ke direktori '/var/lib/pgdocker'.
postgres_data_dir=/var/lib/pgdocker
Ubah 'host_port' menjadi '8080'.
host_port=8080
Batalkan komentar pada baris 'use_docker_compose' dan ubah nilainya menjadi 'true', karena kita akan mengelola awx menggunakan komposisi docker.
use_docker_compose=true
Sekarang pastikan 'docker_compose_dir' terletak di direktori '/var/lib/awx'.
docker_compose_dir=/var/lib/awx
Ubah kredensial untuk 'pg_password', 'rabbitmq_password', 'rabbitmq_erlang_cookie', 'admin_user', dan 'admin_password' dengan kredensial sandi Anda sendiri.
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
setelah itu, ubah kunci rahasia konfigurasi awx menggunakan kunci yang dihasilkan di atas.
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Kemudian batalkan komentar pada 'project_data_dir' dan biarkan nilainya sebagai default.
project_data_dir=/var/lib/awx/projects
Simpan dan tutup konfigurasi.
Di bawah ini adalah file 'inventaris' yang telah diedit.
grep -v '^#' inventory
file konfigurasi inventaris.
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
Dan sebagai hasilnya, kami siap untuk menginstal awx pada tahap berikutnya.
Langkah 4 - Instal AWX yang Mungkin
Instal awx menggunakan perintah ansible-playbook berikut.
ansible-playbook -i inventory install.yml
Playbook akan melakukan beberapa tugas termasuk mengunduh gambar buruh pelabuhan dan membuat wadah baru postgresql, memcached, rabbitmq, aplikasi web awx, dan tugas awx.
Dan di bawah ini adalah hasilnya.
Selanjutnya, masuk ke direktori '/var/lib/awx' dan Anda akan mendapatkan konfigurasi 'docker-compose.yml'. Kemudian periksa semua container docker yang tersedia menggunakan perintah docker-compose.
cd /var/lib/awx
docker-compose ps
Dan Anda akan diperlihatkan wadah awx seperti di bawah ini.
Selain itu, Anda dapat memeriksa log layanan 'tugas' menggunakan perintah berikut.
docker-compose logs task
Langkah 5 - Instal dan Konfigurasi Nginx sebagai Proxy Terbalik
Setelah menginstal awx, kami akan menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik untuk awx yang menjalankan port '8080'.
Instal Nginx menggunakan perintah apt berikut.
sudo apt install nginx -y
Setelah penginstalan selesai, buka direktori '/etc/nginx/sites-available/' dan buat konfigurasi host virtual baru yang disebut 'awx' menggunakan editor vim.
cd /etc/nginx/sites-available/
vim awx
Sekarang rekatkan konfigurasi di bawah ini.
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/;
}
}
Ubah nama domain dan alamat IP proxy_pass dengan milik Anda, lalu simpan dan keluar.
Sekarang aktifkan virtual host 'awx' dan uji konfigurasi nginx.
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t
Pastikan tidak ada kesalahan dengan konfigurasi nginx, lalu restart layanan nginx.
sudo systemctl restart nginx
Hasilnya, instalasi dan konfigurasi Nginx sebagai proxy terbalik untuk awx telah selesai.
Langkah 6 - Konfigurasikan Firewall UFW
Tambahkan layanan SSH, HTTP, dan HTTPS ke konfigurasi firewall UFW.
ufw allow ssh
ufw allow http
ufw allow https
Sekarang mulai dan aktifkan layanan firewall ufw.
ufw enable
Ketik 'y' untuk yes dan firewall ufw telah dikonfigurasi.
Langkah 7 - Pengujian
Buka browser web Anda dan ketik URL awx Anda di bilah alamat.
https://awx.hakase-labs.io
Dan Anda akan ditampilkan halaman login awx seperti di bawah ini.
Sekarang ketik user 'hakase' dan password 'hakasepass', lalu klik tombol 'sign in'.
Sekarang Anda mendapatkan dasbor admin awx seperti di bawah ini.
Dan penginstalan Ansible AWX dengan proxy terbalik Nginx telah berhasil diselesaikan.