ฉันจะหารายการของตัวแปรที่กำหนดล่วงหน้า Ansible ได้ที่ไหน


169

ฉันเห็นว่า Ansible มีตัวแปรที่กำหนดไว้ล่วงหน้าซึ่งเราสามารถใช้ใน playbooks และไฟล์เทมเพลต ตัวอย่างเช่นที่อยู่ IP ของโฮสต์คือ ansible_eth0.ipv4.address Google และการค้นหาเอกสารที่ฉันไม่พบรายการตัวแปรทั้งหมดที่มี บางคนจะแสดงรายการพวกเขาให้ฉันหรือไม่

คำตอบ:


202

โอ๊ะ! จากคำถามที่พบบ่อย :

ฉันจะดูรายการตัวแปร ansible_ ทั้งหมดได้อย่างไร โดยปกติแล้ว Ansible จะรวบรวม“ ข้อเท็จจริง” เกี่ยวกับเครื่องภายใต้การจัดการและข้อเท็จจริงเหล่านี้สามารถเข้าถึงได้ใน Playbooks และในแม่แบบ หากต้องการดูรายการข้อเท็จจริงทั้งหมดที่มีอยู่ในเครื่องคุณสามารถเรียกใช้โมดูล "การตั้งค่า" เป็นการกระทำแบบเฉพาะกิจ:

ansible -m setup hostname

สิ่งนี้จะพิมพ์พจนานุกรมของข้อเท็จจริงทั้งหมดที่มีให้สำหรับโฮสต์นั้น

นี่คือผลลัพธ์สำหรับเครื่องเสมือนคนจรจัดของฉันที่เรียกว่า scdev:

