soe*_*ace 7 permissions ansible docker
我想在我用 ansible 管理的机器的容器内执行一个命令。
这可以通过delegate_to命令实现(参见/sf/answers/2913838021/):
- name: Add container to inventory
add_host:
name: mycontainer
ansible_connection: docker
changed_when: false
- name: Do something in container
delegate_to: mycontainer
raw: echo "hello world"
Run Code Online (Sandbox Code Playgroud)
但是,我使用的用户无权访问/var/run/docker.sock. 我可以通过将用户添加到docker组来解决这个问题,但我觉得这是一种糟糕的安全做法,因为使用该用户帐户运行的任何程序现在都可以在没有密码的情况下获得 root 权限。
使用become也不起作用,因为它也会被委托给容器。
我如何使用delegate_to,但先切换到另一个用户?
如果您想在容器中执行命令,那么您将需要提供与 docker 守护进程的某种通信。
暂时忽略 ansible,您可以通过两种模式与 docker 守护进程对话:
/var/run/docker.sock2375)。因此,如果不使用 Unix 套接字,您的替代方案是使用 TCP 连接。选择你的毒药;-)
| 归档时间: |
|
| 查看次数: |
1214 次 |
| 最近记录: |