Ansible Jitsi角色执行copy任务提示源文件不存在如何解决
报错原因
- 核心问题是你在copy模块中错误添加了
remote_src: true参数:该参数开启后,Ansible会将src字段的路径判定为远程目标主机的本地路径,而非执行playbook的控制节点路径。你的证书、logo文件都存放在控制节点的role目录下,远程主机上不存在对应路径,自然会抛出源文件未找到的错误。 - 额外说明:你写的完整绝对路径本身也不符合Ansible role的使用惯例,属于冗余配置。
修复方案
直接删除所有copy任务中的remote_src: true参数,同时可以将src改为相对路径——Ansible执行role内的copy任务时,默认会自动从当前role的files/目录下查找源文件,无需填写完整绝对路径。
修复后的任务配置如下:
# 复制logo任务 - name: Copy logo.png copy: src: logo/logo.png dest: /usr/share/jitsi-meet/images/watermark.png # 复制证书任务 - name: Copy cert file js.name.com.crt copy: src: ssl/js.name.com.crt dest: /etc/ssl/js.name.com.crt - name: Copy key file js.name.com.key copy: src: ssl/js.name.com.key dest: /etc/ssl/js.name.com.key
路径简化配置
如果需要明确指定路径适配更复杂的场景,可以使用Ansible内置的role_path变量,该变量会自动指向当前执行的role的根目录(你当前场景下就是/etc/ansible/roles/Jitsi/),写法如下:
src: "{{ role_path }}/files/ssl/js.name.com.crt"
效果和相对路径完全一致。
内容的提问来源于stack exchange,提问作者Oleg
相关产品推荐
相关产品推荐