scdev | success >> {
    "ansible_facts": {                                                                                                 
        "ansible_all_ipv4_addresses": [                                                                                
            "10.0.2.15",                                                                                               
            "192.168.10.10"                                                                                            
        ],                                                                                                             
        "ansible_all_ipv6_addresses": [                                                                                
            "fe80::a00:27ff:fe12:9698",                                                                                
            "fe80::a00:27ff:fe74:1330"                                                                                 
        ],                                                                                                             
        "ansible_architecture": "i386",                                                                                
        "ansible_bios_date": "12/01/2006",                                                                             
        "ansible_bios_version": "VirtualBox",                                                                          
        "ansible_cmdline": {                                                                                           
            "BOOT_IMAGE": "/vmlinuz-3.2.0-23-generic-pae",                                                             
            "quiet": true,                                                                                             
            "ro": true,                                                                                                
            "root": "/dev/mapper/precise32-root"                                                                       
        },                                                                                                             
        "ansible_date_time": {                                                                                         
            "date": "2013-09-17",                                                                                      
            "day": "17",                                                                                               
            "epoch": "1379378304",                                                                                     
            "hour": "00",                                                                                              
            "iso8601": "2013-09-17T00:38:24Z",                                                                         
            "iso8601_micro": "2013-09-17T00:38:24.425092Z",                                                            
            "minute": "38",                                                                                            
            "month": "09",                                                                                             
            "second": "24",                                                                                            
            "time": "00:38:24",                                                                                        
            "tz": "UTC",                                                                                               
            "year": "2013"                                                                                             
        },                                                                                                             
        "ansible_default_ipv4": {                                                                                      
            "address": "10.0.2.15",                                                                                    
            "alias": "eth0",                                                                                           
            "gateway": "10.0.2.2",                                                                                     
            "interface": "eth0",                                                                                       
            "macaddress": "08:00:27:12:96:98",                                                                         
            "mtu": 1500,                                                                                               
            "netmask": "255.255.255.0",                                                                                
            "network": "10.0.2.0",                                                                                     
            "type": "ether"                                                                                            
        },                                                                                                             
        "ansible_default_ipv6": {},                                                                                    
        "ansible_devices": {                                                                                           
            "sda": {                                                                                                   
                "holders": [],                                                                                         
                "host": "SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 02)",                                                                                                                
                "model": "VBOX HARDDISK",                                                                              
                "partitions": {                                                                                        
                    "sda1": {                                                                                          
                        "sectors": "497664",                                                                           
                        "sectorsize": 512,                                                                             
                        "size": "243.00 MB",                                                                           
                        "start": "2048"                                                                                
                    },                                                                                                 
                    "sda2": {                                                                                          
                        "sectors": "2",                                                                                
                        "sectorsize": 512,                                                                             
                        "size": "1.00 KB",                                                                             
                        "start": "501758"                                                                              
                    },                                                                                                 
                },                                                                                                     
                "removable": "0",                                                                                      
                "rotational": "1",                                                                                     
                "scheduler_mode": "cfq",                                                                               
                "sectors": "167772160",                                                                                
                "sectorsize": "512",                                                                                   
                "size": "80.00 GB",                                                                                    
                "support_discard": "0",                                                                                
                "vendor": "ATA"                                                                                        
            },                                                                                                         
            "sr0": {                                                                                                   
                "holders": [],                                                                                         
                "host": "IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)",                           
                "model": "CD-ROM",                                                                                     
                "partitions": {},                                                                                      
                "removable": "1",                                                                                      
                "rotational": "1",                                                                                     
                "scheduler_mode": "cfq",                                                                               
                "sectors": "2097151",                                                                                  
                "sectorsize": "512",                                                                                   
                "size": "1024.00 MB",                                                                                  
                "support_discard": "0",                                                                                
                "vendor": "VBOX"                                                                                       
            },                                                                                                         
            "sr1": {                                                                                                   
                "holders": [],                                                                                         
                "host": "IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)",                           
                "model": "CD-ROM",                                                                                     
                "partitions": {},                                                                                      
                "removable": "1",                                                                                      
                "rotational": "1",                                                                                     
                "scheduler_mode": "cfq",                                                                               
                "sectors": "2097151",                                                                                  
                "sectorsize": "512",                                                                                   
                "size": "1024.00 MB",                                                                                  
                "support_discard": "0",                                                                                
                "vendor": "VBOX"                                                                                       
            }                                                                                                          
        },                                                                                                             
        "ansible_distribution": "Ubuntu",                                                                              
        "ansible_distribution_release": "precise",                                                                     
        "ansible_distribution_version": "12.04",                                                                       
        "ansible_domain": "",                                                                                          
        "ansible_eth0": {                                                                                              
            "active": true,                                                                                            
            "device": "eth0",                                                                                          
            "ipv4": {                                                                                                  
                "address": "10.0.2.15",                                                                                
                "netmask": "255.255.255.0",                                                                            
                "network": "10.0.2.0"                                                                                  
            },                                                                                                         
            "ipv6": [                                                                                                  
                {                                                                                                      
                    "address": "fe80::a00:27ff:fe12:9698",                                                             
                    "prefix": "64",                                                                                    
                    "scope": "link"                                                                                    
                }                                                                                                      
            ],                                                                                                         
            "macaddress": "08:00:27:12:96:98",                                                                         
            "module": "e1000",                                                                                         
            "mtu": 1500,                                                                                               
            "type": "ether"                                                                                            
        },                                                                                                             
        "ansible_eth1": {                                                                                              
            "active": true,                                                                                            
            "device": "eth1",                                                                                          
            "ipv4": {                                                                                                  
                "address": "192.168.10.10",                                                                            
                "netmask": "255.255.255.0",                                                                            
                "network": "192.168.10.0"                                                                              
            },                                                                                                         
            "ipv6": [                                                                                                  
                {                                                                                                      
                    "address": "fe80::a00:27ff:fe74:1330",                                                             
                    "prefix": "64",                                                                                    
                    "scope": "link"                                                                                    
                }                                                                                                      
            ],                                                                                                         
            "macaddress": "08:00:27:74:13:30",                                                                         
            "module": "e1000",                                                                                         
            "mtu": 1500,                                                                                               
            "type": "ether"                                                                                            
        },                                                                                                             
        "ansible_form_factor": "Other",                                                                                
        "ansible_fqdn": "scdev",                                                                                       
        "ansible_hostname": "scdev",                                                                                   
        "ansible_interfaces": [                                                                                        
            "lo",                                                                                                      
            "eth1",                                                                                                    
            "eth0"                                                                                                     
        ],                                                                                                             
        "ansible_kernel": "3.2.0-23-generic-pae",                                                                      
        "ansible_lo": {                                                                                                
            "active": true,                                                                                            
            "device": "lo",                                                                                            
            "ipv4": {                                                                                                  
                "address": "127.0.0.1",                                                                                
                "netmask": "255.0.0.0",                                                                                
                "network": "127.0.0.0"                                                                                 
            },                                                                                                         
            "ipv6": [                                                                                                  
                {                                                                                                      
                    "address": "::1",                                                                                  
                    "prefix": "128",                                                                                   
                    "scope": "host"                                                                                    
                }                                                                                                      
            ],                                                                                                         
            "mtu": 16436,                                                                                              
            "type": "loopback"                                                                                         
        },                                                                                                             
        "ansible_lsb": {                                                                                               
            "codename": "precise",                                                                                     
            "description": "Ubuntu 12.04 LTS",                                                                         
            "id": "Ubuntu",                                                                                            
            "major_release": "12",                                                                                     
            "release": "12.04"                                                                                         
        },                                                                                                             
        "ansible_machine": "i686",                                                                                     
        "ansible_memfree_mb": 23,                                                                                      
        "ansible_memtotal_mb": 369,                                                                                    
        "ansible_mounts": [                                                                                            
            {                                                                                                          
                "device": "/dev/mapper/precise32-root",                                                                
                "fstype": "ext4",                                                                                      
                "mount": "/",                                                                                          
                "options": "rw,errors=remount-ro",                                                                     
                "size_available": 77685088256,                                                                         
                "size_total": 84696281088                                                                              
            },                                                                                                         
            {                                                                                                          
                "device": "/dev/sda1",                                                                                 
                "fstype": "ext2",                                                                                      
                "mount": "/boot",                                                                                      
                "options": "rw",                                                                                       
                "size_available": 201044992,                                                                           
                "size_total": 238787584                                                                                
            },                                                                                                         
            {                                                                                                          
                "device": "/vagrant",                                                                                  
                "fstype": "vboxsf",                                                                                    
                "mount": "/vagrant",                                                                                   
                "options": "uid=1000,gid=1000,rw",                                                                     
                "size_available": 42013151232,                                                                         
                "size_total": 484145360896                                                                             
            }                                                                                                          
        ],                                                                                                             
        "ansible_os_family": "Debian",                                                                                 
        "ansible_pkg_mgr": "apt",                                                                                      
        "ansible_processor": [                                                                                         
            "Pentium(R) Dual-Core  CPU      E5300  @ 2.60GHz"                                                          
        ],                                                                                                             
        "ansible_processor_cores": "NA",                                                                               
        "ansible_processor_count": 1,                                                                                  
        "ansible_product_name": "VirtualBox",                                                                          
        "ansible_product_serial": "NA",                                                                                
        "ansible_product_uuid": "NA",                                                                                  
        "ansible_product_version": "1.2",                                                                              
        "ansible_python_version": "2.7.3", 
        "ansible_selinux": false, 
        "ansible_swapfree_mb": 766, 
        "ansible_swaptotal_mb": 767, 
        "ansible_system": "Linux", 
        "ansible_system_vendor": "innotek GmbH", 
        "ansible_user_id": "neves", 
        "ansible_userspace_architecture": "i386", 
        "ansible_userspace_bits": "32", 
        "ansible_virtualization_role": "guest", 
        "ansible_virtualization_type": "virtualbox"
    }, 
    "changed": false
}

