【问题标题】:Rundeck failing execution of ansible commands/playbooksRundeck 无法执行 ansible 命令/剧本
【发布时间】:2017-03-25 02:22:34
【问题描述】:

我有从快照恢复 aws MySQL RDS 的 ansible playbook。如果从命令行手动运行,则剧本运行良好并完成任务。但是通过rundeck的web界面运行时,遇到如下错误,

fatal: [localhost]: UNREACHABLE! => {"changed": false, "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the remote directory. Consider changing the remote temp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo $HOME/.ansible/tmp/ansible-tmp-1491222004.1-29099027555878 `\" && echo ansible-tmp-1491222004.1-29099027555878=\"` echo $HOME/.ansible/tmp/ansible-tmp-1491222004.1-29099027555878 `\" ), exited with result 1", "unreachable": true}

我的 Rundeck 服务器在同一个 Ansible 服务器上

我尝试在 ansible.cfg 中添加以下行

remote_tmp = $HOME/.ansible/tmp
local_tmp = $HOME/.ansible/tmp

我已经为 $HOME/.ansible/tmp 设置了权限 1777,但它并没有解决我的问题。 能否请你帮忙? 谢谢!!!

【问题讨论】:

  • 您在运行内联脚本吗?
  • 不,我正在使用 rundeck-anible 插件和“运行 Ansible Playbook”
  • 日志文件 /var/log/rundeck/service.log 中有什么内容吗?看起来是文件权限问题。
  • INFO ScheduledExecutionService: 调度立即作业运行: TEMP:hung:2:79 WARN ExecutionJob: ExecutionJob: 找不到 ID [79] 的执行,将重试最多 60 秒... INFO ExecutionJob: ExecutionJob:使用 ID [79] 重试执行 (1) 使用 /etc/ansible/ansible.cfg 作为配置文件错误 ExecutionUtilService:执行失败:项目 Shop-Ansible 中的 79:[工作流结果:,步骤失败:{1=AnsibleNonZero :错误:Ansible 执行返回非零代码。},状态:失败]
  • 你运行的是哪个版本的ansible?

标签: ansible rundeck


【解决方案1】:

在 ansible.cfg 中设置:

remote_tmp = $HOME/.ansible/tmp
local_tmp = $HOME/.ansible/tmp

Ansible issue #21339

【讨论】:

  • 我收到此错误:== 致命:[localhost]:无法访问! => {"changed": false, "msg": "身份验证或权限失败。在某些情况下,您可能已经能够进行身份验证并且没有远程目录的权限。考虑更改 ansible.cfg 中的远程临时路径到以 \"/tmp\" 为根的路径。失败的命令是:( umask 77 && mkdir -p \"` echo $HOME/.ansible/tmp/ansible-tmp-1491187408.79-62648068739250 \" && echo ansible-tmp-1491187408.79-62648068739250=\" echo $HOME/。 ansible/tmp/ansible-tmp-1491187408.79-62648068739250 `\" ), 退出结果为 1", "unreachable": true}
  • @CharlesPHAM 您的 ansible 用户无权访问 $HOME/.ansible/
  • 我使用的是 rundeck 用户,$HOME/.ansible 是 /var/lib/rundeck/.ansible。我已经为 $HOME/.ansible 设置了 1777 权限。
猜你喜欢
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多