【问题标题】:ansible docker-compose module, different result from ansible than over ssh on the hostansible docker-compose 模块,ansible 的结果与主机上的 ssh 不同
【发布时间】:2021-10-17 10:05:24
【问题描述】:

我的 Ansible Bitbucket 角色有一个任务,它只是启动两个 docker-compose.yml 文件。 当从 Ansible 执行它时它会失败,但是当我在实际服务器上通过 ssh 执行相同的命令时它工作得很好。我目前正在以 root 身份执行我的剧本,当我手动执行 docker-compose -f up -d 我也是 root。

- name: Create and start services
    - name: docker compose up
      docker_compose:
        project_src: "{{ bitbucket__install_path }}"
        files: "{{ bitbucket__compose_files }}"
        state: present
      register: output

Ansible 命令:

ansible-playbook -i inventory/staging playbooks/bitbucket-server.yml -vvvv -kKu root --ask-vault-pass --start-at-task "Setup bitbucket"

Ansible 成功启动了 3 个容器中的 2 个,但第三个容器因错误而崩溃:

来自守护程序的错误响应:OCI 运行时创建失败: container_linux.go:380:启动容器进程导致:exec: “/my_entrypoint.sh”:权限被拒绝:未知错误:启动失败 容器:nginx_bitbucket_1

我的问题是,为什么 Ansible 在执行上述任务时会收到错误,同时执行“docker-compose -f up -d over ssh 工作得很好?这两种情况有什么区别?

【问题讨论】:

  • 您没有提供足够的信息来回答。我的疯狂猜测可能是您从不同的用户运行它与您的 ssh 会话相比。

标签: python docker docker-compose ansible ansible-role


【解决方案1】:

我找到了解决这个问题的方法。 问题是文件字段没有按我预期的那样运行。

相对于 project_src 的 Compose 文件名列表。覆盖 docker-compose.yml 或 docker-compose.yaml。文件被加载并合并 按照给定的顺序。

我认为 files 参数会在参数中定义的每个列表元素上执行 docker-compose -f up。

我将代码更改为使用循环而不是文件参数

 - name: Create and start services                                                                                                                  
  docker_compose:
    project_src: "{{ bitbucket__install_path }}/{{ item }}"                                                                                        
    state: present                                                                                                                                                                                                                    
  loop:
    - nginx
    - bitbucket 

成功完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多