← Back to list

Ansible Tower ile Adım Adım Otomasyon yürütme

Ansible Tower ; Ansible yönetimi için kullanılan kullanıcı ara yüzü fakat ben yazımın devamında anlatırken örneklerimi Ansible Tower’ın…

Muhammet SAYGIN · 2023-04-10 10:46 · 1 claps · 3.5 min read
#ansibe #ansible-awx
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

Ansible Tower ile Adım Adım Otomasyon yurutme

Ansible Tower ; Ansible yönetimi için kullanılan kullanıcı ara yüzü fakat ben yazımın devamında anlatırken örneklerimi Ansible Tower’ın açık kaynak kodlu versiyonu olan AWX üzerinden örnekler vererek anlatacağım.

  1. Adım ’da bir inventory listesi oluşturacağız.

bu adımda Add inventory diyeceğiz.

Name ve description alanlarını ihtiyacımıza göre özelleştirebilir.Ben Tüm linux tabamlı sunucular için inventory oluşturdum.

2. Adımda oluşturduğumuz inventory’lere host eklemek.

Manuel olarak dhcp01 hostumuzu ekleyebiliriz. İnventory kısmına tıkladığımda , eklemiş olduğumuz linux server ekleriz.

3.adım’da ise tüm listeyi tek tek manul mi ekleyeceğiz ? Cevap Hayır. Bu adımda bunu göstereceğiz.

Önce sunucuya bağlanıp linux_inventory adında dosya ekliyorum. İçine alt alta tüm hostlarımın ip’lerini yazıyoruz.

[root@sl1-ansibletower inventory]# ls
linux_inventory

Daha sonra ben ansible tower’ı docker üzerine kurduğum için , bu dosyayı konteynirin içine atmam gerekiyor.

Aşağıdaki komutu çalıştırarak konteyner adı/id bilgisini elde ediyorum.

[root@sl1-ansibletower inventory]# docker ps -a
CONTAINER ID   IMAGE                COMMAND                  CREATED       STATUS      PORTS                                   NAMES
fab2e27877f2   ansible/awx:17.1.0   "/usr/bin/tini -- /u…"   11 days ago   Up 6 days   8052/tcp                                awx_task
ec2bcff3d6b3   ansible/awx:17.1.0   "/usr/bin/tini -- /b…"   11 days ago   Up 6 days   0.0.0.0:80->8052/tcp, :::80->8052/tcp   awx_web
7a1164693f4d   redis                "docker-entrypoint.s…"   11 days ago   Up 6 days   6379/tcp                                awx_redis
8d3eb3f77f4a   postgres:12          "docker-entrypoint.s…"   11 days ago   Up 6 days   5432/tcp                                awx_postgres
[root@sl1-ansibletower inventory]# docker cp linux_inventory awx_

kopyalama işlemini yapıyorum.

[root@sl1-ansibletower inventory]# docker cp linux_inventory awx_web:/root/
Successfully copied 6.144kB to awx_web:/root/

daha sonra konteynerin içine bağlanıyorum.

[root@sl1-ansibletower inventory]# docker exec -it ec2bcff3d6b3 /bin/bash

Şimdi ise host bilgilerininin bulunduğu dosyayı inventory’e ekliyorum.

bash-4.4# awx-manage inventory_import --inventory-name ALL_LINUX_SERVERS  --source  linux_inventory 
    1.819 INFO     Updating inventory 5: ALL_LINUX_SERVERS
    2.056 INFO     Reading Ansible inventory source: /root/linux_inventory
    2.056 INFO     Using VIRTUAL_ENV: /var/lib/awx/venv/ansible
    2.056 INFO     Using PATH: /var/lib/awx/venv/ansible/bin:/usr/pgsql-10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    2.056 INFO     Using PYTHONPATH: /var/lib/awx/venv/ansible/lib/python3.6/site-packages:
    2.774 ERROR    ansible-inventory 2.9.18
    2.774 ERROR      config file = /etc/ansible/ansible.cfg
    2.774 ERROR      configured module search path = ['/var/lib/awx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    2.774 ERROR      ansible python module location = /usr/lib/python3.6/site-packages/ansible
    2.774 ERROR      executable location = /usr/bin/ansible-inventory
    2.774 ERROR      python version = 3.6.8 (default, Aug 24 2020, 17:57:11) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
    2.774 ERROR    Using /etc/ansible/ansible.cfg as config file
    2.775 ERROR    host_list declined parsing /root/linux_inventory as it did not pass its verify_file() method
    2.775 ERROR    script declined parsing /root/linux_inventory as it did not pass its verify_file() method
    2.775 ERROR    auto declined parsing /root/linux_inventory as it did not pass its verify_file() method
    2.775 ERROR    Parsed /root/linux_inventory inventory source with ini plugin
    2.799 INFO     Processing JSON output...
    2.802 INFO     Loaded 0 groups, 362 hosts
2023-04-10 09:30:19,419 DEBUG    awx.main.models.inventory Going to update inventory computed fields, pk=5
2023-04-10 09:30:19,449 DEBUG    awx.main.models.inventory Finished updating inventory computed fields, pk=5, in 0.030 seconds
    4.316 INFO     Inventory import completed for  (ALL_LINUX_SERVERS - 17) in 1.5s

Ansible arayüzüne tekrar bağlanıp hostların gelip gelmediğini kontrol ediyorum. Görüldüğü gibi 362 hostumuzu kullanabiliriz.

4.Adım : Hostları ve İnventory oluşturduk . Bu aşamada eklediğimiz hostları yöneteceğimiz kullanıcıyı ekleyeceğiz.

Credentials kısmına geliyoruz. ADD tıklıyoruz.

5.adım : kullanıcı tamam host tamam. Bu adımda ise bir project oluşturacağız. Altta bulunan resimde gördüğünüz gibi yamlfile oluşturacağız. ve bu dosyayı resimde görüldüğü path atacağız veya o klasörde oluşturacağız.

6 ve son adımda template oluşturup bu template çalıştırıyoruz.

Template oluşturma01

Template oluşturma02.

Bu Adımda da oluşturulan Template Füze ikonuna basarak çalıştırabilirsiniz.

Çalıştırılan template sonuçları

Jobs kısmından detayları görülebilir.

Soru/öneri ve olası hatalar için mts.saygin@gmail.com’ mail atabilirsiniz.


메타데이터
post_id
5cf4dfbaab8d
slug
ansible-tower-ile-adım-adım-otomasyon-yürütme-5cf4dfbaab8d
url
https://medium.com/@mts.saygin/ansible-tower-ile-ad%C4%B1m-ad%C4%B1m-otomasyon-y%C3%BCr%C3%BCtme-5cf4dfbaab8d
canonical_url
https://medium.com/@mts.saygin/ansible-tower-ile-ad%C4%B1m-ad%C4%B1m-otomasyon-y%C3%BCr%C3%BCtme-5cf4dfbaab8d
author_url
https://medium.com/@mts.saygin
status
ok
fetched_at
2026-07-25 22:12:05