具有文件夹“文件”的 Ansible 角色
Posted
技术标签:
【中文标题】具有文件夹“文件”的 Ansible 角色【英文标题】:Ansible roles with folder "files" 【发布时间】:2021-12-16 23:32:09 【问题描述】:我有一个角色 Jitsi。我想从文件夹logo
复制文件logo.png
,还有js.name.com.crt 和js.name.com.key 到远程主机
/etc/ansible/roles/Jitsi/files#树
.
├── logo
│ └── logo.png
└── ssl
├── js.name.com.crt
└── js.name.com.key
我有一个徽标任务:
- name: Copy files logo.png
copy:
src: /etc/ansible/roles/Jitsi/files/logo/logo.png
dest: /usr/share/jitsi-meet/images/watermark.png
remote_src: true
还有 ssl 的任务:
- name: Copy cert file js.name.com.crt
copy:
src: /etc/ansible/roles/Jitsi/files/ssl/js.name.com.crt
dest: /etc/ssl/js.name.com.crt
remote_src: true
- name: Copy key file js.name.com.key
copy:
src: /etc/ansible/roles/Jitsi/files/ssl/js.name.com.key
dest: /etc/ssl/js.name.com.key
remote_src: true
但是当我执行我的剧本时,我得到了错误:
TASK [Copy cert file js.name.com.crt] ***************************************************************************************
fatal: [jitsi]: FAILED! => "changed": false, "msg": "Source /etc/ansible/roles/Jitsi/files/ssl/js.name.com.crt not found"
附:也许我可以为此使用一些变量?
【问题讨论】:
除了答案,copy
模块自动搜索files/
目录毫无价值,因此您的src
可以只是src: 'logo/logo.png'
。
【参考方案1】:
复制模块将文件从本地或远程机器复制到远程机器上的某个位置。本地或远程取决于参数remote_src
的值
remote_src
如果没有,它会在控制器节点上搜索 src。
如果是,它将在托管(远程)节点上搜索 src。
所以按照你在 src 参数中定义的文件名,我想你的文件在控制器节点(localhost)上,所以我建议你设置 no remote_src
【讨论】:
你是绝对正确的。它适用于remote_src: false
谢谢!!以上是关于具有文件夹“文件”的 Ansible 角色的主要内容,如果未能解决你的问题,请参考以下文章