jenkins是一款集成的CI/CD工具,有很多好用的插件,用于自动的代码拉取-代码审查-编译构建-发布。另外也集成了k8s的发布。
安装jenkins
1.安装JDK
Jenkins需要依赖JDK,所以先安装JDK1.8
yum install java-1.8.0-openjdk* -y
安装目录为:/usr/lib/jvm
2. 获取jenkins安装包
下载页面:https://www.jenkins.io/zh/download/
3. 安装jenkins
rpm -ivh Jenkins.rpm
4. 修改Jenkins配置
vim /etc/sysconfig/Jenkins
修改如下内容:
JENKINS_USER=”root”
JENKINS_PORT=”8888”
5. 启动Jenkins
systemctl start Jenkins
6. 把端口加进防火墙
sudo firewall-cmd --permanent --zone=public --add-port=8888/tcp
sudo firewall-cmd --reload
7.获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
8.跳过插件安装(不然会非常慢,跳过之后改成国内的)
安装中文插件
1.修改Jenkins插件下载地址
改为国内地址
Jenkins->Manage Jenkins->Manage Plugins ,点击Available
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
再回到界面
将Advanced里面的url改成https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
2.重启jenkins
方式1 改浏览器后缀8888/restart
方式2 systemctl restart jenkins
3.安装中文汉化插件
Jenkins->Manage Jenkins->Manage Plugins ,点击Available,搜索“Chinese”
需下载完成后重启安装才可以生效
安装用户权限插件
1.安装Role-based-Authorization Strategy插件
不重启安装
2.开启权限全局安全配置
系统管理->全局安全配置->授权策略。
更改为Role-Based Strategy
3.创建角色
系统管理-> Manage and Assign Roles->Manage Roles
全局角色
项目角色
节点角色
需要赋予权限,pattern里面可以添加通配符,设定角色可以访问的目录和项目
4.创建用户
系统管理-> 管理用户->新建用户
5.给用户分配角色
系统管理-> Manage and Assign Roles->Assign Roles
global role里面加入各个用户,并且给与相应的权限,有的是管理员,有的是简单使用者。只有baseRole的read权限
item role里面将各个用户分配给各个项目
6.新建项目。
建了项目名字之后,自动会根据通配符分配角色和用户。
凭证配置和管理
凭证可以用来存储需要密文保护的数据库密码、Gitlab密码,Docker私有仓库密码等,以便jenkins可以和这些第三方的应用进行交互
1.安装Credentials Blinding插件
无重启安装后,左边多出了“凭证”菜单,在这里管理所有凭证
5种凭证类型
Username with password 用户密码名。如gitlab
SSH Username with private key SSH免密登录。gitlab和github也支持免密登录
Secret file 需要保密的文本文件。使用时jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的secret file就会被删除。
Secret text 密钥文本串。如钉钉机器人或github的api token
Certificate 通过上传证书文件的方式
接下来以使用Git工具到Gitlab拉取项目源码为例,演示jenkins如何管理Gitlab的凭证。
2.安装Git插件和Git工具
为了让jenkins支持从Gitlab拉取源码,需要安装Git插件以及在Centos上安装Git工具
Git插件安装:
Centos上安装git工具:
yum install git -y
凭证类型1:普通用户密码凭证
添加成功后,凭证界面就有此凭证了
新建项目,此时会出现Git选项,Repository URL地址就为gitlab中的对应项目HTTP方式克隆地址。
凭证类型2:SSH密钥类型
1) 使用root用户生成公钥和私钥
ssh-keygen -t rsa
在/root/.ssh/目录中保存了公钥和私钥
id_rsa:私钥文件
id_rsa.pub:公钥文件
公钥复制到gitlab的秘钥管理中去。
私钥在jenkins凭证里面添加即可。
用cat id_rsa命令可查看内容
注:以上我们完成了初步的搭建,可以做到手动拉取代码的动作。利用pipeline,编写相关插件和运行脚本,后面可以配置成为集自动拉取代码,代码审查,自动编译构建,发布的一体化工具。