尝试使用 become machinectl 执行 ansible 时出错

尝试使用 become machinectl 执行 ansible 时出错

我尝试使用 machinectl 命令在 systemd-nspawn 容器内通过 ansible 实现一些工作的自动化。

我发现了一个似乎适合的 become machinectl ansible 插件,但是我做错了一些事情,因为它不起作用(或者至少没有按照我期望的方式起作用)。

我正在运行一个剧本:

ansible-playbook playbooks/machinectl_test.yml -i inventory/imagecreators --user ansibleuser

库存文件只有一台机器:

[Fedora]
fedoraimagecreator

剧本machinectl_test.yml:

- name: create machinectl user
  hosts: "*"
  become: yes
  tasks:
    - name: create machinectl user
      ansible.builtin.user:
        name: test
      become: yes
      become_method: machinectl
      become_flags: "--machine fedora36custom"

用户 ansibleuser 位于 sudoers 中,具有所有权限:

ansibleuser ALL=(ALL) NOPASSWD:ALL

还有车轮组内部:

root@fedoraimagecreator:~ # groups ansibleuser
ansibleuser : ansibleuser wheel

我添加了 polkit 规则集,它是 ansible 文档的一部分(这就是为什么 ansible 用户是 wheel 的一部分,否则我认为不需要):

# A polkit rule needed to use the module with a non-root user.
# See the Notes section for details.
60-machinectl-fast-user-auth.rules: |
    polkit.addRule(function(action, subject) {
        if(action.id == "org.freedesktop.machine1.host-shell" && subject.isInGroup("wheel")) {
            return polkit.Result.AUTH_SELF_KEEP;
        }
    });

有了这些。当我启动剧本时,结果如下:

root@ansible:~/ansible # ansible-playbook playbooks/machinectl_test.yml -i inventory/imagecreators --user ansibleuser

PLAY [create machinectl user] ******************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [fedoraimagecreator]

TASK [create machinectl user] ******************************************************************************************
fatal: [fedoraimagecreator]: FAILED! => {"changed": false, "module_stderr": "Shared connection to fedoraimagecreator closed.\r\n", "module_stdout": "\u001b[0;1;31mFailed to connect to bus: El `host' no está operativo\u001b[0m\r\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

PLAY RECAP *************************************************************************************************************
fedoraimagecreator         : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

有人知道我做错什么了吗?

问候。

相关内容