在 Ansible 2.2 上,
我有一个 Ansible 主机文件:
[webserver]
aegir.dev
[hostmaster]
aegir.dev
Run Code Online (Sandbox Code Playgroud)
我有两个group_vars/
文件:
# group_vars/webserver.yml
my_var:
- vagrant
Run Code Online (Sandbox Code Playgroud)
和
# group_vars/hostmaster.yml
my_var:
- vagrant
- aegir
Run Code Online (Sandbox Code Playgroud)
和剧本:
- hosts: webserver
tasks:
- debug: var=my_var
- hosts: hostmaster
tasks:
- debug: var=my_var
Run Code Online (Sandbox Code Playgroud)
输出:
PLAY [webserver] ***************************************************************
TASK [setup] *******************************************************************
ok: [aegir.dev]
TASK [debug] *******************************************************************
ok: [aegir.dev] => {
"my_var": [
"vagrant",
"aegir"
]
}
PLAY [hostmaster] **************************************************************
TASK [setup] *******************************************************************
ok: [aegir.dev]
TASK [debug] *******************************************************************
ok: [aegir.dev] => {
"my_var": …
Run Code Online (Sandbox Code Playgroud) 我dead_symlink
在目录下有一个死的符号链接/usr/local/bin
当 Ansible 检查它报告的文件存在时
- stat: "path=/usr/local/bin/dead_symlink"
register: dead_symlink_bin
- debug: var=dead_symlink_bin.stat.exists
Run Code Online (Sandbox Code Playgroud)
但是当我尝试删除它时,它报告“ok”但没有发生任何事情(符号链接仍然存在)
- name: Remove symlink
file:
path: "path=/usr/local/bin/dead_symlink"
state: absent
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
下面有一个目录/var/test1
,内容如下:
.
..
.git
.gitignore
file1
file2
Run Code Online (Sandbox Code Playgroud)
并且我想将其复制到/var/test2
具有预先存在内容的其他位置:
.
..
file1
Run Code Online (Sandbox Code Playgroud)
如果我使用 Ansible copy
:
- copy:
# note the trailing `/` at `src: /var/test1/` in order to copy the contents
src: /var/test1/
dest: /var/test2
Run Code Online (Sandbox Code Playgroud)
它将取代 file1
在/var/test2
如何在不替换目标文件的情况下复制目录内容?