Ansible docker_container命令失败,没有输出

时间:2016-10-11 16:29:55

标签: docker ansible

我在这里遇到了ansible docker_container命令的问题。

- name: Start Docker
  docker_container:
    name: postgres
    image: "centos/postgresql-94-centos7"
    state: started
    recreate: yes
    pull: yes
    env:
      POSTGRESQL_USER: "test"
      POSTGRESQL_PASSWORD: "test"
      POSTGRESQL_DATABASE: "test"
      POSTGRESQL_MAX_CONNECTIONS: 100
      POSTGRESQL_SHARED_BUFFERS: 32M
    exposed_ports:
      - 5432
    ports:
      - 5432:5432
  become: yes
  become_method: sudo

当这个命令运行时,它会引导容器,但是容器会立即退出,但是有一些我看不到的输出,因为ansible由于某些原因没有打印出sys。

以下是容器拒绝启动时打印的一些输出示例(由于配置错误):

$ sudo docker run --name postgres -e POSTGRESQL_USER="test" -p 5432:5432 centos/postgresql-94-centos7
You must either specify the following environment variables:
  POSTGRESQL_USER (regex: '^[a-zA-Z_][a-zA-Z0-9_]*$')
  POSTGRESQL_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
  POSTGRESQL_DATABASE (regex: '^[a-zA-Z_][a-zA-Z0-9_]*$')
Or the following environment variable:
  POSTGRESQL_ADMIN_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
Or both.
Optional settings:
  POSTGRESQL_MAX_CONNECTIONS (default: 100)
  POSTGRESQL_MAX_PREPARED_TRANSACTIONS (default: 0)
  POSTGRESQL_SHARED_BUFFERS (default: 32MB)

For more information see /usr/share/container-scripts/postgresql/README.md
within the container or visit https://github.com/openshift/postgresql.

这是我从ansible运行它时看不到的输出,它只是说它(成功)然后我检查了docker ps并且它没有启动因为可能它立即退出了。更奇怪的是,我可以通过传递给ansible命令模块的相同配置使其正常工作,但是使用docker_container可能它没有正确传递env?我真的不确定,因为我甚至无法得到错误输出。

2 个答案:

答案 0 :(得分:2)

检查

docker ps -a

看看ansible是否设法至少创建了容器。如果是,请检查

docker logs postgres

希望这应该能给你一个线索,告诉你哪里失败了。如果您对此感到困惑,也许您可​​以发布一些(编辑过的)日志来显示它失败的位置?

答案 1 :(得分:0)

您可以使用registered.ansible_facts.docker_container.Output进行此操作,其中registered是您用来注册docker_container播放的事实。

此处有更多信息:https://wordpress.com/post/carlosonunez.wordpress.com/1440