Ansible:在容器创建期间获取 docker 容器输出
Ansible: get docker container output during container creation
我正在尝试创建一个 docker 容器,它使用 Ansible 生成密钥,但 docker_container 似乎没有 return 容器输出。
如果我 ssh 进入服务器并且 运行
root@localhost:~# docker run --rm sentry-onpremise config generate-secret-key
我得到了想要的输出。像这样的秘钥
q16w8(5s9_+%4@z8m%c%0uzb&agf0pn+6zfocraponasww&r)f
但是如果我尝试使用 Ansible 剧本 运行 相同的命令,则会执行 docker 容器,但没有值 returned:
...
- 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
...
fatal: [45.56.93.133]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_args": {
"msg": "Valor de saida: {u'changed': True, u'ansible_facts': {}}"
},
"module_name": "fail"
},
"msg": "Valor de saida: {u'changed': True, u'ansible_facts': {}}" }
这是 docker_container 模块的限制吗?我是否必须在 docker 或 ansible 中设置任何其他配置才能获取容器输出?
这是 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
我正在尝试创建一个 docker 容器,它使用 Ansible 生成密钥,但 docker_container 似乎没有 return 容器输出。
如果我 ssh 进入服务器并且 运行
root@localhost:~# docker run --rm sentry-onpremise config generate-secret-key
我得到了想要的输出。像这样的秘钥
q16w8(5s9_+%4@z8m%c%0uzb&agf0pn+6zfocraponasww&r)f
但是如果我尝试使用 Ansible 剧本 运行 相同的命令,则会执行 docker 容器,但没有值 returned:
...
- 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
...
fatal: [45.56.93.133]: FAILED! => { "changed": false, "failed": true, "invocation": { "module_args": { "msg": "Valor de saida: {u'changed': True, u'ansible_facts': {}}" }, "module_name": "fail" }, "msg": "Valor de saida: {u'changed': True, u'ansible_facts': {}}" }
这是 docker_container 模块的限制吗?我是否必须在 docker 或 ansible 中设置任何其他配置才能获取容器输出?
这是 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