Ansible 剧本 - 权限被拒绝

Ker*_*mit 4 file-permissions ansible

我正在尝试从 Ansible 2.3.1.0 运行一本剧本。我的远程计算机是 RHEL7,Python 安装在 /usr/bin/python 中。

我的剧本是这样的:

---
- hosts: my-test
  remote_user: myuser
  become: true
  become_method: sudo

  tasks:
#Extend /opt to 1GB
  - name: Extend /opt 2048m.
    lvol:
      vg: rootvg
      lv: rootvg-opt
      size: 1024m
Run Code Online (Sandbox Code Playgroud)

我收到的错误:

fatal: [my-test.host.nu]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Shared connection to my-test.host.nu closed.\r\n", "module_stdout": "/usr/bin/python: can't open file '/home/myuser/.ansible/tmp/ansible-tmp-1523204435.39-113929450187838/setup.py': [Errno 13] Permission denied\r\n", "msg": "MODULE FAILURE", "rc": 1}
Run Code Online (Sandbox Code Playgroud)

由 Ansible 创建的文件“setup.py”具有权限“700 myuser myuser”,我猜这是一个问题?

如何让 Ansible 允许 root 运行脚本?我什至不确定这是否是问题所在?

Ker*_*mit 5

我设法查明了问题所在。setup.py 文件不应该创建在 root 没有访问权限的主文件夹“/home/myuser”中。

我尝试在 ansible.cfg 中设置环境变量 TMPDIR 和变量“remote_tmp”,如下所示。

ansible.cfg :

remote_tmp = /tmp/ansible-$USER
Run Code Online (Sandbox Code Playgroud)

问题是,在指定“remote_tmp”参数之前,我错过了包含“[defaults]”“节标题”。下面的 ansible.cfg 文件按预期工作。

ansible.cfg :

[defaults]
remote_tmp = /tmp/ansible-$USER
Run Code Online (Sandbox Code Playgroud)