본문 바로가기

기타

[Ansible] setup 모듈(setup module)

728x90

Ansible setup 모듈

 : ansible facts를 수집하는 setup 모듈

ansible facts

: ansible facts는 운영체제, IP주소, 연결된 파일시스템 등을 포함하여 원격시스템과 관련된 데이터

setup 모듈 사용 방법

ansible -i inventory/hosts -m setup localhost

$ ansible -i inventory/hosts -m setup localhost
bvm41 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "192.168.56.11",
            "192.168.101.199"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::a00:27ff:fe9d:eae8",
            "fe80::480e:72fa:8856:aff9"
        ],
        "ansible_apparmor": {
            "status": "disabled"
        },
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "12/01/2006",
        "ansible_bios_version": "VirtualBox",
        "ansible_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-3.10.0-1160.25.1.el7.x86_64",
            "LANG": "en_US.UTF-8",
            "crashkernel": "auto",
            "quiet": true,
            "rhgb": true,
            "ro": true,
            "root": "UUID=ad62d3f6-1579-471d-8d9f-7be9d4dab178"
        },
        "ansible_date_time": {
            "date": "2021-06-03",
            "day": "03",
            "epoch": "1622687020",
            "hour": "11",
            "iso8601": "2021-06-03T02:23:40Z",
            "iso8601_basic": "20210603T112340814113",
            "iso8601_basic_short": "20210603T112340",
            "iso8601_micro": "2021-06-03T02:23:40.814113Z",
            "minute": "23",
            "month": "06",
            "second": "40",
            "time": "11:23:40",
            "tz": "KST",
            "tz_offset": "+0900",
            "weekday": "목요일",
            "weekday_number": "4",
            "weeknumber": "22",
            "year": "2021"
        },
        ...
        "ansible_selinux_python_present": true,
        "ansible_service_mgr": "systemd",
        "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAF6dl8y1Iw7wTYsQMoPsfIDphwEi3NN7vZLE7sKgk2yFpwwp0fsJ5ZEBZPoTMPnspnsv1Dl+9iTJ6mUMT1fyu0=",
        "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAIAuOF7DbOMaGF92QID1TRQ/TW7JjPlRVilIeb8v/rd+O",
        "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCzrs0I+bLAivb+aN2s9+hMwPM9lR2EmQdLrUuelA4VY0WQ3wqkh5Vb1+mhCT9w2mPA/qniKxwhneANKKrYgGXCeJhhnhvxhAnwm82qSI+Cis2yNSQIaejauaozlIXRmmgjLRq6L+3nceCsHMzTOkKTDs4oRRy/gYkmzy7cvhL9Ck4XY0sZw3dVTJm022QQxRtW07hbyT1U0ET5sMFJdYlm7j/cF7eM8datdMEfs1X/Woa9mOKvjnzY7UKSqGZUubdiRNVQe1046LtogGTtpgr8Xd85VzXSB7RQW7oRhRU7u0dCy0lYWIVhDWoLSOG/Z6uVWc3gQza0uZwR2eMO2yoJ",
        "ansible_swapfree_mb": 4095,
        "ansible_swaptotal_mb": 4095,
        "ansible_system": "Linux",
        "ansible_system_capabilities": [
            ""
        ],
        "ansible_system_capabilities_enforced": "True",
        "ansible_system_vendor": "innotek GmbH",
        "ansible_uptime_seconds": 9916,
        "ansible_user_dir": "/home/ec2-user",
        "ansible_user_gecos": "",
        "ansible_user_gid": 1000,
        "ansible_user_id": "ec2-user",
        "ansible_user_shell": "/bin/zsh",
        "ansible_user_uid": 1000,
        "ansible_userspace_architecture": "x86_64",
        "ansible_userspace_bits": "64",
        "ansible_virtualization_role": "guest",
        "ansible_virtualization_type": "virtualbox",
        "discovered_interpreter_python": "/usr/bin/python",
        "gather_subset": [
            "all"
        ],
        "module_setup": true
    },
    "changed": false
} 

많은 양의 데이터가 출력되므로 필터 파라미터를 사용하여 필요한 데이터만 출력할 수 있다

파라미터

ip 주소 및 cpu 정보 출력

$ ansible -i inventory/hosts localhost -m setup -a "filter=ansible_all_ipv4_addresses"
bvm41 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "192.168.56.11",
            "192.168.101.199"
        ],
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
}

$ ansible -i inventory/hosts localhost -m setup -a "filter=ansible_processor"
bvm41 | SUCCESS => {
    "ansible_facts": {
        "ansible_processor": [
            "0",
            "GenuineIntel",
            "Intel(R) Core(TM) i7-4558U CPU @ 2.80GHz"
        ],
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
}

https://docs.ansible.com/ansible/2.9/modules/setup_module.html

https://docs.ansible.com/ansible/latest/user_guide/playbooks_vars_facts.html

 

728x90