AWX adalah singkatan dari "Ansible Web eXecutable" adalah proyek sumber terbuka dan gratis yang memungkinkan Anda untuk mengelola dan mengontrol proyek Ansible Anda dengan mudah. Ini menyediakan antarmuka pengguna berbasis web dan mesin tugas yang dibangun di atas Ansible. Ini menyediakan REST API yang andal dan memungkinkan Anda mengelola atau menyinkronkan inventaris dengan sumber cloud lain, mengontrol akses, dan berintegrasi dengan LDAP.
Dalam tutorial ini, kami akan menunjukkan cara menginstal Ansible AWX dengan Docker di CentOS 8.
Prasyarat
- Server yang menjalankan CentOS 8 dengan RAM minimal 4 GB.
- Kata sandi root dikonfigurasi di server Anda.
Memulai
Sebelum memulai, Anda perlu menginstal repositori EPEL di sistem Anda. Anda dapat menginstalnya dengan perintah berikut:
dnf install epel-release -y
Selanjutnya, Anda perlu menginstal beberapa paket tambahan yang diperlukan untuk menjalankan AWX di sistem Anda. Anda dapat menginstal semuanya dengan perintah berikut:
dnf install git gcc gcc-c++ nodejs yang memungkinkan gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y
Setelah semua paket terinstal, Anda dapat melanjutkan ke langkah berikutnya.
Instal Docker dan Tulis Docker
Selanjutnya, Anda perlu menginstal Docker untuk menjalankan AWX di dalam wadah Docker. Secara default, versi terbaru Docker tidak tersedia di repositori default CentOS 8. Jadi, Anda perlu menambahkan repositori Docker di sistem Anda. Anda dapat menambahkan repositori Docker dengan perintah berikut:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Setelah ditambahkan, instal Docker versi stabil terbaru dengan perintah berikut:
dnf install docker-ce-3:18.09.1-3.el7 -y
Setelah Docker diinstal, periksa versi Docker yang diinstal dengan perintah berikut:
docker --version
Anda akan mendapatkan output berikut:
Versi Docker 19.03.7, build 7141c199a2
Selanjutnya, mulai layanan Docker dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start docker
systemctl aktifkan docker
Anda dapat memverifikasi status layanan Docker dengan perintah berikut:
systemctl status buruh pelabuhan
Anda akan mendapatkan output berikut:
? docker.service - Mesin Kontainer Aplikasi Docker Dimuat:dimuat (/usr/lib/systemd/system/docker.service; dinonaktifkan; preset vendor:dinonaktifkan) Aktif:aktif (berjalan) sejak Rabu 11-03-2020 02:36:04 EDT; 23 menit yang lalu Dokumen:https://docs.docker.com PID Utama:5882 (dockerd) Tugas:101 Memori:2.6G CGroup:/system.slice/docker.service ??5882 /usr/bin/dockerd -H fd:// ??5899 containerd --config /var/run/docker/containerd/containerd.toml --log-level info ??8815 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io .containerd.runtime.v1.linux/moby/4b91575d64b1b> ??8847 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/0f36c9784f748> ? ?8894 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.5 -container-port 8052 ??8899 containerd-shim -namespace moby -workdir /var /lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/47300ec1c26ff> ??8923 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime .v1.linux/moby/9827b9831fa5b> ??9631 berisi erd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/166b153faa275>
Selanjutnya, instal penulisan Docker menggunakan perintah berikut:
pip3 install docker-compose
Setelah diinstal, verifikasi versi penulisan Docker menggunakan perintah berikut:
docker-compose --version
Anda akan melihat output berikut:
docker-compose versi 1.25.4, build tidak diketahui
Terakhir, jalankan perintah berikut untuk mengatur perintah python untuk menggunakan python 3:
alternatif --set python /usr/bin/python3
Instal AWX yang Mungkin
Pertama, unduh versi terbaru Ansible AWX dari repositori Git Hub menggunakan perintah berikut:
git clone https://github.com/ansible/awx.git
Selanjutnya, buat kunci rahasia untuk enkripsi file inventaris dengan perintah berikut:
openssl Rand -base64 30
Anda akan mendapatkan output berikut:
R+kbcDEUS8DlAftAbfWafVqLZ0lUy+Paqo4fEtgp
Catatan:Ingat rahasia di atas, Anda harus menempelkannya di file inventaris.
Selanjutnya, ubah direktori menjadi awx/installer/ dan edit file inventory:
cd awx/installer/
inventaris nano
Ubah baris berikut:
[all:vars]dockerhub_base=ansibleawx_task_hostname=awxawx_web_hostname=awxwebpostgres_data_dir="/var/lib/pgdocker"host_port=80host_port_ssl=443docker_compose_dir="~/.awx/awxcompose"pg_password_pg_password_pg_namapengguna=awxpassrabbitmq_erlang_cookie=cookiemonsteradmin_user=adminadmin_password=passwordcreate_preload_data=Truesecret_key=R+kbcDEUS8DlAftAbfWafVqLZ0lUy+Paqo4fEtgpawx_official=trueawx_alternate_dns.Simpan dan tutup file setelah Anda selesai. Kemudian, buat direktori untuk Postgres:
mkdir /var/lib/pgdockerTerakhir, jalankan perintah berikut untuk menginstal AWX:
ansible-playbook -i inventory install.ymlSetelah instalasi berhasil diselesaikan, Anda akan mendapatkan output berikut:
melewati:[localhost]TUGAS [local_docker :Memuat gambar web] ********************************** ************************************************** **********************melewati:[localhost]TUGAS [local_docker :Memuat gambar tugas] *************** ************************************************** **************************************** melewatkan:[localhost] TUGAS [local_docker :Set jalur gambar lengkap untuk pemasangan lokal] ******************************************* **************************************** melewatkan:[localhost] TUGAS [local_docker :Set Jalur Gambar DockerHub] ********************************************** *************************************************Oke :[localhost]TUGAS [local_docker :Buat direktori ~/.awx/awxcompose] ********************************* ************************************************** ***diubah:[localhost]TUGAS [local_docker :Buat Konfigurasi Tulis Docker] ********************************* ************************************************** **diubah:[localhos t] => (item=environment.sh)berubah:[localhost] => (item=credentials.py)berubah:[localhost] => (item=docker-compose.yml)berubah:[localhost] => (item =nginx.conf)TUGAS [local_docker :Render file SECRET_KEY] ************************************* ************************************************** ***********berubah:[localhost]TUGAS [local_docker :Mulai kontainer] ************************** ************************************************** ************************ diubah:[localhost]TUGAS [local_docker :Perbarui kepercayaan CA di wadah awx_web] ********** ************************************************** ************************diubah:[localhost]TASK [local_docker :Perbarui kepercayaan CA di wadah awx_task] ********** ************************************************** **************************diubah:[localhost]PLAY RECAP ******************** ************************************************** ************************************************** ************localhost :ok=14 perubahan d=6 tidak terjangkau=0 gagal=0 dilewati=95 diselamatkan=0 diabaikan=0Perintah di atas akan membuat dan memulai semua wadah Docker yang diperlukan untuk AWX. Anda dapat memverifikasi container yang sedang berjalan dengan perintah berikut:
docker psAnda akan melihat output berikut:
ID PENAMPUNG PERINTAH GAMBAR STATUS YANG DIBUAT NAMA PORT 4b91575d64b1 ansible/awx_task:9.2.0 "/tini -- /bin/sh -c..." Sekitar satu menit yang lalu Naik Sekitar satu menit 8052/tcp awx_task9827b9831fa5 ansible/awx_web:9.2.0 "/tini -- /bin/sh -c..." Sekitar satu menit yang lalu Naik Sekitar satu menit 0.0.0.0:80->8052/tcp awx_web47300ec1c26f postgres:10 "docker-entrypoint.s..." Sekitar satu menit yang lalu Naik Tentang a menit 5432/tcp awx_postgres166b153faa27 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s..." Sekitar satu menit yang lalu Naik 58 detik 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq0f "docker-entrypoint.s..." Sekitar satu menit yang lalu Naik Tentang a menit 11211/tcp awx_memcachedKonfigurasi SELinux dan Firewall
Secara default, SELinux diaktifkan di CentOS 8. Disarankan untuk menonaktifkannya agar berfungsi AWX di lingkungan Docker. Anda dapat menonaktifkannya dengan mengedit file berikut:
nano /etc/sysconfig/selinuxTemukan baris berikut:
SELINUX=menegakkanDan, ganti dengan baris berikut:
SELINUX=dinonaktifkanSimpan dan tutup file setelah Anda selesai. Kemudian, restart sistem Anda untuk menerapkan perubahan. Selanjutnya, Anda harus mengizinkan layanan http dan https melalui firewalld. Anda dapat mengizinkannya dengan perintah berikut:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add- layanan=httpsSelanjutnya, restart layanan firewalld untuk menerapkan perubahan:
firewall-cmd --reloadMengakses Antarmuka Web AWX
Sekarang, buka browser web Anda dan ketik URL http://your-server-ip. Anda akan diarahkan ke halaman login AWX:
Berikan nama pengguna dan kata sandi admin Anda yang telah Anda tentukan di file inventaris dan klik TANDA MASUK tombol. Anda akan melihat dasbor default AWX di halaman berikut:
Kesimpulan
Selamat! Anda telah berhasil menginstal AWX dengan Docker di CentOS 8. Sekarang Anda dapat mengelola dan mengontrol proyek Ansible Anda dengan mudah menggunakan antarmuka web AWX.
Cent OS