我可以找到大量关于 Ansible 的介绍,但几乎找不到一个可以细粒度地解释我的简单问题。我也了解 ansible 的工作原理。所以,首先,如果我的以下描述有误,请指正:
执行 Ansible 运行任务时,在维护 Ansible 代码的本地机器(例如我的笔记本电脑)下通过 SSH 连接将 Ansible 配置文件推送到远程节点(在清单中定义),然后这些远程节点将运行 ansible 任务。 (至少我看到的所有 Ansible 教程都是这么说的。)
如果我上面的描述是正确的。 我的简单问题是 ansible 将配置文件推送到的远程节点上的位置/路径是什么?尤其是当认为 Ansible 是无代理的时。如果有默认位置,那是什么?我可以将远程节点的位置指定为应该将配置文件推送到的位置吗?
问:“Ansible 将配置文件推送到远程节点上的位置/路径是什么?”
A:这取决于模块。作为提示,请查看 Ansible 2.8 中过时的 Files 模块 列表。从那时起就没有维护这样的列表,因为它超出了跟上所有collections.
的范围文件应复制到的远程绝对路径。
- 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