Git 在生产服务器上使用Jenkins进行部署的最佳方法

Git 在生产服务器上使用Jenkins进行部署的最佳方法,git,jenkins,ssh,Git,Jenkins,Ssh,我想使用Jenkins进行生产部署,并寻找一种安全且合规性可接受的方法 一点背景 我想使用shell可执行文件创建一个简单的Jenkins作业,该可执行文件将获取最新代码,替换一些文件,然后重新启动服务 我的生产服务器只能通过跳转服务器访问 当前方法 我正在考虑将生产服务器作为代理添加到我的Jenkins中,以避免登录到Jump server然后ssh到生产服务器的复杂性 我们有三台这样的生产服务器,需要在其中进行部署,在上述情况下,我们必须将所有三台服务器添加到Jenkins 这是

我想使用Jenkins进行生产部署,并寻找一种安全且合规性可接受的方法

一点背景

  • 我想使用shell可执行文件创建一个简单的Jenkins作业,该可执行文件将获取最新代码,替换一些文件,然后重新启动服务
  • 我的生产服务器只能通过跳转服务器访问
当前方法

  • 我正在考虑将生产服务器作为代理添加到我的Jenkins中,以避免登录到Jump server然后ssh到生产服务器的复杂性

  • 我们有三台这样的生产服务器,需要在其中进行部署,在上述情况下,我们必须将所有三台服务器添加到Jenkins

这是正确的选择,还是我们应该使用跳转服务器作为代理,然后使用ssh连接到不同的机器

如果我们使用另一种方法,即跳转服务器作为代理,那么运行git pull/fetch、service start stop等命令作为ssh命令的参数是否可行? 我为这种方法编写的当前脚本如下所示-

ssh username@production-server bash -c "'

sudo systemctl stop nginx
cd /home/username/code
git fetch --all
git checkout "$branch_name"
sudo cp /home/username/code/index.html /usr/share/doc/HTML/index.html
sudo systemctl start nginx

'"
此外,在这个脚本后面还会有一些if-else语句

总结一下我的问题-

直接在Jenkins中添加生产服务器作为代理(Jenkins只能由有特权的人访问)并运行这种命令/脚本,或者添加Jump server作为代理,然后通过ssh运行命令/脚本作为参数,可以吗

欢迎提供其他最佳方法/建议

将生产服务器添加为my Jenkins中的代理,以避免登录到Jump server然后ssh到生产服务器的复杂性

在我工作的机构中,这永远不会飞:SSH总是被阻止的,除非通过跳转服务器

任何部署实际上都是由完成的,它对prod服务器具有SSH连接授权。Jenkins在那里触发一个
塔cli
,以启动Ansible作业