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

如何通过Ansible在控制节点查看受控主机上的文件?

查看受控主机/etc/passwd的几种Ansible方法

刚好做过类似操作,给你分享几种实用的方法,能轻松在控制节点查看受控主机的/etc/passwd文件:

1. 用Ad-Hoc命令直接输出内容

最快的方式是用command模块执行cat命令,直接在控制节点的终端显示文件内容:

ansible your_host_group -m command -a "cat /etc/passwd"

把your_host_group替换成你的主机组名,或者单个受控主机的IP/主机名就行。如果想过滤特定用户(比如你刚创建的那个),可以用shell模块配合管道:

ansible your_host_group -m shell -a "cat /etc/passwd | grep your_new_user"

2. 用fetch模块把文件拉到控制节点

如果需要把文件保存到本地慢慢看,fetch模块是最佳选择,它会把受控主机的文件复制到控制节点指定目录:

- name: 拉取受控主机的/etc/passwd文件
  hosts: your_host_group
  tasks:
    - name: 复制/etc/passwd到控制节点
      ansible.builtin.fetch:
        src: /etc/passwd
        dest: ./managed_passwd_files/
        flat: yes
  • dest是控制节点上保存文件的路径,执行后会在当前目录下创建managed_passwd_files文件夹
  • 设置flat: yes会直接把文件存到目标目录,否则会生成./managed_passwd_files/[主机名]/etc/passwd这样的层级结构

执行完playbook后,直接打开本地的managed_passwd_files/passwd就能查看内容了。

3. 用slurp模块在Playbook中读取并解码内容

如果需要在playbook里处理文件内容(比如后续做判断),可以用slurp模块,它会返回base64编码的内容,我们再解码显示:

- name: 读取并显示受控主机的/etc/passwd
  hosts: your_host_group
  tasks:
    - name: 获取/etc/passwd的base64内容
      ansible.builtin.slurp:
        src: /etc/passwd
      register: passwd_data

    - name: 解码并打印内容
      ansible.builtin.debug:
        msg: "{{ passwd_data.content | b64decode }}"

执行这个playbook时,debug模块会直接在控制节点输出解码后的/etc/passwd内容。


内容的提问来源于stack exchange,提问作者Aryan Srivastava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:15:53