28 Kasım 2020 Cumartesi

ansible notları

Ansible ile ilgili notlarımı buradan paylaşayım dedim;

RHEL 9 ansible notları;

# dnf install ansible-navigator

# execution environment yüklenmesi

# https://catalog.redhat.com/search?gs&q=ee-supported&searchType=all
# podman pull registry.redhat.io/ansible-automation-platform-24/ee-supported-rhel8:latest

# podman pull registry.redhat.io/ansible-automation-platform-24/ee-supported-rhel9:latest

# ansible-navigator images

ansible-playbook  ihtiyacımız varsa, ansible-core paketini kurmamız gerekmektedir.


RHEL 8 ansible yüklenmesi;


# yum list installed platform-python

# subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms

# yum module install python36

# yum install ansible

# yum install python3-libselinux


Ansible sürüm bilgisi;

$ ansible --version

ansible 2.9.16

config file = /home/admin/ansible/ansible.cfg

 configured module search path = ['/home/admin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

  ansible python module location = /usr/lib/python3.6/site-packages/ansible

  executable location = /usr/bin/ansible

  python version = 3.6.8 (default, Aug 18 2020, 08:33:21) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]

ansible varsayılan olarak öncelikle bulunduğunuz dizinde ansible.cfg dosyasını arar. Şayet bulunduğumuz dizinde ansible.cfg bulunmaz ise, /etc/ansible/ansible.cfg dosyası aranır.

Örnek ansible.cfg dosyası

$ cat ansible.cfg 

[defaults]

inventory=./inventory

forks          = 4

poll_interval  = 10

remote_user    = admin

sudo_user      = root

ask_sudo_pass = True

ask_pass      = false


[privelege_escalation]

become = true

become_method = sudo

become_user = root

become_ask_pass = false


$ ansible -m setup localhost |grep ansible_python_version

invertory örneği;

[webservers]

web1.tazzz.lan

web2.tazzz.lan

web[3:9].tazzz.lan


[mysqlservers]

mysql1.tazzz.lan

mysql2.tazzz.lan

mysql3.tazzz.lan

mysql[10:13].tazzz.lan


[prod:children]

webservers

mysqlservers


inventory dosyasındaki all ve ungrouped isimli iki group daima vardır.

all tüm hostları, ungrouped  her hangi bir grupta olmayan hostları içerir.


Ansible varsayılan ayar dosyasını değiştirmek;

ANSIBLE_CONFIG=/home/remzi/.my-ansible.cfg

**************.my-ansible.cfg******************

[defaults]

inventory = ./inventory

remote_user = someuser

ask_pass = false


[privilege_escalation]

become = true

become_method = sudo

become_user = root

become_ask_pass = false

**************.my-ansible.cfg******************


inventory dosyalsı ini veya yaml formantında olabilir. 

inventory dosyasına örnek:

1. ini static file

[websrv]

web1.local.lan

web2.local.lan

[dbsrv]

db1.local.lan

db2.local.lan

[lbsrv]

lb[1:2].local.lan


2. yaml  static inventory örnek:

lbsrv:

    hosts:

        lb1.local.lan

        lb2.local.lan

websrv:

    hosts:

        web[1:5].local.lan

            web1 den web5 kadar sunuculari kapsar

web:

    children:

        - lbsrv    

        - websrv


    

# ansible all -m ping

-------------------------------------------------------------------------------------------------------------------------------

$ sudo -l -U remzi

Matching Defaults entries for remzi on seyyah-usb:

    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/var/lib/snapd/snap/bin


User remzi may run the following commands on seyyah-usb:

    (ALL) NOPASSWD: ALL

-------------------------------------------------------------------------------------------------------------------------------

ansible playbook çalıştırmadan yazım kontrolü,

ansible-playbook --syntax-check db12prepare.yml

Çalışma simülasyonu;

ansible-playbook -C db12prepare.yml



ansible'da değişkenler tanımlarken '.' (nokta), boşluk kullanılmamalı.

ansible değişkenlerine örnek;

hosts

hosts-center

host1

host-centor1

host1-center_2


Belli başlı ansible değişken tipleri;

1. Genel değişkenler

2. playbook içindeki değişkenler

3. host özelliklerinden gelen değişkenler


Gizlilik(kullanıcı parolası vs. gibi)  taşıyan bilgilerin ansible vault ile güvende tutulması;

ansible-vault create kullanici-bilgileri.yml

ansible-vault view kullanici-bilgileri.yml

ansible-vault decrypt kullanici-bilgileri.yml --output=kullanici-bilgileri.txt



ansible-vault ile birden fazla dosya üzerinde işlem yapılabiliyor.
Detaylı bilgi için her zaman olduğu gibi; # man ansible-vault 

                        







Hiç yorum yok:

Yorum Gönder

ansible ile yerel quay sunucusu üzerinden execution environment kullanımı

 Yerel quay veya registry sunucularımızdaki ee leri ansible ile kullanabiliyoruz. Bunun için kendi yaptığımız ee leri veya hazır ee leri yük...