首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行对接-在不确定的剧本中撰写

执行对接-在不确定的剧本中撰写
EN

Stack Overflow用户
提问于 2019-10-11 13:27:56
回答 2查看 3.4K关注 0票数 4

我有一个ansible-playbook.yml文件,从内部需要执行docker-compose

代码语言:javascript
复制
- name: copy sql schema
  hosts: test-mysql
  gather_facts: no
  tasks:        
    - name: Docker compose
      command: docker-compose -f {{ name }}_compose.yml up -d

但我总是会犯错误:

代码语言:javascript
复制
fatal: [test-mysql]: FAILED! => {"changed": false, "cmd": "docker-compose Mick_compose.yml up -d", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}

有小费吗?

命令:

代码语言:javascript
复制
- name: Make sure compose service is up
  docker_compose:
    project_src: /path/to/your/compose/project
    files:
      - {{ name }}_compose.yml
    state: present

我知道错误:

代码语言:javascript
复制
The offending line appears to be:

    - name: Make sure compose service is up
       docker_compose:
                     ^ here
EN

回答 2

Stack Overflow用户

发布于 2019-10-11 14:20:28

Errno 2没有这样的文件或目录

在启动命令的默认目录中,实际上没有像Mick_compose.yml这样的文件或目录。要解决这个问题,我可以向您展示如何将dir从指挥模块更改为保存文件的正确的dir。

但是我会让您自己发现这一点(如果在本解释之后仍然想这样做的话),因为在有现有的ansible模块已经完成了您所需的工作时不应该直接运行命令

代码语言:javascript
复制
- name: Make sure compose service is up
  docker_compose:
    project_src: /path/to/your/compose/project
    files:
      - "{{ name }}_compose.yml"
    state: present

这只是为了让你走上正轨,看看上面的模块文档链接,了解更多关于可能的参数的信息。

票数 3
EN

Stack Overflow用户

发布于 2019-10-11 14:28:59

运行剧本的目录不包含{{ name }}_compose.yml文件。

相关模块可以帮你。如果不想使用它,可以添加任务,它将显示运行剧本的目录:

代码语言:javascript
复制
- name: copy sql schema
  hosts: test-mysql
  gather_facts: no
  tasks:
    - debug: 
        msg: "{{ playbook_dir }}"
    - name: Docker compose
      command: docker-compose -f {{ name }}_compose.yml up -d

然后,要么将{{ name }}_compose.yml移动到目录,要么在命令中提供一个绝对路径:docker-compose -f [abs_path]{{ name }}_compose.yml up -d

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58342315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档