Ansible 无法设置临时文件的权限
Ansible Failed to set permissions on the temporary files
我想制作一个剧本,向我显示当前正在使用的用户。
这是我的 ansible cfg:
[defaults]
inventory=inventory
remote_user=adminek
[privilege_escalation]
become=true
[ssh_connection]
allow_world_readable_tmpfiles = True
ssh_args = -o ControlMaster=no -o ControlPath=none -o ControlPersist=no
pipelining = false
这是我的剧本
---
- name: show currenty users
hosts: server_a
tasks:
- name: test user - root
shell: "whoami"
register: myvar_root
- name: test user - user2
become: true
become_user: user2
shell: "whoami"
register: myvar_user2
- name: print myvar root
debug:
var: myvar_root.stdout_lines
- name: print myvar user2
debug:
var: myvar_user2.stdout
taks“test user - root”工作正常并给我输出
ok: [172.22.0.134] => {
"myvar_root.stdout_lines": [
"root"
]
}
taks "test user - user2" 给我输出
fatal: [172.22.0.134]: FAILED! => {"msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user (rc: 1, err: chown: changing ownership `/var/tmp/ansible-tmp-1621340458.2-11599-141854654478770/': Operation permited\nchown: changing ownership `/var/tmp/ansible-tmp-1621340458.2-11599-141854654478770/AnsiballZ_command.py': Operation permited\n}). For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
说明:
adminek- sudoer 用户
User2 - 非 sudoers 用户
OS - 科学 Linux 版本 6.9
此外,我在 ubuntu 18.04 上遇到了类似的问题,但是当我安装 acl 时开始工作
有人知道怎么回事吗?
感谢您的帮助!
以下选项之一应该可以解决您的问题:
- 确保
sudo
安装在远程主机上
- 确保
acl
安装在远程主机上
- 取消注释
/etc/ansible/ansible.cfg
中的以下行:
allow_world_readable_tmpfiles = True
pipelining = True
@F1ko 谢谢回复
我做了你不会做的事,我在我的主机上安装了 acl,但窃取是错误的。
我加到visudo了。
Defaults:user2 !requiretty
Defaults:adminek !requiretty
我不知道它是否安全,但可以工作。
我想制作一个剧本,向我显示当前正在使用的用户。
这是我的 ansible cfg:
[defaults]
inventory=inventory
remote_user=adminek
[privilege_escalation]
become=true
[ssh_connection]
allow_world_readable_tmpfiles = True
ssh_args = -o ControlMaster=no -o ControlPath=none -o ControlPersist=no
pipelining = false
这是我的剧本
---
- name: show currenty users
hosts: server_a
tasks:
- name: test user - root
shell: "whoami"
register: myvar_root
- name: test user - user2
become: true
become_user: user2
shell: "whoami"
register: myvar_user2
- name: print myvar root
debug:
var: myvar_root.stdout_lines
- name: print myvar user2
debug:
var: myvar_user2.stdout
taks“test user - root”工作正常并给我输出
ok: [172.22.0.134] => {
"myvar_root.stdout_lines": [
"root"
]
}
taks "test user - user2" 给我输出
fatal: [172.22.0.134]: FAILED! => {"msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user (rc: 1, err: chown: changing ownership `/var/tmp/ansible-tmp-1621340458.2-11599-141854654478770/': Operation permited\nchown: changing ownership `/var/tmp/ansible-tmp-1621340458.2-11599-141854654478770/AnsiballZ_command.py': Operation permited\n}). For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
说明: adminek- sudoer 用户 User2 - 非 sudoers 用户
OS - 科学 Linux 版本 6.9
此外,我在 ubuntu 18.04 上遇到了类似的问题,但是当我安装 acl 时开始工作
有人知道怎么回事吗? 感谢您的帮助!
以下选项之一应该可以解决您的问题:
- 确保
sudo
安装在远程主机上 - 确保
acl
安装在远程主机上 - 取消注释
/etc/ansible/ansible.cfg
中的以下行:
allow_world_readable_tmpfiles = True
pipelining = True
@F1ko 谢谢回复
我做了你不会做的事,我在我的主机上安装了 acl,但窃取是错误的。 我加到visudo了。
Defaults:user2 !requiretty
Defaults:adminek !requiretty
我不知道它是否安全,但可以工作。