Tôi có thể lấy danh sách các biến được xác định trước Ansible ở đâu?


168

Tôi thấy rằng Ansible cung cấp một số biến được xác định trước mà chúng ta có thể sử dụng trong các tệp playbook và tệp mẫu. Ví dụ: địa chỉ IP máy chủ là ansible_eth0.ipv4.address. Google và tìm kiếm các tài liệu tôi không tìm thấy danh sách tất cả các biến có sẵn. Ai đó sẽ liệt kê chúng cho tôi?

Câu trả lời:


202

Argh! Từ câu hỏi thường gặp :

Làm cách nào để xem danh sách tất cả các biến ansible_? Ansible theo mặc định tập hợp các thông tin trực tuyến về các máy được quản lý và những sự thật này có thể được truy cập trong Playbooks và trong các mẫu. Để xem danh sách tất cả các sự kiện có sẵn về một chiếc máy, bạn có thể chạy mô-đun cài đặt thành công của NX như một hành động đặc biệt:

ansible -m setup hostname

Điều này sẽ in ra một từ điển của tất cả các sự kiện có sẵn cho máy chủ lưu trữ cụ thể đó.

Đây là đầu ra cho máy ảo mơ hồ của tôi được gọi là 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
}

Tài liệu hiện tại có một chương hoàn chỉnh liệt kê tất cả các Biến và Sự kiện


17
đây không phải là danh sách đầy đủ các biến.
tymik

2
để sử dụng lệnh trên một IP / máy chủ duy nhất không được cung cấp trong kho, hãy gọi: ansible <ip> -m setup -i <ip>,- đừng quên dấu phẩy ở cuối để tạo danh sách và từ đó là khoảng không quảng cáo.
Remigius Stalder

5
Không có danh sách tài liệu về những điều này là gì? Những thứ có thể xuất hiện trong danh sách trên các máy chủ khác nhau, mặc dù chúng không hiển thị trên (các) bạn đang nhấn?
Paul Hodges

1
không Điều đó không quá buồn cười. Và phiền phức. Dù sao, xem vấn đề GitHub này .
Martin Andersson

Các tài liệu ansible khá yếu ở một số lĩnh vực, tôi nghĩ rằng nó có thể không phù hợp với newbs. Ý tôi là, tôi không thể tạo ra việc sử dụng các thẻ có hàm bao gồm các nhiệm vụ, dường như dẫn đến hành vi kỳ quặc
Tom H

68
ansible -m setup hostname

Chỉ nhận được các sự kiện được thu thập bởi các mô-đun thiết lập.

Gilles Cornu đã đăng một thủ thuật mẫu để liệt kê tất cả các biến cho một máy chủ cụ thể.

Mẫu (sau này được gọi là dump_variables ):

HOSTVARS (ANSIBLE GATHERED, group_vars, host_vars) :

{{ hostvars[inventory_hostname] | to_yaml }}

PLAYBOOK VARS:

{{ vars | to_yaml }}

Playbook để sử dụng nó:

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

Sau đó, bạn có một bãi chứa tất cả các biến trên mỗi máy chủ và một bản sao của mỗi tệp kết xuất văn bản trên máy trạm cục bộ trong thư mục tmp của bạn. Nếu bạn không muốn các bản sao cục bộ, bạn có thể xóa câu lệnh tìm nạp.

Điều này bao gồm các sự kiện thu thập, biến chủ và biến nhóm. Vì vậy, bạn thấy biến mặc định ansible như GROUP_NAMES , inventory_hostname , ansible_ssh_host và vân vân.


4
Đây là câu trả lời đúng - các câu trả lời nâng cao khác không giúp bạn có được danh sách đầy đủ các biến có sẵn cho bạn.
Steve Midgley

1
Điều này cũng không giúp bạn có được danh sách đầy đủ.
tymik

5
Bạn có thể cho một ví dụ về những gì còn thiếu?
Enno Gröper

33

Có 3 nguồn biến trong Ansible:

  1. Các biến được thu thập từ các sự kiện. Bạn có thể lấy chúng bằng cách chạy lệnh:ansible -m setup hostname

  2. Các biến Ansible tích hợp (được xác định trước) (các biến 'ma thuật' của AKA). Chúng được ghi lại trong tài liệu Ansible: http://docs.ansible.com/playbooks_variables.html#magic-variables-and-how-to-access-inif-about-other-hosts
    Đây là danh sách được trích xuất từ ​​tài liệu Ansible 1.9:

    • tên nhóm
    • các nhóm
    • hàng tồn kho
    • ansible_hostname
    • Invent_hostname_short
    • play_host
    • ủy nhiệm_to
    • hàng tồn kho
    • hàng tồn kho
  3. Các biến được truyền tới ansible thông qua dòng lệnh. Nhưng rõ ràng bạn biết chúng là gì

1
Thủ thuật mẫu trong bài viết trên của Enno lỗi cho tôi trên v2.2.1. Danh sách bạn cung cấp dưới 2 có những gì tôi cần, thật khó để tìm thấy thủ công. Cảm ơn!
ahamilton9

