需要详细说明将配置推送到远程节点时 Ansible 的工作原理

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

我可以找到大量关于 Ansible 的介绍,但几乎找不到一个可以细粒度地解释我的简单问题。我也了解 ansible 的工作原理。所以,首先,如果我的以下描述有误,请指正:

执行 Ansible 运行任务时,在维护 Ansible 代码的本地机器(例如我的笔记本电脑)下通过 SSH 连接将 Ansible 配置文件推送到远程节点(在清单中定义),然后这些远程节点将运行 ansible 任务。 (至少我看到的所有 Ansible 教程都是这么说的。)

如果我上面的描述是正确的。 我的简单问题是 ansible 将配置文件推送到的远程节点上的位置/路径是什么?尤其是当认为 Ansible 是无代理的时。如果有默认位置,那是什么?我可以将远程节点的位置指定为应该将配置文件推送到的位置吗?

ansible ansible-inventory
1个回答
0
投票

问:“Ansible 将配置文件推送到远程节点上的位置/路径是什么?”

A:这取决于模块。作为提示,请查看 Ansible 2.8 中过时的 Files 模块 列表。从那时起就没有维护这样的列表,因为它超出了跟上所有collections.

的范围

文件应复制到的远程绝对路径。

  • 如果模块不需要绝对路径,$PWD 是默认路径。然后,$PWD 取决于您如何connect 到远程主机。例如,如果您以 admin
  • ssh 连接到远程主机
    - block:
        - command: whoami
          register: out
        - debug:
            var: out.stdout
        - command: pwd
          register: out
        - debug:
            var: out.stdout
      vars:
        ansible_user: admin

给(删节)

  out.stdout: admin
  out.stdout: /home/admin

在许多情况下,您必须提升权限并成为root。这不会改变 $PWD

    - block:
        - command: whoami
          register: out
        - debug:
            var: out.stdout
        - command: pwd
          register: out
        - debug:
            var: out.stdout
      vars:
        ansible_user: admin
      become: true

给(删节)

  out.stdout: root
  out.stdout: /home/admin

例如,模块

默认运行于$PWD

    - block:
        - file:
            dest: test_file
            state: touch
        - lineinfile:
            dest: test_file
            line: test line
        - blockinfile:
            dest: test_file
            block: |
              test line1 in block
              test line2 in block
      vars:
        ansible_user: admin

shell> ssh admin@test_11 cat /home/admin/test_file
test line
# BEGIN ANSIBLE MANAGED BLOCK
test line1 in block
test line2 in block
# END ANSIBLE MANAGED BLOCK
© www.soinside.com 2019 - 2024. All rights reserved.