เอกสารปัจจุบันมีตอนที่สมบูรณ์ที่แสดงรายการตัวแปรและข้อเท็จจริงทั้งหมด


17
นี่ไม่ใช่รายการตัวแปรที่สมบูรณ์
tymik

2
ในการใช้คำสั่งบน IP / โฮสต์เดียวที่ไม่ได้รับในสินค้าคงคลังให้เรียกใช้: ansible <ip> -m setup -i <ip>,- อย่าลืมเครื่องหมายจุลภาคในตอนท้ายเพื่อทำให้เป็นรายการและด้วยเหตุนี้จึงเป็นสินค้าคงคลัง
Remigius Stalder

5
ไม่มีรายการเอกสารว่าแต่ละสิ่งเหล่านี้มีอะไรบ้าง สิ่งที่อาจปรากฏในรายการบนเซิร์ฟเวอร์ต่าง ๆ แม้ว่าสิ่งเหล่านี้จะไม่ปรากฏในเซิร์ฟเวอร์ที่คุณกำลังกดปุ่ม
Paul Hodges

1
Nope! ไม่ตลกหรอก และน่ารำคาญ Anyways ดูปัญหา GitHub นี้
Martin Andersson

เอกสารที่เชื่อได้ค่อนข้างอ่อนแอในบางพื้นที่ฉันคิดว่ามันน่าจะเป็นสิ่งที่แปลกใหม่ ฉันหมายความว่าฉันไม่สามารถใช้แท็กที่มีส่วนหัวหรือส่วนท้ายของการใช้แท็กรวมถึง task_tasks ดูเหมือนจะส่งผลให้เกิดพฤติกรรมแปลก ๆ
Tom H

