CENTOS 7 / RHEL 7 Üzerinde Docker olmadan Ansible AWX Kurulumu
Ansible AWX Projesi açık kaynaklı bir topluluk projesidir. AWX’in temel amacı otomasyon işlemlerinin kolaylaştırmasını sağlamaktır.
Bu eğitici yazıda, CentOS 7 / RHEL 7 üzerinde Docker olmadan AWX’in nasıl kurulacağını ve yapılandırılacağını göstereceğim.
AWX Sunucusu için Sistem Gereksinimleri
2GB RAM
2 İşlemci Çekirdeği
20GB HD
1-Selinux ve Firewall Ayarları
a: ilk etapta policycoreutils-python’u yükleyelim ve Nginx’in ağa aşağıdaki şekilde bağlanmasına izin verelim
# yum -y install policycoreutils-python
# setsebool -P httpd_can_network_connect 1
2-Memcached, Ansible ve gerekli paket kurulumları
a: EPEL Release, memached ve Ansible’i kurmak için aşağıdaki komutu çalıştırınız.
# yum install -y memcached ansible epel-release
b: Memcached hizmetini etkinleştirme ve başlatma
# systemctl enable memcached
# systemctl start memcached
3-PostgreSQL Kurulumu
a: AWX ‘in çalışması için PostgreSQL Veritabanı gerekir. Aşağıda bulunan linkten daha önce yayınlamış olduğum PostgreSQL 11 kurulum makaleme ulaşabilirsiniz.
b: PostgrSQL kurulumu tamamlandıktan sonra DB üzerinde AWX adı altında bir DB ve de tüm yetkilere sahip AWX adında bir kullanıcı oluşturmamız gerekli.
# sudo -u postgres createuser -S awx
# sudo -u postgres createdb -O awx awx
4-RabbitMQ Kurulumu
a: Sunucumuz üzerinde RabbitMQ Deposunu aşağıdaki gibi oluşturalım
# echo "[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1" > /etc/yum.repos.d/rabbitmq-erlang.repo
b: RabbitMQ programınının kurulması RabbitMQ servisinin etkinleştirilmesi ve başlatılması
# yum -y install https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.5/rabbitmq-server-3.7.5-1.el7.noarch.rpm
# systemctl enable rabbitmq-server
# systemctl start rabbitmq-server
5-AWX için Web Sunucusu Proxy’si olarak Nginx Kurulumu ve Yapılandırması
a: Nginx kurulumu
# yum install -y nginx
b: Nginx’in AWX için Web Proxy’si olarak yapılandırılması
# cp -p /etc/nginx/nginx.conf{,.org}
# wget -O /etc/nginx/nginx.conf https://raw.githubusercontent.com/sunilsankar/awx-build/master/nginx.conf
c: Nginx’in etkinleştirilmesi ve başlatılması
# systemctl start nginx
# systemctl enable nginx
6-AWX Kurulumu ve Başlatılması
a: Awx’i yüklemek için
# wget -O /etc/yum.repos.d/awx-rpm.repo https://copr.fedorainfracloud.org/coprs/mrmeee/awx/repo/epel-7/mrmeee-awx-epel-7.repo
# yum install -y awx
b: Awx Veritabanı verilerini alınması
# sudo -u awx /opt/awx/bin/awx-manage migrateOperations to perform:
Apply all migrations: auth, conf, contenttypes, main, oauth2_provider, sessions, sites, social_django, sso, taggit
Running migrations:
Applying contenttypes.0001_initial... OK
Applying taggit.0001_initial... OK
Applying taggit.0002_auto_20150616_2121... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying main.0001_initial... OK
c: Admin adı altında AWX Web kullnıcısı oluşturulması
# echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'root@localhost', 'password')" | sudo -u awx /opt/awx/bin/awx-manage shell
d: AWX’in başlatılması
# sudo -u awx /opt/awx/bin/awx-manage create_preload_dataDefault organization added.
Demo Credential, Inventory, and Job Template added.
(changed: True)# sudo -u awx /opt/awx/bin/awx-manage provision_instance --hostname=$(hostname)Successfully registered instance centos.server.local
(changed: True)
2019-04-03 11:07:22,758 DEBUG awx.main.dispatch publish awx.main.tasks.apply_cluster_membership_policies(eec7263e-bf52-4dad-ad4d-7d4245c47ae4, queue=awx_private_queue)# sudo -u awx /opt/awx/bin/awx-manage register_queue --queuename=tower --hostnames=$(hostname)2019-04-03 11:07:35,496 DEBUG awx.main.dispatch publish awx.main.tasks.apply_cluster_membership_policies(d4a3314d-b3da-42a6-8cbe-a177f97e2e79, queue=awx_private_queue)
Creating instance group tower
2019-04-03 11:07:35,542 DEBUG awx.main.dispatch publish awx.main.tasks.apply_cluster_membership_policies(f6be7d7d-fcbd-47dd-a1ec-10abe56420c3, queue=awx_private_queue)
Added instance centos.server to tower
(changed: True)
e: AWX servislerinin başlatılması
# systemctl start awx-cbreceiver && systemctl enable awx-cbreceiver
# systemctl start awx-dispatcher && systemctl enable awx-dispatcher
# systemctl start awx-channels-worker && systemctl enable awx-channels-worker
# systemctl start awx-daphne && systemctl enable awx-daphne
# systemctl start awx-web && systemctl enable awx-web
7-AWX Web Arayüzüne erişilmesi
Sunucu IP nizi istediğiniz bir tarayıcıya yazarak AWX WEB arayüzüne ulaşıp kullanıcı adı admin şifre password olarak giriş sağlayabilirsiniz.
Sonuç:
CentOS 7 / RHEL 7 sisteminize AWX Ansible Tower’ı başarıyla yüklediniz. Daha fazla bilgi için, artık resmi Ansible Tower Dokumasyon sayfasını ziyaret edebilirsiniz.
https://docs.ansible.com/ansible-tower/
Kerem ERDEM
Bilgi Teknolojileri Mühendisi