- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到 Ansible 提供了一些我们可以在剧本和模板文件中使用的预定义变量。例如,主机 IP 地址为 ansible_eth0.ipv4.address
。通过 Google 搜索并搜索文档,我找不到所有可用变量的列表。
有人可以帮我列出它们吗?
最佳答案
来自FAQ :
How do I see a list of all of the ansible_ variables?
Ansible by default gathers “facts” about the machines under management, and these facts can be accessed in playbooks and in templates. To see a list of all of the facts that are available about a machine, you can run the
setup
module as an ad hoc action:ansible -m setup hostname
This will print out a dictionary of all of the facts that are available for that particular host. You might want to pipe the output to a pager.This does NOT include inventory variables or internal ‘magic’ variables. See the next question if you need more than just ‘facts’.
这是我的名为 scdev
的 vagrant 虚拟机的输出:
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
}
当前文档现在有一个关于 Discovering variables: facts and magic variables 的完整章节.
关于ansible - 在哪里可以获得 Ansible 预定义变量的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18839509/
尽管用户是 sudo 用户,但远程主机在运行 Ansible playbook 时仍会引发错误。 "/usr/bin/python: can't open file '/home/ludd/.ansi
只是想了解 ansible 和 ansible-galaxy 之间的核心区别是什么?从文档中,ansible-galaxy 用于管理角色(创建和发布)那么ansible是做什么用的呢?只运行剧本? 我
只是想了解 ansible 和 ansible-galaxy 之间的核心区别是什么?从文档中,ansible-galaxy 用于管理角色(创建和发布)那么ansible是做什么用的呢?只运行剧本? 我
我有一个定义如下的剧本: - name: install percona rpms hosts: imdp roles: - role1 - role2 - role3
Ansible 版本:2.4.2.0 来自 here和 here ,我可以写下面的剧本 $ cat test.yml - name: Finding Master VMs hosts: all-c
我正在运行这个 Ansible 剧本: - name: Set String set_fact: string: item loop: "{{some_var|filter()}}"
我无法在我的输出变量中搜索我用于 when 语句的指定字符串。下面的代码应该检查输出变量中的字符串“distribute-list”,但是在运行 playbook 时会出现错误。 fatal: [19
在 Ansible 中是否可以仅当处理程序出现在该播放中时才有条件地通知处理程序? 例如:我有一个多主机配置的剧本。有些主机使用 Apache 运行 PHP,有些使用 PHP-FPM。根据主机,修改
我是 ansible 的新手,正在学习 ansible 并致力于定义 ansible 脚本以在服务器上安装 confluent。在查看有关如何定义和运行 ansible 脚本的示例时,一些示例使用“a
是否可以列出Ansible角色中的任务? 即除了grepping - name以外,还有没有现成的方法可以做到这一点? 最佳答案 创建一个指定角色的简单剧本,并使用ansible-playbook选项
所以ansible-playbook有 --ask-pass和 --ask-sudo-pass .有没有办法让 ssh 先尝试没有密码,然后只有在无密码登录失败时才提示输入密码?同样,ansible
Ansible 提供了许多过滤器和条件。据我所知;应该可以实现一个 Ansible playbook 来执行一组任务,这些任务实现与图灵完备语言相同的结果。那么,图灵完备吗? 最佳答案 我觉得是这样的
我一直在寻找,但没有太多关于什么 Ansible 保险库密码文件应该是什么样的。 例如我想做: ANSIBLE_VAULT_PASSWORD_FILE=./pwdfile ansible-vault
我在运行完整的剧本时遇到了麻烦,因为后来的剧本所依赖的一些事实在早期的剧本中被修改了,但是 ansible 不会在运行中更新事实。 运行ansible somehost -m setup当整个剧本开始
我对Ansible很陌生 是否可以使用Ansible检查文件中是否存在字符串。 我要检查的是用户有权访问服务器。 这可以使用cat /etc/passwd | grep username在服务器上完成
我正在尝试使用 jinja2 通过 ansible 模板循环字典以创建多个数据源,但收到此错误 [{'msg': "AnsibleUndefinedVariable: One or more unde
我正在尝试将文件复制到/ etc。但是当我运行剧本时,我收到“msg:目标/ etc不可写”的消息。这是我的Playbook任务部分。非常感谢您的帮助。 任务: - name: copy rsyslo
我正面临这个恼人的错误:Ansible hosts are randomly unreachable #18188 . 有没有办法告诉 Ansible 如果 SSH 连接失败,再试一次?还是2倍? 根
我正在编写一个简单的任务来创建用户。作为此任务的一部分,我想从defaults / main.yml中读取密码。 默认值/ main.yml test_user:testuser test_group
当我在Ansible中使用lineinfile时,它不会写',"字符 lineinfile: 'dest=/home/xyz state=present line="CACHES="default""
我是一名优秀的程序员,十分优秀!