GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Memasang Ansible AWX dengan Nginx Reverse Proxy di Ubuntu 18.04 LTS

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:

  1. Instal Docker dan Kemungkinan
  2. Instal Paket Tambahan
  3. Unduh dan Konfigurasikan Kode Sumber AWX yang Memungkinkan
  4. Instal AWX yang Memungkinkan
  5. Instal dan Konfigurasi Nginx sebagai Proxy Terbalik
  6. Menyiapkan Firewall UFW
  7. 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.


Ubuntu
  1. Cara Menginstal Odoo 11 di Ubuntu 16.04 dengan Nginx sebagai Proxy Terbalik

  2. Cara Menginstal Odoo 10 di Ubuntu 16.04 dengan Nginx sebagai Proxy Terbalik

  3. Cara Menginstal Flectra di Ubuntu 20.04 dengan Nginx sebagai Proxy Terbalik

  1. Cara Menginstal AWX yang Mungkin di Ubuntu 20.04 LTS

  2. Cara Menyebarkan Modsecurity dengan Nginx di Ubuntu 20.04 LTS

  3. Cara Menginstal Odoo 12 di Ubuntu 18.04 dengan Nginx sebagai Proxy Terbalik

  1. Cara Menginstal Ansible di Ubuntu 20.04 LTS / 21.04

  2. Cara Menginstal Seafile dengan Nginx di Ubuntu 20.04 LTS

  3. Cara Memasang Varnish Reverse Proxy dengan Nginx di Ubuntu 16.04 LTS