【问题标题】:ansible synchronize with excludes file roleansible 与排除文件角色同步
【发布时间】:2015-10-03 14:41:58
【问题描述】:

我正在为部署 laravel5 项目创建一个 ansible 角色, 现在我用“同步”(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 说它找不到“排除”文件

 msg: rsync: failed to open exclude file excludes: No such file or directory (2)

我尝试了许多不同的路径,但没有,任何想法如何指向排除文件?

【问题讨论】:

  • 你解决了这个问题了吗?如果是,您介意与我们分享它作为答案吗?您是否尝试使用 -vvvv 参数对其进行调试?
  • 发表了我的发现和所做的,希望对你有帮助,如果不明白请评论

标签: laravel deployment ansible synchronize


【解决方案1】:

在我广泛浏览网络和文档后,我发现您无法在“角色”中定义其他文件,仅用于模板或复制文件。

但是你可以在剧本中定义文件,所以现在文件结构是这样的:

 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

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多