Jenkins学习——安装配置
一、学习资料
学习文档:https://www.w3cschool.cn/jenkins/
https://www.jianshu.com/p/5f671aca2b5a
学习视频:https://www.bilibili.com/video/BV1kJ411p7mV?p=10
二、安装Jenkins
- linux/unix
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’ sudo apt-get update sudo apt-get install jenkins
三、配置jenkins
问题:解决Jenkins与gitLab配置中找不到对应的插件问题.
Jenkins报错解决:TThere were errors checking the update sites: SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决方案:
- 找到Manage Jenkins >Manage Plugins Advanced.
将里面的URL:https://updates.jenkins.io/update-center.json
修改为http://updates.jenkins.io/update-center.json
或者
- 把jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址.
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
-
在找到Manage Jenkins >Manage Plugins Advanced将里面地址替换成国内地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
-
点击submit和check now
-
修改完之后需要重启jenkins.进入:http://localhost:8080/restart
-
耐心等待跳出登录界面.
第二步遇到问题:无法修改default.json文件.
- 权限问题:使用root登录修改.
2**.安装汉化插件.(Localization:Chinese(Simplified))**
点击Download now and install after restart [下载完之后立马重启]
遇到的问题:插件安装失败.
分析:java环境问题.
解决方案:更换jdk.【去官网下载最新的jdk安装包】
三、Jenkins配置
-
jenkins用户权限管理
-
安装Role-base插件
-
到Configure Global Security 中找到授权策略,找到刚刚安装的Role-base,使每个用户有自己的权限。(默认设置所有用户拥有所有的权限)。
-
创建角色:
-
点击Manage Jenkins 》Manage and Assign Roles >Manage Roles
-
创建一个基础角色(baseRole)和两个项目角色(role1,role2);
-
保存
-
-
创建用户列表
- 点击Manage Jenkins 》Manage Users 》用户列表
- 新建连个用户(abc,jack)(密码同)。
- 授予角色。进入Manage Jenkins 》Manage and Assign Roles》Assign Roles.新建一个Global roles角色(abc)并分配baseRole(登录权限)在分配一个项目的权限(role1)。
- 保存
- 新建两个项目(IDcast01.ID01)。选择Freestyle project. 确定。
- 查看创建的两个项目:My View >all.
- 退出,使用Jack账户登录。进行测试。jack可以访问IDcsat01项目权限。
-
-
安装凭证插件。Credentials Binding,
-
配置一个自动化部署的的java程序(springBoot+maven+gitHub):
配置参考次博客:https://www.cnblogs.com/wfd360/p/11314697.html
- 配置必要的插件:Publish over SSH,Deploy to container.
- 安装:git,gitLab插件.
遇到的问题:
-
安装的Jenkins没有Global Tool Configuration(全局工具配置)的功能——没有安装以上插件【解决】
-
ConfigureSystem(系统设置)没有Publish over SSH功能——没有安装此插件。【解决】
-
Maven配置的文件路径是什么?没有用到java暂时不做配置.
-
用户类型凭证:
-
创建凭证:jenkins-》凭证-》系统-》全局凭证-》添加凭证
类型:Username with password
用户名,密码——输入Gitlab的用户信息。
-
进入一个项目配置。
General——》源码管理——Git
Repository URL 使用gitlab clone中的http路径。会报错。
在Credentials证书中选择刚刚我们填入的证书,即可不报错。
-
-
ssh私钥凭证。
可参考博客:https://blog.csdn.net/weixin_34198762/article/details/90364295
-
生成公钥和私钥。
ssh-keygen -t rsa
查看公钥和私钥。
cd ~/.ssh
ls
cat /root/.ssh/id_rsa
``cat /root/.ssh/id_rsa.pub`
或者使用这一句话:
cat ~/.ssh/id_rsa.pub
-
把生成的公钥放到gitLab中
点击用户头像——》Setting——》SSH Keys将公钥粘贴到上面添加。
-
把私钥配置到jenkins上。
进入Manage Jenkins——》凭据——》系统——》全局凭据(unrestricted)——》添加凭据
类型:SSH Username with private key
描述:以后方便辨认
Username:使用的那个用户登录的就使用哪个
private key : Enter directly
key:复制私钥粘贴上来。
-
添加一个新项目做测试(text01)。
源码管理:git。
Repository URL:复制ssh clone链接。
选择Credentials证书:ssh凭证。
-
开始第一个程序
-
从gitlab上克隆一个版本库。
mkdir FirstProgram
cd FirstProgram
git clone https://gitlabwh.uniontech.com/ut003085/grid.git
-
创建一个文件夹
cd grid
echo “Hello” > README.md
-
将文件夹添加到仓库
git add README.md
-
提交文件到远程仓库
git commit -m ''我的第一个git项目”
-
最后推送到gitlab上
git push origin master
-
配置.c文件项目>构建>选择Execute shell >输入linux运行.c文件的命令
gcc helloWorld.c -o helloWorld
./helloWorld.c