个人如何建立免费手机网站,网站设计 广西,网址大全最安全实用的网址,怎么用python做网页1、创建jenkins容器
1#xff0c;首先#xff0c;我们需要创建一个 Jenkins 数据卷#xff0c;用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷#xff1a;
docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷#xff1a;
docker run -dit…1、创建jenkins容器
1首先我们需要创建一个 Jenkins 数据卷用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷
docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷
docker run -dit --namejenkins -p 9999:8080 -uroot --restartalways -v jenkins_data:/var/jenkins_home jenkins/jenkins参数说明
-i表示运行容器
-t表示容器启动后会进入其命令行
-d守护式方式创建容器在后台运行
--name容器名称
-p 9999:8080端口映射宿主机端口jenkins 容器端口
-uroot指定容器用户为 root 用户
--restartalways 参数用于在容器重启时自动启动这样即使容器被删除数据卷的数据也不会丢失
-v jenkins_data:/var/jenkins_home jenkins/jenkins将数据卷 “jenkins_data” 挂载到容器的 /var/jenkins_home 目录上2然后执行以下命令获取解锁jenkins的密码
docker logs jenkins浏览器登陆输入上面日志的密码并按提示安装插件
http://localhost:9999/3安装maven
docker exec -it jenkins apt-get update
docker exec -it jenkins apt-get install -y maven4最后重启 jenkins 容器
docker restart jenkins2、创建jenkins项目
1重新登陆 jenkins点 New Item新建流水线项目 配置参考https://blog.csdn.net/cs888zsy/article/details/132910601
其中Jenkins file脚本如下
pipeline {agent anystages {stage(拉取代码) {agent nonesteps {echo 拉取代码开始git(url: https://github.com/xxx.git, credentialsId: JackyZhang8888, branch: main, changelog: true, poll: false)echo 拉取代码完成}}stage(编译打包) {steps {echo 项目编译打包开始sh mvn clean package -Dmaven.test.skiptrueecho 项目编译打包完成}}stage(拷贝项目) {steps {echo 拷贝项目路径开始sh BASE_DIR/applicationSOURCE_DIR/var/jenkins_home/workspace/FileSystem/target/DATE_FORMAT%Y%m%dDT$(date $DATE_FORMAT)TARGET_FOLDER$BASE_DIR/$DTif [ ! -d $TARGET_FOLDER ]; thenmkdir -p $TARGET_FOLDERficp $SOURCE_DIR/*.jar $TARGET_FOLDERcp $SOURCE_DIR/*.jar $BASE_DIRecho 拷贝项目路径完成}}stage(远程部署) {steps {echo 远程部署开始sh scp /application/demo-0.0.1-SNAPSHOT.jar Administrator192.168.0.107:H:/application/dictionary/sh ssh Administrator192.168.0.107 H: cd H:\\application deploy.batecho 远程部署完成}}}
}执行效果如下 其中远程部署windows服务器的步骤需要做如下准备
3部署springboot到远程服务器
实现方式Publish Over SSH OpenSSH通过windows端安装openssh与jenkins建立ssh隧道可以实现sftp传输文件和远程执行命令
1、首先需要先在远程windows服务器安装openssh。通过PowerShell安装OpenSSH服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic这些命令首先添加OpenSSH服务器功能然后启动SSH服务并将其设置为开机自动启动。也可以进入Windows 10 设置-应用-可选功能添加可选应用找到OpenSSH服务端并安装。
此时验证容器telnet 22端口可以通
docker exec -it jenkins telnet 192.168.0.107 22
Trying 192.168.0.107...
Connected to 192.168.0.107.
Escape character is ^].
SSH-2.0-OpenSSH_for_Windows_8.12、配置免密登陆 1在C:\ProgramData\ssh\shd_config中增加如下配置
PubkeyAuthentication yes并在在该配置文件中确定公钥路径administrators_authorized_keys的位置
Match Group administratorsAuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys这表明对于管理员用户公钥授权文件应该位于%ProgramData%/ssh/administrators_authorized_keys中。
非管理员用户需要将上述sshd_config内容注释掉其他电脑的ssh公钥添加到C:\Users\username\.ssh\authorized_keys中。
2jenkins容器内生成SSH密钥对
docker exec -it jenkins ssh-keygen -t rsa将生成的公钥复制到远程服务器上的authorized_keys文件中默认路径C:\Users\Administrator\.ssh\
3右键authorized_keys选择属性-安全-高级-左下角禁用继承 弹框选择“将已继承的权限转换为此对象的显式权限”。
4Win键R键输入并运行services.msc打开服务列表检查OpenSSH Authentication Agent服务是否正常运行。如果是禁用状态需要启用然后重启一下sshd服务
此时重启openssh后jenkins服务器中使用如下命令连接windows应该是没问题的
docker exec -it jenkins ssh -i /root/.ssh/id_rsa Administrator192.168.0.1073、配置Publish over SSH
先在【插件管理】中下载Publish over SSH 然后在【系统配置】里配置SSH Servers填入ip、私钥后测试成功
PS 远程部署还可以使用如下插件
SSH Pipeline Stepshttps://plugins.jenkins.io/ssh-steps/ SSH Agenthttps://plugins.jenkins.io/ssh-agent/
deploy
:: 找到占用8080端口的应用并删除
echo off
for /f tokens5 %%a in (netstat -ano ^| findstr :8080) do (taskkill /PID %%a /F
):: 备份
scp H:\application\demo-0.0.1-SNAPSHOT.jar H:\application\backup
scp H:\application\dictionary\demo-0.0.1-SNAPSHOT.jar H:\application\:: 后台启动应用
echo off
start javaw -jar H:\application\demo-0.0.1-SNAPSHOT.jar --workSpaceH