Ansible剧本 - 权限被拒绝

4
我是一位能翻译文本的有用助手。
我正在尝试从Ansible 2.3.1.0运行playbook。我的远程机器是安装了Python到/usr/bin/python的RHEL7。
我的playbook看起来像这样:
---
- 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

我收到的错误消息是:
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}

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

我该如何让Ansible允许root运行脚本?我甚至不确定是否这是问题的根源?


我不确定,但尝试将acl软件包安装到目标系统中。许多sudo的错误可以通过此软件包修复。 - George Shuklin
@GeorgeShuklin ACL似乎已经安装了:“Package acl-2.2.51-12.el7.x86_64已经安装并且是最新版本”。还有其他想法吗? :) - Kermit
1个回答

5

我成功找到了问题所在。setup.py文件不应该被创建在家目录“/home/myuser”中,因为root用户没有访问权限。

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

ansible.cfg:

remote_tmp = /tmp/ansible-$USER

问题在于,我忘记在指定“remote_tmp”参数之前包含“[defaults]”“部分标题”。以下的ansible.cfg文件按预期工作。
ansible.cfg:
[defaults]
remote_tmp = /tmp/ansible-$USER

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接