Ansible:在容器创建期间获取docker容器输出

时间:2017-04-06 18:26:11

标签: ansible sentry docker-container

我试图创建一个使用Ansible生成密钥的docker容器,但docker_container似乎没有返回容器输出。

如果我进入服务器并运行

root@localhost:~# docker run --rm sentry-onpremise config generate-secret-key

我得到了所需的输出。像这样的秘密密钥

q16w8(5s9_+%4@z8m%c%0uzb&agf0pn+6zfocraponasww&r)f

但是如果我尝试使用Ansible playbook运行相同的命令,则执行docker容器,但不返回任何值:

...
- name: Cria secret key para utilizacao em passos seguintes
  docker_container:
    name: sentry-key-generator
    cleanup: True
    image: sentry-onpremise
    command: config generate-secret-key
  register: saida
  tags:
    - debug

- fail:
    msg: "Valor de saida: {{ saida }}"
  tags:
    - debug
...
  

致命:[45.56.93.133]:失败! => {       "改变了#34;:错误,       "失败":是的,       "调用":{           " module_args":{               " msg":" Valor de saida:{u'改变了':是的,你' ansible_facts':{}}"           },           " module_name":"失败"       },       " msg":" Valor de saida:{u'改变了':是的,你' ansible_facts':{}}" }

这是docker_container模块的限制吗?我是否必须在docker或ansible中设置任何其他配置才能获得容器输出?

1 个答案:

答案 0 :(得分:1)

这是Ansible 2.2.x中引入的一个错误,它将ansible_docker_container与结果区分开来。

请参阅:
https://github.com/ansible/ansible/issues/22323
https://github.com/ansible/ansible/issues/20543

修补
https://github.com/ansible/ansible/pull/22324/files

修复程序将与Ansible 2.3.x一起发布