大佬教程收集整理的这篇文章主要介绍了Ansible 输出到文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用以下语法将每个 ansbile 主机的 mac 和 nics 获取到特定的 txt 文件:@H_301_1@
nic:XXXXX,MAC:XXXXXX
nic:XXXXX,MAC:XXXXXX
这样做的正确方法是什么?@H_301_1@
此时我只能将其作为我创建的剧本的输出:@H_301_1@
- deBUG:
msg: "nic:{{ (lookup('vars',concat)).device }},mac:{{ (lookup('vars',concat)).macaddress }}"
vars:
concat: "ansible_{{ item }}"
loop: "{{ ansible_interfaces | difference(['lo']) }}"
剩下要做的就是使用上述语法将内容输出到文本文件。 我该怎么做?@H_301_1@
谢谢。@H_301_1@
这是现场编写的,未经测试:您可能需要为未定义的变量添加一些测试和默认值。我还从您的问题中猜到您在某个时候需要文件中的主机名。如果我错了,请删除它。简而言之:
templates/nic_mac.txt.j2
{% for h in group['all'] %}
{% for i in (hostvars[h].ansible_interfaces | difference(['lo']) %}
host:{{ hostvars[h].inventory_hostname }},nic:{{ hostvars[h]['ansible_'+i].device }},MAC:{{ hostvars[h]['ansible_'+i].macaddress }}
{% endfor %}
{% endfor %}
playbook.yml
---
- name: Make sure we have facts for all hosts
hosts: all
# This play will only trigger facts gathering,nothing else
- name: Write nic and mac info to a file on controller
hosts: localhost
gather_facts: false
tasks:
- name: Write the file from template
template:
src: nic_mac.txt.j2
dest: /tmp/nic_mac.txt
以上是大佬教程为你收集整理的Ansible 输出到文件全部内容,希望文章能够帮你解决Ansible 输出到文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。