使用Ansible的machinectl提权插件在systemd-nspawn容器中执行任务失败求助
使用Ansible的machinectl提权插件在systemd-nspawn容器中执行任务失败求助
我最近尝试在systemd-nspawn容器里用Ansible结合machinectl命令实现自动化操作,找到了machinectl这个become插件,看起来正好匹配我的需求,但实际运行时总是出问题,和预期的不一样,想请教大家我哪里配置错了。
我的操作环境与配置细节
- Ansible执行命令:
ansible-playbook playbooks/machinectl_test.yml -i inventory/imagecreators --user ansibleuser
- Inventory文件内容:
[Fedora] fedoraimagecreator
- Playbook文件(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:ALLansibleuser同时属于wheel组:root@fedoraimagecreator:~ # groups ansibleuser ansibleuser : ansibleuser wheel
Polkit规则配置:
我按照Ansible文档添加了Polkit规则文件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; } });
执行后的错误结果
运行playbook后得到的报错信息如下:
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
错误里的西班牙语提示翻译过来是“主机未运行”,但我确认容器fedora36custom是正常启动状态的,实在搞不清哪里出问题了,有没有大佬能指点一下?
备注:内容来源于stack exchange,提问作者namregzepol
相关产品推荐
相关产品推荐

