ansible 与排除文件角色同步
ansible synchronize with excludes file role
我正在为部署 laravel5 项目创建一个 ansible 角色,
现在我用 "synchronize" (rsync)
我有 rsync 的排除文件,文件结构如下:
角色:"deploy-laravel5"角色:
files
excludes
tasks
main.yml
现在是main.yml中的任务:
- name: deploy laravel projects
synchronize:
src: "{{item.src}}"
dest: "{{item.dest}}"
rsync_opts:
- "--exclude-from=excludes"
with_items: "{{projects}}"
一些剧本:
---
- hosts: php
gather_facts: no
vars:
projects:
- {src: "../../twitter/", dest: "/web/boom/", envFile: "twitter.env"}
roles:
- deploy-laravel5
现在当我 运行 时,ansible 说找不到 "excludes" 文件
msg: rsync: failed to open exclude file excludes: No such file or directory (2)
我尝试了很多不同的路径,但都没有,关于如何指向排除文件的任何想法?
在广泛浏览网页和文档后,我发现您无法在 "role" 中定义其他文件,仅用于模板化或复制。
但是你可以在剧本里面定义文件,所以现在文件结构是这样的:
roles/
deploy/ (NOT "deploy-laravel5" as before)
playbooks/
deploy-laravel5/
excludes-file
deploy-playbook.yml
剧本看起来很像:
---
- hosts: php
gather_facts: no
vars:
projects:
- {src: "../../twitter/",
dest: "/web/boom/",
excludes-file: "path/to/excludes/file",
envFile: "twitter.env"}
roles:
- deploy
我正在为部署 laravel5 项目创建一个 ansible 角色, 现在我用 "synchronize" (rsync)
我有 rsync 的排除文件,文件结构如下:
角色:"deploy-laravel5"角色:
files
excludes
tasks
main.yml
现在是main.yml中的任务:
- name: deploy laravel projects
synchronize:
src: "{{item.src}}"
dest: "{{item.dest}}"
rsync_opts:
- "--exclude-from=excludes"
with_items: "{{projects}}"
一些剧本:
---
- hosts: php
gather_facts: no
vars:
projects:
- {src: "../../twitter/", dest: "/web/boom/", envFile: "twitter.env"}
roles:
- deploy-laravel5
现在当我 运行 时,ansible 说找不到 "excludes" 文件
msg: rsync: failed to open exclude file excludes: No such file or directory (2)
我尝试了很多不同的路径,但都没有,关于如何指向排除文件的任何想法?
在广泛浏览网页和文档后,我发现您无法在 "role" 中定义其他文件,仅用于模板化或复制。
但是你可以在剧本里面定义文件,所以现在文件结构是这样的:
roles/
deploy/ (NOT "deploy-laravel5" as before)
playbooks/
deploy-laravel5/
excludes-file
deploy-playbook.yml
剧本看起来很像:
---
- hosts: php
gather_facts: no
vars:
projects:
- {src: "../../twitter/",
dest: "/web/boom/",
excludes-file: "path/to/excludes/file",
envFile: "twitter.env"}
roles:
- deploy