68
ansible -m setup hostname

รับข้อเท็จจริงที่รวบรวมโดยโมดูลการตั้งค่าเท่านั้น

Gilles Cornu โพสต์แม่แบบเพื่อแสดงรายการตัวแปรทั้งหมดสำหรับโฮสต์ที่เฉพาะเจาะจง

เทมเพลต (ภายหลังเรียกว่าdump_variables ):

HOSTVARS (ANSIBLE GATHERED, group_vars, host_vars) :

{{ hostvars[inventory_hostname] | to_yaml }}

PLAYBOOK VARS:

{{ vars | to_yaml }}

Playbook เพื่อใช้งาน:

- hosts: all
  tasks:
  - template:
      src: templates/dump_variables
      dest: /tmp/ansible_variables
  - fetch:
      src: /tmp/ansible_variables
      dest: "{{inventory_hostname}}_ansible_variables"

หลังจากนั้นคุณมีดัมพ์ของตัวแปรทั้งหมดในทุกโฮสต์และสำเนาของไฟล์ดัมพ์ข้อความแต่ละไฟล์บนเวิร์กสเตชันโลคัลของคุณในโฟลเดอร์ tmp ของคุณ หากคุณไม่ต้องการสำเนาภายในคุณสามารถลบคำสั่งดึงข้อมูล

ซึ่งรวมถึงข้อเท็จจริงที่รวบรวมได้ตัวแปรโฮสต์และตัวแปรกลุ่ม ดังนั้นคุณจะเห็นตัวแปรเริ่มต้นเบิ้ลเช่นGROUP_NAMES , inventory_hostname , ansible_ssh_hostและอื่น ๆ


4
นี่คือคำตอบที่ถูกต้อง - คำตอบ upvote อื่น ๆ จะไม่ทำให้คุณเห็นรายการตัวแปรทั้งหมดที่คุณมี
Steve Midgley

1
อันนี้คุณไม่ได้รับรายการที่สมบูรณ์
tymik

5
คุณช่วยยกตัวอย่างสิ่งที่ขาดไปได้ไหม
Enno Gröper

33

ตัวแปรมีอยู่ 3 แหล่งใน Ansible:

  1. ตัวแปรที่รวบรวมจากข้อเท็จจริง คุณสามารถรับได้โดยใช้คำสั่ง:ansible -m setup hostname

  2. Built-in (กำหนดไว้ล่วงหน้า) ตัวแปร Ansible (AKA 'magic' ตัวแปร) พวกเขามีการบันทึกไว้ในเอกสารประกอบ Ansible: http://docs.ansible.com/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts
    นี่คือรายการที่แยกมาจากเอกสาร 1.9 Ansible:

    • GROUP_NAMES
    • กลุ่ม
    • inventory_hostname
    • ansible_hostname
    • inventory_hostname_short
    • play_hosts
    • delegate_to
    • inventory_dir
    • inventory_file
  3. ตัวแปรที่ส่งผ่านไปยัง ansible ผ่านทางบรรทัดคำสั่ง แต่เห็นได้ชัดว่าคุณรู้ว่าพวกเขาคืออะไร

1
แม่แบบหลอกลวงในโพสต์ด้านบนโดยข้อผิดพลาด Enno สำหรับฉันใน v2.2.1 รายการที่คุณให้ไว้ต่ำกว่า 2 มีสิ่งที่ฉันต้องการมันหายากด้วยตนเอง ขอบคุณ!
ahamilton9

ฉันคิดว่านี่เป็นคำตอบเดียวที่สมบูรณ์เนื่องจาก OP ไม่ได้ถามเฉพาะตัวแปรที่ขึ้นต้นด้วย ansible_ พวกเขาถามหา "ตัวแปรที่มีทั้งหมด" ตัวแปรเวทย์มนตร์ไม่ได้อ้างถึงแม้เพียงอย่างเดียวรวมอยู่ในคำตอบที่พบบ่อย เนื่องจากคำตอบนี้ถูกเขียนขึ้นมีตัวแปรเวทที่มีประโยชน์เพิ่มเติมเช่นrole_path- มันคุ้มค่าที่จะเยี่ยมชมลิงค์ที่มีให้เพื่อดูรายการสำหรับ Ansible รุ่นปัจจุบัน ระวังให้ดีว่า ansible พัฒนาอย่างรวดเร็วและ repo version สำหรับ Debian และลูก ๆ ของมันค่อนข้างเก่า ตรวจสอบเวอร์ชันที่คุณติดตั้งกับเอกสารอย่างละเอียด
Ian Gibbs

