我正在尝试使用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
答案 0 :(得分:0)
使用是否成功并不重要,因为脚本模块从控制计算机读取脚本文件,将其传输到目标并在那里执行(在您的情况下成为特权)。
错误来自于控制计算机上/var/tmp/nagiosclient.sh
处不存在脚本的事实。
如果要在目标上执行它,则应使用shell
模块并运行/var/tmp/nagiosclient.sh
。
此外,权限被拒绝的问题完全不相关,并且警告无法创建重试文件;也在控制机器上。