【问题标题】:Jenkins - SSH command executor - selectorJenkins - SSH 命令执行器 - 选择器
【发布时间】:2016-09-12 19:41:39
【问题描述】:

这次我有 Jenkins 的问题。我的应用服务器很少,每个应用服务器都有多个 tomcat。我想要实现的是命令选择器。例如:我有 APP01、APP02、APP03。每个应用服务器都有几个 tomcat:tomcat01、tomcat02、tomcat03、......当我部署时,我运行我的特殊脚本来备份现有应用、备份日志、清理、将 .war 文件放入正确的目录并启动 tomcat。命令是

app-new-execute deploy

我还有 -warage(检查 .war 文件日期)、-stop、-start、-kill(如果出现问题)。用户必须向我请求部署,或者他们必须自己登录并执行部署。他们有权这样做(通过 sudoers 文件),仅此而已 - 但有时事情会变得一团糟。我在 Jenkins 有多个构建工作。现在......是否有可能有选择器 - 例如 2 个下拉列表,用户可以在其中选择服务器(比如说)APP03 和 tomcat(比如说)TOMCAT06。问题一:JENKINS 是否有可能构建我的命令(基于选择器)

ssh APP03 sudo su - TOMCAT06 -c 'app-new-execute "deploy"'

问题2:该列表可以是动态的(txt 文件)。原因是-我定期删除/移动/删除tomcat。名称中有整体,例如 (tomcat 01,02,07,08)。我要做的是在每台服务器上创建一个名为 $(hostname).txt 的 TXT 文件,我可以从简单的脚本(cron,每天)中获取一个 tomcat 编号。类似:echo $(hostname) > $(hostname).txt 并使用一些简单的脚本(如ll /applications/new/tomcat/ | egrep ^d | grep tomcat | awk '{print $3})输出 tomcat 编号。那会给我tomcat01,tomcat03,tomcat07 .... 詹金斯是否有可能从该 .txt 文件中填充每台服务器的 tomcat 列表。如果不是,那么实现类似目标的更好方法是什么?我不是 Jenkins 的大师 - 我已经设置了多个构建作业 (SVN+ANT)。欢迎任何建议。问候

进展: 我能够获得扩展选择参数。用作魅力。我得到服务器以及tomcat。这很容易(如上所述)。我拥有的是一个 SSH 执行器。我选择服务器,输入 tomcat 号并可以执行远程 SSH。我确实有 SSH 密钥身份验证,并且可以成功登录到服务器。 Jenkins 可以轻松连接到服务器。但是我有一个 SSH 问题 - 执行远程 SSH 时 - Jenkins 无法“完成”SSH 会话。它卡在旋转的标志上,等待着什么。我的参数是 ${server}(从列表中选择)和 ${tomcat}(输入 tomcat 编号)。

ssh -t -t app_deployer@${server} <<EOF
sudo su - ${tomcat} -c './deployer_script.sh "deploy"'
echo "You are deploying app on ${server} to ${tomcat}"
EOF

退出 我在这里做错了什么?我可以(从命令行)执行命令

sudo su - ${tomcat} -c './deployer_script.sh "deploy"'

但在服务器上 - 通过 SSH 登录到应用服务器框。我错过了什么?

我不能用

进度更新 2。 我也无法通过 shell 退出 SSH 会话。命令“退出”不起作用。 那里一定有错误。 EOF 后不退出。 我错过了什么?

【问题讨论】:

  • 已解决:ssh -t -t app_deployer@${server} &lt;&lt;EOF sudo su - ${tomcat} -c './deployer_script.sh "deploy"' exit 0 EOF

标签: jenkins


【解决方案1】:

是的,可以使用变量,例如使用“选择参数”并将其命名为APP,然后添加选项(app01、app02、app03)和TOMCAT(tom01、tom02 .. .)

现在 Jenkins 可以在 shell 中使用 ${APP} 和 ${TOMCAT} 了,例如:

ssh ${TOMCAT} "sh /path/to/${APP}"

【讨论】:

  • 我还没有听说过那个插件:)。会看看。看起来很有希望:)。我认为这是要走的路。
  • 效果很好。我已经进行了更改和附加修改(插件),一切正常
猜你喜欢
  • 2013-08-16
  • 2020-12-29
  • 1970-01-01
  • 2017-03-14
  • 2016-10-10
  • 2023-03-08
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
相关资源
最近更新 更多