16

ฉันใช้ playbook ที่เรียบง่ายนี้:

---
# vars.yml
#
# Shows the value of all variables/facts.
#
# Example:
#
#   ansible-playbook vars.yml -e 'hosts=localhost'
#
- hosts: localhost
  tasks:
    - fail: "You must specify a value for `hosts` variable - e.g.: ansible-playbook vars.yml -e 'hosts=localhost'"
      when: hosts is not defined

- hosts: "{{ hosts }}"
  tasks:
    - debug: var=vars
    - debug: var=hostvars[inventory_hostname]

และคุณจะยังไม่ได้รับรายการตัวแปรทั้งหมดที่ใช้
tymik

กรุณาอธิบายความคิดเห็นของคุณให้ละเอียดหน่อยได้ไหม?
Jean-Philippe Caruana

การถอนการแก้ไขนี้เนื่องจากบางครั้ง (โดยเฉพาะกับสินค้าคงเหลือบนคลาวด์) ansible -m setupไม่ได้ทำเคล็ดลับและคุณต้องได้รับข้อมูลนี้จาก playbook
Nik Reiman

10

debugโมดูลสามารถนำมาใช้ในการวิเคราะห์ตัวแปร ระวังการรันคำสั่งต่อไปนี้ ในการตั้งค่าของเรามันสร้าง 444709 บรรทัดด้วย 16MB:

ansible -m debug -a 'var=hostvars' localhost

ฉันไม่แน่ใจ แต่อาจจำเป็นต้องเปิดใช้งานการแคชข้อเท็จจริง

หากคุณต้องการเพียงโฮสต์เดียวใช้ชื่อโฮสต์เป็นกุญแจสำคัญสำหรับhostvarsแฮ:

ansible -m debug -a 'var=hostvars.localhost' localhost

คำสั่งนี้จะแสดงกลุ่มตัวแปรและโฮสต์


9

มีตัวแปรจำนวนมากที่กำหนดเป็นข้อเท็จจริง - http://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts

