Ansible Modüller

Ansible modülleri değerlerine göre kategorize edilir.

Mesela,

  • System modülü: user,group,hostname,iptables,lvg,lvol,make,mount,ping,timezone,systemd,service
  • Commands: Komut mpdıllerini kullanmak için kullanılır. Command, expect,raw,script,shell
  • Files: Acl, Archive, copy, file,find,lineinfile, replace,state,template, unarchive
  • Database: mongodb,mssql,mysql,postgresql, proxysql, vertica vb.
  • Cloud: amazon,atmic,azure,digitalocean,docker,google,vmware vb. sistemler ile çalışabilir,
  • Windows: win_copy,win_command,win_file,win_domain,win_iis_website,win_ping,win_path,win_robocopy,win_user ve dahasi.

ve dahası docs.ansible.com üzerinde örnekler ile paylaşılmakta.

Bazılarını biraz test edelim.

Command modülü, komutları remote node üzerinde çalıştırmak için kullanılır.

https://docs.ansible.com/ansible/2.5/modules/command_module.html#command-module

Host üzerinde command komutu ile date komutu calıstırıldı yanı sıra cat /etc/resolv.conf komutu kullanılarak direk resolv.conf dosyası cat ile görüntülendi.

-
   Name: Play 1
   Hosts: localhost
   tasks:
     - name: Execute command 'date'
       command: date

     - name: Display resolv.conf contents
       command: cat /etc/resolv.conf

Örnek yapalım,

web server nodları üzerinde /tmp/install_script.sh scriptini çalıştıralım. script modülünü kullanarak.

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/script_module.html

-
    name: 'Execute a script on all web server nodes'
    hosts: web_nodes
    tasks:
        -
            name: 'Execute a script on all web server nodes'
            script: /tmp/install_script.sh

http servisinin tüm web nodlarında çalıştırılması için palybooku güncelleyelim,

-
    name: 'Execute a script on all web server nodes'
    hosts: web_nodes
    tasks:
        -
            name: 'Execute a script'
            script: /tmp/install_script.sh
        -
            name: 'Start httpd service'
            service: 'name=httpd state=started'

resolv.conf içerisine 10.1.250.10 adresini ekleyecek şekilde lineinfile modülünü kullanarak işlemi gerçekleştirelim,

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/lineinfile_module.html

-
    name: 'Execute a script on all web server nodes and start httpd service'
    hosts: web_nodes
    tasks:
        -
            name: 'Update entry into /etc/resolv.conf'
            lineinfile:
                path: /etc/resolv.conf
                line: 'nameserver 10.1.250.10'
        -
            name: 'Execute a script'
            script: /tmp/install_script.sh
        -
            name: 'Start httpd service'
            service:
                name: httpd
                state: present

Yeni bir web kullanıcısı oluşturmak için resolv.conf dan sonra yeni bir komut oluşturalım ve kullanıcı oluşturma işlemini aşağıdaki bilgilere göre gerçekleştirelim,

Username: web_user
uid: 1040
group: developers

Bu işlem için user modülü kullanılacak.

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html

-
    name: 'Execute a script on all web server nodes and start httpd service'
    hosts: web_nodes
    tasks:
        -
            name: 'Update entry into /etc/resolv.conf'
            lineinfile:
                path: /etc/resolv.conf
                line: 'nameserver 10.1.250.10'
        -
            name: 'Create a new user'
            user:
                name: web_user
                uid: 1040
                group: developers
        -
            name: 'Execute a script'
            script: /tmp/install_script.sh
        -
            name: 'Start httpd service'
            service:
                name: httpd
                state: present

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir