ansible-facts相关内容
我需要帮助才能仅检索 ESXI 主机的虚拟机名称. - 名称:VM-FACTSvmware_vm_facts:主机名:“{{ ansible_hostname }}"用户名:“{{ ansible_user }}"密码:“{{ ansible_password }}"validate_certs: 假delegate_to: 本地主机注册:vmfacts- 名称:调试调试:变量:vmfacts.
..
我使用的是 Ansible 2.3.0.0 并且我已经在 Ansible 2.4.0.0 中进行了测试,获得了相同的结果.我的问题很简单.我有以下列表: 变量:password_text_to_encrypt:- { 行:“{{truststore_pass }}",结果:}- { 行:“{{ keystore_pass }}",结果:}- { 行:“{{ gp_pass }}",结果:}- {
..
我想要一个时间戳变量,它在所有主机上都是相同的.(我将其包含在目录名称中:它必须在所有主机上都相同) 我最初的想法是在 group_vars/all.yml 中添加一个声明,因为具有较高的优先级,应该共享. group_vars/all.yml: my_timestamp: "{{ ansible_date_time.date }}{{ ansible_date_time.hour
..
我在 centos 中使用 ansible 2.4,尝试在远程服务器中运行以下脚本并获取输出.这里的问题是 yum info 输出也以 json 格式显示.但我只需要显示输出.如何去除json格式. ---- 主机:GeneralServer任务:- 名称:检查服务状态shell: systemctl status {{ item }}with_items:- httpd- 克隆- 后缀- ss
..
团队,我想在 sda 设备上循环,只排除 loop 设备,所以我试图比较字符串的一部分,如果它存在于来自 ansible_devices 项的键中变量并陷入语法错误. 我只想在 WHEN 条件满足时打印 msg.基本上,当键中有子字符串 loop 时,我只想打印 msg. 我有以下示例输出,我能够检索它,但现在我想将它与某个字符串进行比较但失败,如任务中标记的 #fails va
..
我花了一天的大部分时间试图解决这个问题,但到目前为止都失败了.我正在构建一些剧本来自动化 Splunk 中的功能,并尝试从库存组 E.G. 转换主机列表. [search_head]1.2.3.45.6.7.8 我对剧集调试输出的预期(期望)结果应该是:https://1.2.3.4:8089, https://5.6.7.8:8089 我正在尝试通过对正在运行的主机运行以下剧本来完成此
..
我花了一天的大部分时间试图解决这个问题,但到目前为止都失败了.我正在构建一些剧本来自动化 Splunk 中的功能,并尝试从库存组 E.G. 转换主机列表. [search_head]1.2.3.45.6.7.8 我对剧集调试输出的预期(期望)结果应该是:https://1.2.3.4:8089, https://5.6.7.8:8089 我正在尝试通过对正在运行的主机运行以下剧本来完成此
..
是否可以在 Ansible adhoc 命令中使用通常包含在 ansible_facts 中的内容? 例如,我在所有服务器上的 /tmp/myFile 都有一个文件,我想这样做: ansible all -i [库存文件] -m fetch -a "src=/tmp/myFile dest=myFile-[在此处插入 ansible_hostname]" 无需为此编写完整的剧本.
..
我试图为由 2 个 mysql 主机组成的主机组使用 ansible 设置 mysql 主从复制. 这是我的场景: 我在第一个主机上运行一个任务并跳过第二个主机,所以第一个任务(即主复制状态)返回一些值,如位置、文件等. 然后,我在第 2 个主机上运行另一个任务(跳过第一个主机),该任务使用第一个任务的返回值,如 master.Position、master.File 等.
..
我需要在启动 ec2_instances 时将两个 2 IP 保存到 vars_file 中的一个变量中,以便稍后在部署期间使用. 这就是我保存单个服务器 IP 的方式: - name:保存服务器公网IP到vars文件lineinfile: line="server_public_ip{{':'}} {{ item.public_ip }}"dest="{{ansible_env.HOME
..
我有以下代码从环境 (.env) 文件中读取值并将它们存储为事实: - name:从环境中读取值外壳:“源{{ env_path }};回显$DB_PASSWORD"寄存器:输出参数:可执行文件:/bin/bashchanged_when: 假- 名称:存储读取密码设置事实:db_password: "{{ output.stdout }}"什么时候:- db_password 未定义chang
..
我有两个剧本 - 我的第一个剧本在 ESXi 服务器列表上迭代,获取所有虚拟机的列表,然后将该列表传递给第二个剧本,第二个剧本应该在虚拟机的 IP 上迭代.相反,它仍在尝试在最后一个 ESXi 服务器上执行.我必须将主机切换到我当前传递给第二个剧本的那个 VM IP.不知道怎么切换……有人吗? 第一个剧本: - name:从 ESXi 获取 VM 列表主持人:全部任务:- 名称:获取事实v
..
我正在尝试编写 Ansible playbook,它将识别 RHEL 机器上新添加的磁盘.计划是在创建新磁盘之前运行剧本并在该时间点缓存磁盘作为事实.创建新磁盘后,将再次运行相同的 playbook,并计算创建磁盘前后磁盘的差异. 例如,lsblk 最初返回以下内容: 名称尺寸类型sda 100G磁盘├─sda1 1G部分└─sda2 99G部分├─rhel-root 50G lvm├─r
..
我想在 Ansible 剧本使用的 J2 模板中插入一个 IP 地址.该 IP 地址是不是正在供应的主机的地址,而是完成供应的主机的 IP.到目前为止,我发现的所有内容都涵盖了使用与正在配置的主机相关的变量/事实.换句话说:当执行 ansible -m setup 127.0.0.1 时,我想插入的 IP 是 ['ansible_default_ipv4']['address'] 中的 IP.
..
我想包含远程主机上文件中的变量,而不是运行 Ansible 的控制机器. 例如我有一个文件/var/database_credentials.yml(在我的网络服务器上) 将变量从该文件添加到主机变量以便我可以在模板中使用它们的最佳方法是什么? include_vars 模块只从控制机器获取文件.我可以使用 fetch 模块,但这似乎是不必要的步骤. 解决方案 将其与 /
..
我正在使用 Ansible 和 ufw 在我的服务器上设置防火墙.作为 ufw 规则的一部分,我希望允许来自 Ansible 控制机器的 SSH,但不允许来自其他任何地方.我的问题是 - 获取控制机器本身的 IP 地址以便我可以将其纳入规则的最佳方法是什么? 我知道我可以使用 facts 获取我正在运行剧本的机器的 IP 地址,但我没有看到任何简单的方法可以为运行 ansible 的机器自动
..
我想将 ansible_default_ipv4 更改为指向 eth1 而不是 eth0.我可以在剧本中或通过 --extra-vars 选项执行此操作吗? 解决方案 ansible 使用命令 ip -4 route get 8.8.8.8 来获取默认的 ipv4 接口.您可以更改您的 ip/路由表 使 eth1 成为默认路由,它会返回它. 或者您可以使用 自定义事实. PS:
..
有谁知道如何做一些事情(例如等待托管节点的端口/启动)之前收集事实?我知道我可以关闭收集事实 gather_facts: 没有 和THEN等待端口但如果我需要事实同时还需要等到节点启动怎么办? 解决方案 收集事实相当于运行 设置模块.您可以通过运行它来手动收集事实.它没有记录,只是简单地添加一个这样的任务: - 名称:收集事实设置: 结合 gather_facts: no 在剧本级
..
我的角色模板中有下一个片段: 上游门户{{% 设置节点 = 组["my_dev_cluster"] %}{% 用于节点中的节点 %}...对节点做一些事情...{% 结束为 %}} 而且效果很好. 但是当我尝试像这样参数化库存组名称时: 上游门户{{% set nodes = groups["{{cluster_name}}"] %}{% 用于节点中的节点 %}...对节点做一些事情.
..
我想使用 vars 将多个变量传递给任务.目前,我正在这样做 变量:var1_name: "var1_value"var2_name: "var2_value" 随着变量数量的增加,我更愿意使用 vars 将变量字典传递给任务.我已经构建了一个像下面这样的变量字典 - 名称:设置事实主机:本地主机任务:- 设置事实:变量:“{{ variables|default({}) | combine
..