【问题标题】:Rundeck - run job on localhost as different userRundeck - 在 localhost 上以不同用户身份运行作业
【发布时间】:2016-12-04 05:10:00
【问题描述】:

我对 Rundeck 很陌生,并且正在评估它是否可以替代 Jenkins 来运行我们的临时操作任务。

我们在 Rundeck 服务器上有所有需要以特定用户身份运行的命令和脚本,例如:ubuntu。

我尝试在 /etc/rundeck/framework.properties (framework.ssh.user=ubuntu) 和 /var/rundeck 等地方更改配置/projects/myproject/etc/resources.xml(为本地节点设置 username="ubuntu")但我的工作总是以用户“rundeck”的身份运行,一开始这很令人沮丧我认为实现这一点应该很简单。

那么,我是否遗漏了什么,或者 Rundeck 无法以与“rundeck”不同的用户身份在本地运行脚本?

更新: 我现在找到了一个解决方案,那就是使用脚本步骤,然后在高级选项调用字符串中我可以设置为“sudo -u ubuntu”,这样我的脚本就可以从 rundeck 作为 ubuntu 运行。

但是,使用该 sudo 仍然不是很方便,例如环境变量保留问题。

【问题讨论】:

  • 您可以让脚本自行运行并与所需的用户一起运行吗?
  • @Fabio 实际上我们必须将它作为“ubuntu”运行,以便与我们正在使用的其他工具和框架兼容。我们有很多脚本或命令可能会调用其他工具——这使得它们都需要切换到 ubuntu 本身,这对我们来说不是一个选择。
  • 拥有一个像 Ubuntu 一样运行其他脚本的脚本怎么样?您可以将原始脚本作为第一个参数传递,并将其他参数作为以下参数传递。这更现实吗?

标签: ubuntu rundeck


【解决方案1】:

@Arcobaleno,您将不得不分派到 rundeck 服务器以使用 ssh 设置。 “本地命令”或未调度的命令步骤使用作为插件点的本地节点执行器。您可以创建一个本地节点执行程序来隐式 sudo 到您想要的用户并运行命令。

【讨论】:

  • 你能说得更具体些吗,因为这对我来说很新,我尝试使用命令、脚本、本地命令,还尝试在命令选项卡中的目标节点 (localhost) 上运行命令,但似乎没有他们使用我的 SSH 配置,它们中的任何一个都是您提到的本地节点执行器吗?如果不是我如何创建本地节点执行器?
【解决方案2】:

您需要从您的本地主机 ssh 到您的本地主机(将本地主机伪装成远程服务器)。

[ubuntu]$ ssh ubuntu@xx.xx with passwordless ssh. 

id_rsa.pub 复制到~/.ssh/authorized_keys。 (id_ras.pub 存储在默认位置/var/lib/rundeck/.ssh/id_rsa.pub.)。

然后您可以使用您的 ubuntu 环境运行您的程序。

这对我有用。

【讨论】:

    猜你喜欢
    • 2018-01-26
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    相关资源
    最近更新 更多