【问题标题】:Not able to run yq commands via rundeck job definitions无法通过 rundeck 作业定义运行 yq 命令
【发布时间】:2023-02-08 23:22:18
【问题描述】:

我安装了yq 的快照包,它显示在/home/ubuntu/ 下我想转换yaml file to json using yq。我使用此命令 cat file.yaml | yq . -o=json > file.json 转换位置 /home/ubuntu/ 下的文件,当我通过命令行运行时此命令有效。 但是,如果我尝试在我的 rundeck 作业定义中的 bash shell 脚本中运行相同的命令,则会出现以下错误。

Sorry, home directories outside of /home are not currently supported. See https://forum.snapcraft.io/t/11209 for details

我的 Rundeck 版本是Rundeck 2.6.9-1,它在 ubuntu 18 上运行

【问题讨论】:

  • 您是否考虑过本地安装 yq 而不是通过 Snapcraft?是沙箱把你弄得一团糟;以不将其放入沙盒包装器的方式安装它,这个问题没有实际意义。

标签: rundeck yq


【解决方案1】:

更新答案:

reproduced 你的问题,这是一个 snap 包限制(描述 here 并且 Charles Duffy 在你的原始问题中也评论过),Rundeck 主页它定义在 /var/lib/rundeck 路径。

所以,最好的办法就是卸载snap yq(root:snap remove yq),然后用传统方式安装:

作为根:

  1. 下载 yq 二进制文件并将其放入 /usr/local/bin 路径:

    wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64

    1. 赋予它权限:

    chmod a+x /usr/local/bin/yq

    然后,你的工作应该work

【讨论】:

  • 我尝试在我的脚本中给出 yq 的完整路径。它给出了同样的错误
  • 答案已更新。
猜你喜欢
  • 1970-01-01
  • 2014-01-26
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
相关资源
最近更新 更多