如何在不使用 Python 的情况下从远程主机收集、获取或读取文件?

问题描述 投票:0回答:1

对于尚未安装 Python、或者操作系统 (OS) 太旧、Python 版本太旧、或者是一种嵌入式系统的 Remonte 节点,可以通过

raw 来管理它们
模块 – 执行低级且肮脏的命令
script
模块 – 传输后在远程节点上运行本地脚本
。请参阅示例 确保远程系统已正确初始化 ...

但是如何才能

fetch
模块 – 从远程节点获取文件
slurp
模块 – 从远程节点获取文件
,特别对小配置文件感兴趣?

这些文件应成为相关项目文件夹的一部分,稍后用于所需状态配置,并与版本控制系统和源代码存储库同步。

ansible
1个回答
0
投票

根据远程系统的功能以及(配置)文件的大小,可能可以使用

fetch
模块中的方法,获取包含数据的base64编码的blob,注册内容 并通过
copy
模块将其写出 – 将文件复制到远程位置 - 参数:
content
.

以下最小示例剧本展示了如何实现这样的

raw_slurp.yml

---
- hosts: test
  become: true
  gather_facts: false

  vars:

    PATH: /etc
    FILE: sudoers

  tasks:

  - name: Slurps a small config file from Remote Nodes
    raw: "base64 {{ PATH }}/{{ FILE }}"
    register: content

  - name: Write out on Control Node
    delegate_to: localhost
    copy:
      content: "{{ content.stdout | b64decode }}"
      dest: "files/group_files/test/{{ inventory_hostname }}.{{ FILE }}"

在项目文件夹结构下的控制节点上生成请求的文件,准备与 (Git) 存储库同步。

© www.soinside.com 2019 - 2024. All rights reserved.