大连密封材料 发表于 2024-8-30 10:14:21

jenkins发布文件到远程服务器

jenkins安装

安装教程
后台启动脚本

创建脚本:start_jenkins.sh
ls
for pid in $(ps -ef|grep jenkins.war|grep -v grep|cut -c 10-16);
do
    echo $pid;
    kill -9 $pid;
done;

nohupjava -Djava.awt.headless=true -jar /usr/local/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 > test.log 2>& 1 &
关于权限

可以使用插件:Role-based Authorization Strategy
安装成功后,按照如下图配置:
基础配置

https://i-blog.csdnimg.cn/direct/941c82df62bb4d818f5a4075dce74262.png
角色管理

https://i-blog.csdnimg.cn/direct/97949abbb96e4b7ca278792b7237a454.png
管理角色

https://i-blog.csdnimg.cn/direct/9df3877bb053450cb5d064a81e8cdc9d.png
项目角色

留意:正则问题
https://i-blog.csdnimg.cn/direct/148422bac444436680c64023a9c24b69.png
授权

https://i-blog.csdnimg.cn/direct/f5456d1b4fac4af9bb894b97dee7ee40.png
关于配置(Manage Jenkins)

工具(Tools)

由于我这里是,在服务器安装了必要的工具,如jdk,maven,git,nodejs等,以是这里要配置自定义路径,如果选择自动安装也可以。
安装工具之后,只管把下令行全都配置进系统变量中,/etc/profile:
https://i-blog.csdnimg.cn/direct/7f9d815be5164be7a35dd8f1f281ee9f.png
由于必要前端打包,以是可以提前全局举行一些前端的下令的配置,这样就不必要配置进每个项目中了,比方,pnpm:
npm config set registry https://registry.npmjs.org
npm install -g pnpm
Maven 配置

https://i-blog.csdnimg.cn/direct/3e3edde374f64e349c0741bbe0bd174b.png
JDK安装

https://i-blog.csdnimg.cn/direct/d71e07bd93da477eaa6ef9eebb07a51e.png
Git 安装

https://i-blog.csdnimg.cn/direct/1bc6ccefaa6e488e852b909277893bf5.png
Maven 安装

https://i-blog.csdnimg.cn/direct/5ba1832ab6994af897a9d278d787da47.png
系统配置(System),重点

由于,不是当地发布,以是必要将打包好的文件,上传到远程服务器(连接可以使用暗码,也可以使用ssh-key),此处使用的是ssh-key。
内里有一些比方管理员邮件,或者其他非重要信息,就不贴图了。。。
配置入口如下:
https://i-blog.csdnimg.cn/direct/0ed9136dd64c477aba9c40a7df4ca64c.png
Publish over SSH(重点)

这里的配置是重点,主要配置Jenkins服务器的key和远程服务器的相关信息
安装插件:Publish Over SSH
Jenkins本机的信息

生成ssh-key的时候,如果有暗码,可以将暗码填入到“Passphrase”,否则可以将生成的“私钥”填入“Key”中,格式如下:
https://i-blog.csdnimg.cn/direct/4c835ea953e04c8b82549c351eeacadd.png
SSH Servers

这里配置远程的服务器
可以看到没有任何Key或者暗码的填写,放心,Jenkins会帮我们搞定一切,如果不想用key的方式,各人可以去“高级”内里,把“Use password authentication, or use a different key”勾上,自己去填写服务器的暗码等信息,固然内里还有一些服务器的基础配置信息,都是默认的。
Remote Directory:远程文件夹,默认会把文件传输到这个文件夹底下
https://i-blog.csdnimg.cn/direct/12a38f15bbce41df91cf5068cfd3610d.png
Ok,到这里,Jenkins相关的全部配置就完成了。。。
嗯?是不是忘了一件很重要的事,Jenkins跟服务器连接的key去哪里了?
So,接下来的重点就是在key的生成
System-Publish over SSH 的相关key

确保权限

查看Jenkins用户的权限是否精确:vim /etc/passwd
https://i-blog.csdnimg.cn/direct/2186ffd20dc04bb98d98d161bc06f735.png
生成本机的公钥,私钥,远程服务器的key

默认的文件夹应该是在:/var/lib/jenkins/.ssh,生成的一些文件可以在这里查看,上面配置的Jenkins服务器的秘钥,就在文件"id_rsa"中
https://i-blog.csdnimg.cn/direct/7789413eb8824f008784497b4745b41b.png
生成秘钥

ssh-keygen -t rsa
生成远程服务器的key

与远程服务器免密,这一次必要输入暗码,如有多个,就实行多次,会把key写入到默认的known_hosts中
ssh-copy-id -i id_rsa.pub 用户名@服务器IP
OK,OK,到这里真的全部基础配置都完成了,背面就舒畅的去打包部署吧。。。哈哈哈,牛马拿到一个趁手的工具,也是相称开心的
后端打包部署

源码管理

https://i-blog.csdnimg.cn/direct/722e8f22b48b4dd58035795825744c87.png
Build Steps

https://i-blog.csdnimg.cn/direct/1a1f0d4098be49078d5cb3eb4c602f93.png
构建后操作

下面的是Jenkins服务器中的操作和配置
https://i-blog.csdnimg.cn/direct/c0b682baba0141fd8aed31c44baaf902.png
Exec command是远程服务器中要实行的下令
app2是我在Publish over SSH 中配置的远程服务器的默认文件夹,test代表的是在app2中还会创建一个远程文件夹
   下面的下令很重要:
source /etc/profile
由于可能连接已往后会丢失下令的情况,以是必要刷新一次系统变量
https://i-blog.csdnimg.cn/direct/d240a06a491745bd81affe78d0735eb0.png
前端打包部署

源码管理

和后端的一样,都是配置git信息
Build Steps

https://i-blog.csdnimg.cn/direct/926eef9a2fe44f358e60cd3e224215b7.png
构建后操作

下面的是Jenkins服务器中的操作和配置
https://i-blog.csdnimg.cn/direct/424dbb276f044d5b9800f618efbc184f.png
Exec command是远程服务器中要实行的下令
html2是我在Publish over SSH 中配置的远程服务器的默认文件夹,test代表的是在html2中还会创建一个远程文件夹
https://i-blog.csdnimg.cn/direct/4df32835d6ae403e8d2b79b3bc643c34.png
OK,OK,OK,这次是真的真的结束了。。。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: jenkins发布文件到远程服务器