小编Mad*_*key的帖子

强制 Ansible 注销以刷新用户组

我正在使用 Ansible 和 Docker 设置服务器。我目前正在学习这两种技术,所以如果我在这里过于愚蠢,请容忍我。

为了运行运行 Docker 命令,用户必须在 docker 用户组中。所以我这样做:

-   name: Ensure group "docker" exists
    become: yes
    group:
        name: docker
    state: present

-   name: Add ansible user to docker group
    become: yes
    user:
        name: "{{ansible_user}}"
        groups: docker
        append: yes
Run Code Online (Sandbox Code Playgroud)

在后来的剧本(但相同的剧本)中,我将执行以下操作:

-   name: build
    command: docker-compose build --pull
    args:
        chdir: /docker

-   name: start services
    command: docker-compose -f docker-compose.yml up -d
    args:
        chdir: /docker
Run Code Online (Sandbox Code Playgroud)

这在第一次运行时永远不起作用。“构建”任务总是失败,抱怨它找不到 docker(这是由于缺少访问权限)。如果我手动登录,因为{{ansible_user}}我可以很好地运行 docker,并且如果我等待足够长的时间(以便 Ansible 将打开一个新的 SSH 会话,我认为)剧本也可以正常工作,这让我相信{{ansible_user}}没有由于 Ansible 将 SSH 会话重新用于剧本中的所有任务,因此选择了新组。

所以我该怎么做?我也试过 …

permissions ansible docker docker-compose ansible-playbook

10
推荐指数
1
解决办法
5854
查看次数