即使在使用后,也无法升级ansible任务的权限

时间:2018-01-10 07:54:05

标签: ansible ansible-2.x

我正在尝试使用ansible自动化场景。

- name: Copy NRPE Upgrade script
  template: src=nagiosclient.sh.j2 dest=/var/tmp/nagiosclient.sh

- name: Add Execute  permissions of the script
  file: dest=/var/tmp/nagiosclient.sh mode=a+x

- name: Execute the NRPE script
  script: /var/tmp/nagiosclient.sh
  become: true
  tags: test

这是我的剧本的摘录。此playbooks成功运行副本并添加执行权限任务。

但是当我尝试运行时,执行它失败了。

因为ansible正试图以'gparasha'用户身份登录,所以此路径/ var / tmp对于此用户不可用。

但即使我在上面的任务中添加了“成为:true”, 甚至在使用后 - 进入ansible playbook任务, 即“ansible-playbook -i hosts tltd.yml --become --tags test”

我收到了拒绝权限错误..

有谁可以建议这里有什么问题以及如何纠正它?

gparasha-macOS:TLTD gparasha$ ansible-playbook -i hosts tltd.yml --become --tags test

PLAY [Run tasks on Author] **************************************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************************************************
ok: [13.229.22.58]
fatal: [34.198.174.78]: UNREACHABLE! => {"changed": false, "msg": "Authentication failure.", "unreachable": true}

TASK [author : Execute the NRPE script] *************************************************************************************************************************************************
fatal: [13.229.22.58]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find or access '/var/tmp/nagiosclient.sh'"}
 [WARNING]: Could not create retry file '/opt/ansible/TLTD/tltd.retry'.         [Errno 13] Permission denied: u'/opt/ansible/TLTD/tltd.retry'


PLAY RECAP ******************************************************************************************************************************************************************************
13.229.22.58               : ok=1    changed=0    unreachable=0    failed=1   
34.198.174.78              : ok=0    changed=0    unreachable=1    failed=0   

1 个答案:

答案 0 :(得分:0)

使用是否成功并不重要,因为脚本模块从控制计算机读取脚本文件,将其传输到目标并在那里执行(在您的情况下成为特权)。

错误来自于控制计算机上/var/tmp/nagiosclient.sh处不存在脚本的事实。

如果要在目标上执行它,则应使用shell模块并运行/var/tmp/nagiosclient.sh

此外,权限被拒绝的问题完全不相关,并且警告无法创建重试文件;也在控制机器上。