Ansible 不会将凭据添加到 ~/.docker/config.json 尽管成功登录注册表
Ansible doesn't add credentials to ~/.docker/config.json despite succesful login to registry
我无法通过 ansible 登录私人 docker 登录注册表。登录本身是成功的,我可以在注册表容器日志中看到这一点;除了 ansible 在执行登录任务时不会抛出错误。但是在 运行 ansible 角色之后,我无法提取图像。显然 ansible 从不向 docker 的配置文件添加任何凭据。当我从主机手动登录时,一切正常。
有人知道问题出在哪里吗?
版本:Ansible 2.3.2.0,Docker17.12
main.yml
中的 ansible 角色:
---
# should work but does not - ansible doesn't add credentials to ~/.docker.config.json... have to log manually
- name: login to private registry
docker_login:
registry: "{{ registry_container_url }}"
username: "{{ registry_user }}"
password: "{{ registry_password }}"
reauthorize: yes
剧本只执行这个角色:
---
- hosts: host1
become: yes
roles:
- testrole
日志:
ok: [node02]
TASK [docker-test : login to private registry] *************************************************************************
changed: [node02]
PLAY RECAP ************************************************************************************************************
node02 : ok=2 changed=1 unreachable=0 failed=0
好的,我知道了。
become
必须在剧本中设置为 no
。
如果您需要 运行 作为特权,您还可以将 docker 配置添加到 Root 的主页。即:
/home/root/.docker/config.json
我无法通过 ansible 登录私人 docker 登录注册表。登录本身是成功的,我可以在注册表容器日志中看到这一点;除了 ansible 在执行登录任务时不会抛出错误。但是在 运行 ansible 角色之后,我无法提取图像。显然 ansible 从不向 docker 的配置文件添加任何凭据。当我从主机手动登录时,一切正常。
有人知道问题出在哪里吗?
版本:Ansible 2.3.2.0,Docker17.12
main.yml
中的 ansible 角色:
---
# should work but does not - ansible doesn't add credentials to ~/.docker.config.json... have to log manually
- name: login to private registry
docker_login:
registry: "{{ registry_container_url }}"
username: "{{ registry_user }}"
password: "{{ registry_password }}"
reauthorize: yes
剧本只执行这个角色:
---
- hosts: host1
become: yes
roles:
- testrole
日志:
ok: [node02]
TASK [docker-test : login to private registry] *************************************************************************
changed: [node02]
PLAY RECAP ************************************************************************************************************
node02 : ok=2 changed=1 unreachable=0 failed=0
好的,我知道了。
become
必须在剧本中设置为 no
。
如果您需要 运行 作为特权,您还可以将 docker 配置添加到 Root 的主页。即:
/home/root/.docker/config.json