在Ansible Tower中如何配置copy模块跨项目拷贝文件至目标服务器?
解决Ansible Tower跨项目拷贝配置文件的问题
要在项目B的Playbook中用copy模块将项目A的配置文件拷贝到目标服务器,核心是指定项目A在Tower执行节点上的绝对本地路径作为src参数值,具体操作如下:
1. 确认项目A的同步路径
Ansible Tower会将每个同步的项目存储在执行节点的固定目录下,默认路径格式为:
/var/lib/awx/projects/<项目A的名称>/
你可以通过两种方式确认准确路径:
- 登录Tower Web界面,进入项目A详情页,查看「Source Control」区域的同步信息;
- 直接登录Tower执行节点,查看
/var/lib/awx/projects/目录下的子文件夹,找到对应项目A的目录。
2. 配置Playbook的copy模块
在项目B的Playbook中,使用绝对路径指向项目A的配置文件目录,并开启递归拷贝(如需复制所有文件及子目录),示例代码如下:
- name: 同步项目A的配置文件到目标服务器 hosts: your_target_inventory tasks: - name: 复制全部配置文件 ansible.builtin.copy: src: /var/lib/awx/projects/project-A/ # 替换为你的项目A实际路径 dest: /etc/target_config_dir/ # 目标服务器上的配置存放路径 recurse: yes # 递归拷贝所有文件和子目录 owner: root group: root mode: '0644'
3. 权限检查
确保Tower执行用户(默认是awx用户)对项目A的同步目录有读取权限。由于项目A是公开仓库,同步后默认权限通常满足要求,若存在权限问题,可在执行节点上执行以下命令调整:
chmod -R o+r /var/lib/awx/projects/project-A/
内容的提问来源于stack exchange,提问作者joker57
相关产品推荐
相关产品推荐

