Ansible Copy模块相对路径用法及Git克隆路径疑问
Ansible Git克隆与Copy模块路径疑问解答
关于Git克隆的dest设置
设置dest: ./repo1是正确的。这里的./代表当前执行Ansible剧本的工作目录,克隆操作会直接在该目录下生成repo1文件夹,完全匹配你“在执行剧本的目录下克隆仓库”的需求。
关于Copy模块的src参数
./repo1/bin/和repo1/bin/这两种写法效果完全一致。Ansible处理相对路径时,默认以执行剧本的工作目录为基准,带不带./都指向同一个本地目录。不过要注意一个细节:
- 如果src路径以
/结尾(像你写的这两种),Ansible会复制该目录下的所有内容到远程目标路径 - 如果src路径不带结尾的
/(比如repo1/bin),则会把整个bin目录连同目录本身复制到远程目标路径
举个实际场景的例子:
- 若src为
repo1/bin/,远程dest为/opt/app/,原bin目录里的文件会直接被放到/opt/app/下 - 若src为
repo1/bin,远程dest为/opt/app/,远程主机上会生成/opt/app/bin/目录,原文件在这个目录下
你可以根据实际的复制需求选择对应的写法,两种路径前缀的差异不影响指向的本地目录。
内容的提问来源于stack exchange,提问作者Cruise5
相关产品推荐
相关产品推荐

