Ansible 通过在本地存储已更改机器的主机名来增强playbook

Ansible 通过在本地存储已更改机器的主机名来增强playbook,ansible,ansible-module,Ansible,Ansible Module,我正试图通过在本地存储已更改机器的主机名来增强我的playbook,我希望尽可能多地使用ansible模块,这就是为什么我选择在该存储中使用th copy模块的原因: 我的剧本是这样的: -名称:测试连接性 主持人:全部 任务: -姓名:平 发出砰的声响: -名称:更改默认网关地址 替换: 路径:/etc/网络/接口 regexp:'(上行路由添加默认gw[\d]*\.[\d]*.[\d]*)\.[\d]*$' 替换:'\1.254' 备份:是的 时间:(ansible_事实['distribu

我正试图通过在本地存储已更改机器的主机名来增强我的playbook,我希望尽可能多地使用ansible模块,这就是为什么我选择在该存储中使用th copy模块的原因:

我的剧本是这样的:

-名称:测试连接性
主持人:全部
任务:
-姓名:平
发出砰的声响:
-名称:更改默认网关地址
替换:
路径:/etc/网络/接口
regexp:'(上行路由添加默认gw[\d]*\.[\d]*.[\d]*)\.[\d]*$'
替换:'\1.254'
备份:是的
时间:(ansible_事实['distribution']==“Debian”)
-名称:重新启动网络服务
服务:
名称:网络
状态:重新启动
时间:(ansible_事实['distribution']==“Debian”)
-名称:更改Redhat上的默认网关地址
替换:
路径:/etc/sysconfig/networkscripts/ifcfg-eth0
regexp:'(网关=[\d]*\.[\d]*.[\d]*)\.[\d]*$'
替换:'\1.254'
备份:是的
时间:(ansible_事实['distribution']==“RedHat”)
-名称:重新启动Redhat的网络服务
服务:
名称:网络
状态:重新启动
时间:(ansible_事实['distribution']==“RedHat”)
-名称:在本地注册已更改的主机
副本:
内容:“{ansible_facts['hostname']}”
dest:“/tmp/changed.txt”
委托给:localhost
但以下错误不断出现:

    TASK [register changed hosts locally] *******************************************************************************************************************************************************************************************************
fatal: [name of host 1]: FAILED! => {"changed": false, "checksum": "df1496ad2c4ffed5abfad0a9fc69f7fb3a039765", "msg": "Unsupported parameters for (copy) module: delegate_to Supported parameters include: _original_basename, attributes, backup, checksum, content, delimiter, dest, directory_mode, follow, force, group, local_follow, mode, owner, regexp, remote_src, selevel, serole, setype, seuser, src, unsafe_writes, validate"}
fatal: [name of host 2]: FAILED! => {"changed": false, "checksum": "b75217f7ab69a82dd5aea389fcd8eacee15743e5", "msg": "Unsupported parameters for (copy) module: delegate_to Supported parameters include: _original_basename, attributes, backup, checksum, content, delimiter, dest, directory_mode, follow, force, group, local_follow, mode, owner, regexp, remote_src, selevel, serole, setype, seuser, src, unsafe_writes, validate"}
所以我想知道这是因为我使用的复制参数,如果是的话?到底是哪一个

- name: register changed hosts locally
  copy:
    content: "{{ ansible_facts['hostname'] }}"
    dest: "/tmp/changed.txt"
  delegate_to: localhost
“委托给”选项需要在“复制”下


另一种方法是查看remote_src option

以下是我所做的工作:


-名称:记录更改的主机
地方行动:
模块:lineinfle
行:“{ansible_facts['hostname']}{{{item}”
dest:/tmp/changed.txt
有以下项目:
-“{{debresult}}”
-“{redresult}}”

Hello@altair66 bulls eye现在我必须弄清楚如何使副本存储所有主机名,而不仅仅是最后一个主机名我认为需要一个寄存器Hi@Jinja\u dude或者您可以设置该变量并使用该变量将输出重定向到文件。希望这有帮助。