我想使用Jenkins进行生产部署,并寻找一种安全且合规的可接受方法。
一点背景
-
我想使用shell可执行文件创建一个简单的Jenkins作业,该作业将获取最新代码,替换一些文件,然后重新启动服务。
-
我的生产服务器只能通过Jump服务器访问。
当前方法
-
我想在我的Jenkins中添加生产服务器作为代理,以避免登录到Jump服务器然后ssh到生产服务器的复杂性
-
我们有三个这样的生产服务器需要进行部署,在上述情况下,我们必须将所有三个服务器添加到Jenkins中。
这是正确的选择,还是我们应该使用Jump服务器作为代理,然后通过ssh连接到不同的机器??
如果我们采用另一种方法,即Jump-server作为代理,那么运行git pull/refetch、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服务器作为代理,然后在ssh上运行命令/脚本作为参数,可以吗?
我们非常欢迎其他最佳方法/建议!