【问题标题】:ansible \ include of other yml doesn't workansible \ include 其他 yml 不起作用
【发布时间】:2016-06-23 09:44:57
【问题描述】:

剧本> 全部.yml 标记器.yml 配置服务.yml

all.yml 在其脚本中包含其他 yml,但它失败了。

全部

  ---
  - name: build all dockers
    hosts: all  
    vars:      
        version1: "1.0"

    tasks:            

      - name: build all docker
        include: ./{{ item }}.yml
        with_items:
          - tagger

标记器

    ---
  - name: build tagger docker 
    hosts: all 
    tasks:
    - name: some step !!!!!!
      command: echo 1

标注器示例:

错误

TASK [构建所有 docker] ***************************************** *************** 致命的:[本地主机]:失败! => {"failed": true, "reason": "在任务中未检测到任何操作。这通常表示模块名称拼写错误或模块路径不正确。\n\n错误似乎出现在 './Build/plays/ tagger.yml':第 2 行,第 5 列,但可能\n位于文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n---\n - name: build tagger docker\n ^ here\n\n\n错误似乎出现在 './Build/plays/tagger.yml': 第 2 行第 5 列,但可能\n在文件中的其他位置,具体取决于确切的语法问题。 \n\n违规行似乎是:\n\n---\n - name: build tagger docker\n ^ here\n"} }

似乎如果我解除孩子的“任务:”,它会起作用,但我做不到 - 我希望孩子独立..

【问题讨论】:

    标签: ansible ansible-playbook ansible-2.x


    【解决方案1】:

    其实你的结构有点别扭,你能做的就是把这个当角色

    roles/playbook_name/all.yml , tagger.yml configservice.yml

    现在在 all.yml 中

    ---
      - name: build all dockers
        hosts: all  
        vars:      
            version1: "1.0"
      - name: call tagger
        host: all
        include: tagger.yml   #u can loop also with_items
    

    在标记器中

    ---
      - name: some step !!!!!!
        command: echo 1
    

    您可以通过外部包装器调用整个角色。

    【讨论】:

    • 因为我在这些作业中构建了 docker,当我将东西放入 role\tasks\main 但从外部激活所有 docker 构建时,相关文件夹变得疯狂..想要避免相对引用..现在我把戏剧中的一切。由于这不是部署——只有 docker 构建——想让它变得简单
    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2018-01-03
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多