Argh! Do FAQ :
Como vejo uma lista de todas as variáveis ansible_? Ansible, por padrão, reúne “fatos” sobre as máquinas sob gerenciamento, e esses fatos podem ser acessados nos Playbooks e nos modelos. Para ver uma lista de todos os fatos disponíveis sobre uma máquina, você pode executar o módulo "setup" como uma ação ad-hoc:
ansible -m setup hostname
Isso imprimirá um dicionário de todos os fatos disponíveis para esse host específico.
Aqui está o resultado da minha máquina virtual vagabunda chamada 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
}
A documentação atual agora possui um capítulo completo listando todas as variáveis e fatos
ansible <ip> -m setup -i <ip>,
- não esqueça a vírgula no final para torná-lo uma lista e, portanto, um inventário.Apenas obtém os fatos coletados pelo módulo de instalação.
Gilles Cornu postou um truque de modelo para listar todas as variáveis para um host específico.
Modelo (posteriormente chamado de dump_variables ):
Manual para usá-lo:
Depois disso, você terá um despejo de todas as variáveis em cada host e uma cópia de cada arquivo de despejo de texto na estação de trabalho local na pasta tmp. Se você não quiser cópias locais, poderá remover a instrução de busca.
Isso inclui fatos reunidos, variáveis de host e variáveis de grupo. Por isso você vê variáveis padrão ansible como GROUP_NAMES , inventory_hostname , ansible_ssh_host e assim por diante.
fonte
Existem 3 fontes de variáveis no Ansible:
Variáveis coletadas dos fatos. Você pode obtê-los executando o comando:
ansible -m setup hostname
Variáveis Ansible incorporadas (predefinidas) (variáveis 'mágicas') da AKA. Eles estão documentados na documentação da Ansible: http://docs.ansible.com/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts
Aqui está a lista extraída da documentação da Ansible 1.9:
fonte
role_path
- vale a pena visitar o link fornecido para ver a lista da versão atual do Ansible. Esteja ciente de que o ansible se desenvolve rapidamente e as versões de repositório para o Debian e seus filhos são bastante antigas. Verifique cuidadosamente a versão que você instalou nos documentos.Eu uso este manual simples:
fonte
ansible -m setup
não funciona, e você precisa obter essas informações em um manual.O
debug
módulo pode ser usado para analisar variáveis. Cuidado ao executar o seguinte comando. Em nossa configuração, gera 444709 linhas com 16 MB:Não tenho certeza, mas pode ser necessário ativar o cache de fatos.
Se você precisar de apenas um host, use o nome do host como uma chave para o
hostvars
hash:Este comando também exibirá variáveis de grupo e host .
fonte
Existem muitas variáveis definidas como Fatos - http://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts
fonte
Observe que os documentos oficiais sobre variáveis de configuração de conexão ou variáveis "comportamentais" - que não estão listados nos host vars, parecem ser Lista de parâmetros de inventário comportamental na documentação do inventário .
PS A
sudo
opção não está documentada lá (sim,sudo
não éansible_sudo
como você esperaria ...) e provavelmente mais algumas não são, mas esse é o melhor documento que eu encontrei nele.fonte
Algumas variáveis não estão disponíveis em todos os hosts, por exemplo,
ansible_domain
edomain
. Se a situação precisar ser depurada, inicio sessão no servidor e emito:fonte
Sei que essa pergunta já foi respondida, mas sinto que há todo um conjunto de variáveis predefinidas não cobertas pelos fatos ansible_ *. Esta página de documentação cobre as diretrizes (variáveis que modificam o comportamento do Ansible), que eu estava procurando quando me deparei com esta página.
Isso inclui algumas diretivas comuns e algumas específicas de casos de uso:
fonte
https://github.com/f500/ansible-dumpall
FYI: este projeto do github mostra como listar 90% das variáveis em todos os hosts. Acho mais útil globalmente do que comandos de host único. O README inclui instruções para criar um relatório de inventário simples. É ainda mais valioso executar isso no final de um manual para ver todos os fatos. Para depurar também o comportamento da tarefa, use register:
O resultado está faltando alguns itens: - incluídas variáveis de arquivo YAML - extra-vars - um número de vars internos do Ansible descritos aqui: Parâmetros comportamentais do Ansible
fonte