"ansible_all_ipv4_addresses": [
    "REDACTED IP ADDRESS"
],
"ansible_all_ipv6_addresses": [
    "REDACTED IPV6 ADDRESS"
],
"ansible_architecture": "x86_64",
"ansible_bios_date": "09/20/2012",
"ansible_bios_version": "6.00",
"ansible_cmdline": {
    "BOOT_IMAGE": "/boot/vmlinuz-3.5.0-23-generic",
    "quiet": true,
    "ro": true,
    "root": "UUID=4195bff4-e157-4e41-8701-e93f0aec9e22",
    "splash": true
},
"ansible_date_time": {
    "date": "2013-10-02",
    "day": "02",
    "epoch": "1380756810",
    "hour": "19",
    "iso8601": "2013-10-02T23:33:30Z",
    "iso8601_micro": "2013-10-02T23:33:30.036070Z",
    "minute": "33",
    "month": "10",
    "second": "30",
    "time": "19:33:30",
    "tz": "EDT",
    "year": "2013"
},
"ansible_default_ipv4": {
    "address": "REDACTED",
    "alias": "eth0",
    "gateway": "REDACTED",
    "interface": "eth0",
    "macaddress": "REDACTED",
    "mtu": 1500,
    "netmask": "255.255.255.0",
    "network": "REDACTED",
    "type": "ether"
},
"ansible_default_ipv6": {},
"ansible_devices": {
    "fd0": {
        "holders": [],
        "host": "",
        "model": null,
        "partitions": {},
        "removable": "1",
        "rotational": "1",
        "scheduler_mode": "deadline",
        "sectors": "0",
        "sectorsize": "512",
        "size": "0.00 Bytes",
        "support_discard": "0",
        "vendor": null
    },
    "sda": {
        "holders": [],
        "host": "SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)",
        "model": "VMware Virtual S",
        "partitions": {
            "sda1": {
                "sectors": "39843840",
                "sectorsize": 512,
                "size": "19.00 GB",
                "start": "2048"
            },
            "sda2": {
                "sectors": "2",
                "sectorsize": 512,
                "size": "1.00 KB",
                "start": "39847934"
            },
            "sda5": {
                "sectors": "2093056",
                "sectorsize": 512,
                "size": "1022.00 MB",
                "start": "39847936"
            }
        },
        "removable": "0",
        "rotational": "1",
        "scheduler_mode": "deadline",
        "sectors": "41943040",
        "sectorsize": "512",
        "size": "20.00 GB",
        "support_discard": "0",
        "vendor": "VMware,"
    },
    "sr0": {
        "holders": [],
        "host": "IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)",
        "model": "VMware IDE CDR10",
        "partitions": {},
        "removable": "1",
        "rotational": "1",
        "scheduler_mode": "deadline",
        "sectors": "2097151",
        "sectorsize": "512",
        "size": "1024.00 MB",
        "support_discard": "0",
        "vendor": "NECVMWar"
    }
},
"ansible_distribution": "Ubuntu",
"ansible_distribution_release": "precise",
"ansible_distribution_version": "12.04",
"ansible_domain": "",
"ansible_env": {
    "COLORTERM": "gnome-terminal",
    "DISPLAY": ":0",
    "HOME": "/home/mdehaan",
    "LANG": "C",
    "LESSCLOSE": "/usr/bin/lesspipe %s %s",
    "LESSOPEN": "| /usr/bin/lesspipe %s",
    "LOGNAME": "root",
    "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:",
    "MAIL": "/var/mail/root",
    "OLDPWD": "/root/ansible/docsite",
    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
    "PWD": "/root/ansible",
    "SHELL": "/bin/bash",
    "SHLVL": "1",
    "SUDO_COMMAND": "/bin/bash",
    "SUDO_GID": "1000",
    "SUDO_UID": "1000",
    "SUDO_USER": "mdehaan",
    "TERM": "xterm",
    "USER": "root",
    "USERNAME": "root",
    "XAUTHORITY": "/home/mdehaan/.Xauthority",
    "_": "/usr/local/bin/ansible"
},
"ansible_eth0": {
    "active": true,
    "device": "eth0",
    "ipv4": {
        "address": "REDACTED",
        "netmask": "255.255.255.0",
        "network": "REDACTED"
    },
    "ipv6": [
        {
            "address": "REDACTED",
            "prefix": "64",
            "scope": "link"
        }
    ],
    "macaddress": "REDACTED",
    "module": "e1000",
    "mtu": 1500,
    "type": "ether"
},
"ansible_form_factor": "Other",
"ansible_fqdn": "ubuntu2.example.com",
"ansible_hostname": "ubuntu2",
"ansible_interfaces": [
    "lo",
    "eth0"
],
"ansible_kernel": "3.5.0-23-generic",
"ansible_lo": {
    "active": true,
    "device": "lo",
    "ipv4": {
        "address": "127.0.0.1",
        "netmask": "255.0.0.0",
        "network": "127.0.0.0"
    },
    "ipv6": [
        {
            "address": "::1",
            "prefix": "128",
            "scope": "host"
        }
    ],
    "mtu": 16436,
    "type": "loopback"
},
"ansible_lsb": {
    "codename": "precise",
    "description": "Ubuntu 12.04.2 LTS",
    "id": "Ubuntu",
    "major_release": "12",
    "release": "12.04"
},
"ansible_machine": "x86_64",
"ansible_memfree_mb": 74,
"ansible_memtotal_mb": 991,
"ansible_mounts": [
    {
        "device": "/dev/sda1",
        "fstype": "ext4",
        "mount": "/",
        "options": "rw,errors=remount-ro",
        "size_available": 15032406016,
        "size_total": 20079898624
    }
],
"ansible_nodename": "ubuntu2.example.com",
"ansible_os_family": "Debian",
"ansible_pkg_mgr": "apt",
"ansible_processor": [
    "Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz"
],
"ansible_processor_cores": 1,
"ansible_processor_count": 1,
"ansible_processor_threads_per_core": 1,
"ansible_processor_vcpus": 1,
"ansible_product_name": "VMware Virtual Platform",
"ansible_product_serial": "REDACTED",
"ansible_product_uuid": "REDACTED",
"ansible_product_version": "None",
"ansible_python_version": "2.7.3",
"ansible_selinux": false,
"ansible_ssh_host_key_dsa_public": "REDACTED KEY VALUE"
"ansible_ssh_host_key_ecdsa_public": "REDACTED KEY VALUE"
"ansible_ssh_host_key_rsa_public": "REDACTED KEY VALUE"
"ansible_swapfree_mb": 665,
"ansible_swaptotal_mb": 1021,
"ansible_system": "Linux",
"ansible_system_vendor": "VMware, Inc.",
"ansible_user_id": "root",
"ansible_userspace_architecture": "x86_64",
"ansible_userspace_bits": "64",
"ansible_virtualization_role": "guest",
"ansible_virtualization_type": "VMware"

