You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ansible中读取Windows主机文件并将内容保存至变量

实现方案

你可以通过以下两种成熟方式实现需求:

方案1:使用官方专用模块 ansible.windows.win_slurp(推荐)

这是Ansible官方为Windows节点提供的专门读取文件内容的模块,功能稳定,不需要依赖自定义脚本。模块默认返回base64编码的文件内容,解码后即可得到原始文本:

- name: 读取Windows节点文件内容
  ansible.windows.win_slurp:
    path: C:\somefile.txt
  register: file_contents_raw

- name: 解码得到原始文本内容
  set_fact:
    file_contents: "{{ file_contents_raw.content | b64decode }}"

后续直接使用file_contents变量即可获取完整的文件内容。

方案2:直接调用PowerShell原生Get-Content命令

如果你的环境暂未安装ansible.windows集合,也可以通过win_shell直接调用PowerShell命令实现:

- name: 调用PowerShell Get-Content读取文件
  ansible.windows.win_shell: Get-Content -Path C:\somefile.txt -Raw
  register: file_contents_raw

- name: 提取标准输出作为文件内容
  set_fact:
    file_contents: "{{ file_contents_raw.stdout }}"

命令中的-Raw参数会将整个文件内容作为单个字符串返回,移除该参数则会按行返回字符串数组,可根据你的使用场景调整。


内容的提问来源于stack exchange,提问作者Kelvin A. Vasquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:06:04