ansible-facts相关内容
我想使用vars将多个变量传递给任务.目前,我正在执行以下操作 vars: var1_name: "var1_value" var2_name: "var2_value" 随着变量数量的增加,我宁愿使用vars将变量字典传递给任务.我已经构造了一个像下面这样的变量字典 - name: set fact hosts: localhost tasks: -
..
我正在尝试编写Ansible剧本,以识别RHEL机器上新添加的磁盘.计划是在创建新磁盘之前,在该时间点运行剧本并缓存磁盘.创建新磁盘后,将再次运行相同的剧本,并计算磁盘创建前后磁盘之间的差异. 例如,lsblk最初返回以下内容: NAME SIZE TYPE sda 100G disk ├─sda1 1
..
我有两个剧本-我的第一个剧本在ESXi服务器列表上进行迭代,以获取所有VM的列表,然后将该列表传递给第二个剧本,该剧本应在VM的IP上进行迭代.相反,它仍在尝试在最后的ESXi服务器上执行.我必须将主机切换到当前传递给第二本剧本的VM IP.不知道该如何切换...有人吗? 第一本剧本: - name: get VM list from ESXi hosts: all task
..
我想在Ansible剧本使用的J2模板中插入IP地址. IP地址不是正在供应的主机的地址,而是从其进行供应的主机的IP.到目前为止,我发现的所有内容都涉及与所配置的主机相关的变量/事实. 换句话说:执行ansible -m setup 127.0.0.1时,我要插入的IP是['ansible_default_ipv4']['address']中的IP. 我认为我可以使用本地剧本来编写动态生成
..
我想将ansible_default_ipv4更改为指向eth1而不是eth0.我可以在剧本中还是通过--extra-vars选项来做到这一点? 解决方案 ansible使用命令 ip -4 route get 8.8.8.8获取默认的ipv4接口.您可以 将ip/路由表 更改为将eth1设置为默认路由,它将返回它. 或者您可以使用 自定义事实 . PS:使用set_fact覆
..
有人知道如何做事(例如等待受管节点的端口/启动)吗?之前收集事实?我知道我可以关闭收集的事实 gather_facts: no 和 THEN 等待端口,但是如果我需要事实同时又需要等待节点启动,该怎么办? 解决方案 收集事实等同于运行 setup模块.您可以通过运行它来手动收集事实.它没有记录,只是添加一个像这样的任务: - name: Gathering facts
..
团队,我收到json_query的响应,它是一个dict键:值,我想遍历所有值并为每个值运行ssh命令 以下获取了我所有节点的列表 - name: "Fetch all nodes from clusters using K8s facts" k8s_facts: kubeconfig: $WORKSPACE kind: Node verify_ssl: no regist
..
团队,我需要在多个主机上执行多个命令.单个主机的情况下可以使用下面的命令,但是如何在多个主机上迭代相同的主机呢? - name: "SMI Tests for ECC singlebit and double bit codes " command: "smi --xml-format --query | grep retired_count | grep -v
..
我需要帮助来仅检索ESXI主机的虚拟机名称. - name: VM-FACTS vmware_vm_facts: hostname: "{{ ansible_hostname }}" username: "{{ ansible_user }}" password: "{{ ansible_password }}" validate_certs: False
..
在我的~/ip_vars_file中,我有 ip : 10.20.30 ip : 10.20.31 ip : 10.20.32 这是使用lineinfile创建的, lineinfile: line="ip{{':'}} {{item.public_ip}}" dest="{{ansible_env.HOME}}/ip_vars_file}}" with
..
我有一本剧本,其中包含localhost的角色和远程主机的角色. 在其中一个localhost角色中,我设置了一个名为git_tag的事实. 我想在远程主机的模板中使用这个事实. 我尝试过: - name: Read Version set_fact: git_tag: "{{ package_json.stdout | from_json | json_que
..
我正在使用Ansible和ufw在服务器上设置防火墙.作为ufw规则的一部分,我希望允许来自Ansible控制计算机的SSH,但不允许来自其他任何地方的SSH.我的问题是-获取控制机器本身的IP地址的最佳方法是什么,以便我可以将其放入规则中? 我知道我可以使用事实获取正在运行该剧本的计算机的IP地址,但是我看不到任何简单的方法可以自动为运行ansible的计算机获取它. 如果可能的话,
..
我在ubuntu中运行myserver: + sudo cat /etc/os-release NAME="Ubuntu" VERSION="16.04.6 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.6 LTS" VERSION_ID="16.04" HOME_URL="http://www.
..
我可以使用getent和awk的组合使用shell来做到这一点: getent passwd $user | awk -F: '{ print $6 }' 作为参考,我可以在Puppet中使用自定义事实,如下所示: require 'etc' Etc.passwd { |user| Facter.add("home_#{user.name}") do setc
..
我正在尝试创建自己的ansible模块(它将更新cmdb),并且正在寻找如何在模块代码中使用ansible_facts? 我的模块脚本的示例是: #!/usr/bin/python from ansible.module_utils.basic import * import json, ast from servicenow import ServiceNow from ser
..
我正在尝试使用另一组主机 [etcd] 中的事实来配置一组主机 [nodes] .这是我的主机文件 [master] kubernetes ansible_ssh_host=10.2.23.108 [nodes] n1 ansible_ssh_host=10.2.23.192 n2 ansible_ssh_host=10.2.23.47 [etcd] etcd01 ansible_ssh
..
我正在从事一个仅需收集一个事实的角色. 性能是一个问题,我知道收集事实非常耗时. 我正在寻找一种在剧本中过滤gather_facts的方法,这将使我仅收集所需的事实. 这可以通过设置核心模块来实现: ansible -m setup -a 'filter=ansible_hostname' my_host 10.200.0.127 | success >> { "
..
我看到Ansible提供了一些可在剧本和模板文件中使用的预定义变量.例如,主机ip地址是ansible_eth0.ipv4.address.谷歌搜索文档,我找不到所有可用变量的列表.有人会为我列出它们吗? 解决方案 啊!来自常见问题解答: 如何查看所有ansible_变量的列表? 默认情况下,Ansible收集有关受管理机器的“事实",并且可以在Playbook和模板中访问这些事实.
..
我试图设置一个由2个mysql主机组成的主机组的mysql主从复制. 这是我的情况: 我在第一台主机上运行一个任务,并跳过第二台主机,因此第一台任务(即主复制状态)返回一些值,例如Position,File等. 然后,我在第二个主机中运行另一个任务(跳过第一个主机),该任务使用第一个任务的返回值,例如master.Position,master.File等. 现在,当我运行
..
我一天中的大部分时间都在尝试解决此问题,但迄今为止失败了。我正在构建一些剧本来自动执行Splunk中的功能,并尝试从清单组E.G.转换主机列表。 [search_head] 1.2.3.4 5.6.7.8 我从剧本的调试输出中获得的预期(期望)结果应为: https:// 1.2.3.4:8089、https://5.6.7.8:8089 我正在
..