CENTOS 7 / RHEL 7 Üzerinde Docker olmadan Ansible AWX Kurulumu

Kerem Erdem
Devops Türkiye☁️ 🐧 🐳 ☸️

--

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.

PostgreSQL 11 Kurulumu

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

--

--