4

โปรดสังเกตว่าเอกสารอย่างเป็นทางการเกี่ยวกับตัวแปรการกำหนดค่าการเชื่อมต่อหรือตัวแปร "พฤติกรรม" ซึ่งไม่ปรากฏใน vars โฮสต์ดูเหมือนจะเป็นรายการพารามิเตอร์พฤติกรรมสินค้าคงคลังในเอกสารประกอบการสินค้าคงคลัง

ป.ล. sudoตัวเลือกไม่มีเอกสารที่นั่น (ใช่sudoไม่ใช่ansible_sudoอย่างที่คุณคาดหวัง ... ) และอาจมีอีกไม่มาก แต่นั่นเป็นเอกสารที่ดีที่สุดที่ฉันพบใน em


1

ตัวแปรบางอย่างที่ไม่สามารถใช้ได้ในทุกโฮสต์เช่นและansible_domain domainหากสถานการณ์จำเป็นต้องมีการ debugged ฉันเข้าสู่เซิร์ฟเวอร์และปัญหา:

user@server:~$ ansible -m setup localhost | grep domain
 [WARNING]: provided hosts list is empty, only localhost is available
    "ansible_domain": "prd.example.com",

1

ฉันรู้ว่าคำถามนี้ได้รับการตอบแล้ว แต่ฉันรู้สึกเหมือนว่ามีตัวแปรที่กำหนดไว้ล่วงหน้าทั้งหมดซึ่งไม่ครอบคลุมโดยข้อเท็จจริง ansible_ * หน้าเอกสารนี้ครอบคลุมคำสั่ง (ตัวแปรที่ปรับเปลี่ยนพฤติกรรมของ Ansible) ซึ่งฉันกำลังมองหาเมื่อฉันเจอหน้านี้

ซึ่งรวมถึงคำสั่งกรณีการใช้งานทั่วไปและบางข้อ:

  • กลายเป็น: การควบคุมการเพิ่มระดับสิทธิ์ (sudo)
  • delegate_to: เรียกใช้งานบนโฮสต์อื่น (เช่นทำงานบน localhost)
  • serial: อนุญาตให้คุณเรียกใช้การเล่นในจำนวนที่ระบุ / เปอร์เซ็นต์ของโฮสต์ก่อนที่จะย้ายไปยังชุดถัดไป

1
พยายามระบุตัวแปรสำคัญบางอย่างที่นี่และใช้ลิงก์เพื่อการอ้างอิงดังนั้นหากด้วยเหตุผลใดก็ตามการแบ่งลิงก์คำตอบของคุณจะยังคงมีประโยชน์
M--

2
ฉันเพิ่มตัวอย่างบางส่วน เป็นการยากที่จะเขียนรายการตัวแปร "สำคัญ" เนื่องจากมีความแตกต่างกันมากตามสิ่งที่คุณพยายามจะทำ
garettmd

ลิงก์เอกสารที่คุณให้มาไม่ถูกต้องอีกต่อไป
Arne Van Den Kerchove

0

https://github.com/f500/ansible-dumpall
FYI: โครงการ gitHub นี้แสดงวิธีการแสดงรายการ 90% ของตัวแปรในโฮสต์ทั้งหมด ฉันพบว่ามันมีประโยชน์ทั่วโลกมากกว่าคำสั่งโฮสต์เดียว README มีคำแนะนำในการสร้างรายงานสินค้าคงคลังอย่างง่าย มันมีคุณค่ายิ่งกว่าในการใช้งานเมื่อสิ้นสุด playbook เพื่อดูข้อเท็จจริงทั้งหมด ในการแก้ไขข้อบกพร่องลักษณะการทำงานให้ใช้ register:

ผลลัพธ์หายไปสองสามรายการ: - รวมตัวแปรไฟล์ YAML - Extra-vars - จำนวนของ Anars ภายในที่อธิบายไว้ที่นี่: Ansible Behavioral Params

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.