Tôi nghĩ rằng đây là câu trả lời hoàn chỉnh duy nhất, vì OP không chỉ yêu cầu các biến bắt đầu bằng ansible_, họ đã yêu cầu "tất cả các biến có sẵn". Các biến ma thuật thậm chí không được tham chiếu, hãy để một mình trong câu trả lời FAQ. Vì câu trả lời này đã được viết, có thêm các biến ma thuật hữu ích như role_path- rất đáng để truy cập vào liên kết được cung cấp để xem danh sách cho phiên bản hiện tại của Ansible. Xin lưu ý rằng ansible phát triển nhanh chóng và các phiên bản repo cho Debian và các con của nó khá cũ. Kiểm tra phiên bản bạn đã cài đặt cẩn thận với các tài liệu.
Ian Gibbs

16

Tôi sử dụng playbook đơn giản này:

---
# 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]

và bạn vẫn sẽ không nhận được danh sách đầy đủ các biến bằng cách sử dụng nó.
tymik

bạn có thể giải thích về nhận xét của bạn xin vui lòng?
Jean-Philippe Caruana

Nâng cao cách khắc phục này, bởi vì đôi khi (đặc biệt là với hàng tồn kho trên đám mây), ansible -m setupkhông thực hiện được mẹo và bạn cần lấy thông tin này từ một cuốn sách.
Nik Reiman

10

Các debugmô-đun có thể được sử dụng để phân tích các biến. Hãy cẩn thận khi chạy lệnh sau. Trong thiết lập của chúng tôi, nó tạo ra 444709 dòng với 16MB:

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

Tôi không chắc chắn nhưng có thể cần phải kích hoạt bộ đệm.

Nếu bạn chỉ cần một máy chủ, hãy sử dụng tên máy chủ làm khóa cho hostvarshàm băm:

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

Lệnh này cũng sẽ hiển thị các biến nhómmáy chủ .


9

Có rất nhiều biến được định nghĩa là Sự kiện - http://docs.ansible.com/ansible/playbooks_variables.html#inatures-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

Lưu ý các tài liệu chính thức về các biến cấu hình kết nối hoặc biến "hành vi" - không được liệt kê trong các máy chủ lưu trữ, dường như là Danh sách các thông số hàng tồn kho hành vi trong kho tài liệu .

PS sudoTùy chọn này không có giấy tờ ở đó (vâng, nó sudokhông ansible_sudonhư bạn mong đợi ...) và có thể là một vài điều nữa, nhưng đó là tài liệu tốt nhất tôi tìm thấy trên em.


1

Một số biến không có sẵn trên mỗi máy chủ, ví dụ ansible_domaindomain. Nếu tình huống cần được gỡ lỗi, tôi đăng nhập vào máy chủ và phát hành:

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

1

Tôi biết câu hỏi này đã được trả lời rồi, nhưng tôi cảm thấy như có cả một tập hợp các biến được xác định trước khác không được bao hàm bởi các sự kiện ansible_ *. Trang tài liệu này bao gồm các chỉ thị (các biến sửa đổi hành vi của Ansible), mà tôi đang tìm kiếm khi tôi bắt gặp trang này.

Điều này bao gồm một số chỉ thị trường hợp sử dụng phổ biến và cụ thể:

  • trở thành: Kiểm soát leo thang đặc quyền (sudo)
  • ủy nhiệm_to: chạy tác vụ trên một máy chủ khác (như chạy trên localhost)
  • nối tiếp: cho phép bạn chạy một số lần phát / số phần trăm cụ thể của máy chủ trước khi chuyển sang bộ tiếp theo

1
Cố gắng cung cấp một số biến quan trọng ở đây và sử dụng liên kết để tham khảo để nếu vì bất kỳ lý do nào, liên kết bị hỏng, câu trả lời của bạn sẽ vẫn hữu ích.
M--

2
Tôi đã thêm một số ví dụ. Thật khó để liệt kê các biến "quan trọng" vì nó thay đổi rất nhiều dựa trên những gì bạn đang cố gắng thực hiện
garettmd

Liên kết tài liệu bạn cung cấp không còn hiệu lực.
Arne Van Den Kerchove

0

https://github.com/f500/ansible-dumpall
FYI: dự án github này chỉ cho bạn cách liệt kê 90% biến trên tất cả các máy chủ. Tôi thấy nó hữu ích hơn toàn cầu so với các lệnh máy chủ duy nhất. README bao gồm các hướng dẫn để xây dựng một báo cáo hàng tồn kho đơn giản. Thậm chí còn có giá trị hơn khi chạy nó ở cuối một cuốn sách để xem tất cả các Sự kiện. Để gỡ lỗi hành vi tác vụ sử dụng đăng ký:

Kết quả bị thiếu một vài mục: - bao gồm các biến tệp YAML - vars ngoài - một số vars nội bộ Ansible được mô tả ở đây: Params Hành vi Ansible

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.