1,安装jdk,此方法为以防万一最好重新配置环境变量,默认安装路径/usr/lib/jvm/java
#Jenkins需要依赖JDK,所以先安装JDK1.8
yum install java-1.8.0-openjdk* -y
2,环境变量
vim /etc/profile
#添加
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA _HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
source /etc/peofile
#测试
java -version
3,获取Jenkins安装包(jenkins-2.277.4-1.1.noarch.rpm)
https://jenkins.io/zh/download/
4,把安装包上传到服务器,进行安装
rpm -ivh jenkins-2.277.4-1.1.noarch.rpm
5,修改Jenkins配置
vim /etc/sysconfig/jenkins
#修改内容如下:注意:如果用户使用默认,则需要在系统上创建jenkins用户
JENKINS_USER="root"
JENKINS_PORT="8888"
6,启动
systemctl start jenkins
7,打开浏览器访问
http://IP地址:8888
使用
8,刚进去会看到此页面,将下面路径复制,使用命令查看 (cat /var/lib/jenkins/secrets/initialAdminPassword),查看到密码后,复制粘贴到密码框,即可登录进去(注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口)
9,跳过插件安装,因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装
10,此页面,点击 无,然后安装
11,添加一个管理员账户,并进入Jenkins后台(自己随便写),点击 保存并完成,下个页面也一样
12,Jenkins密码遗忘处理
//修改配置文件安全功能禁用
vim /var/lib/jenkins/config.xml
<useSecurity>false</useSecurity>
//重启jenkins服务
systemctl restart jenkins
可以直接登录修改账号密码
修改jenkins中已有的用户名和ID
vim /var/lib/jenkins/users/users.xml
13,持续集成环境(2)-Jenkins插件管理
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。
修改Jenkins插件下载地址(选做)
Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址:页面中点击 Jenkins --> Manage Jenkins --> Manage Plugins,点击Available,选择第二个(change...)
14,接着修改地址文件,替换为国内插件地址
cd /var/lib/jenkins/updates
sed -i 's/https:\/\/updates.jenkins.io\/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
15,执行过后,查看default.json,搜索“mirrors.tuna.tsinghua.edu.cn”,如果没有,则可以选择自己重新修改
http:// 后面改为下面这样
16,进入网站https://mirrors.tuna.tsinghua.edu.cn/jenkins查看一下。点击war/ 查看版本的信息。我这里当时是2.332.2版本 ,但经过网站查看,当时并没有2.332.2但是有2.332版本,所以需将上面内容的版本改为2.332
17,最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
Sumbit后,在浏览器输入: http://IP地址:8888/restart ,重启Jenkins
18,下载中文汉化插件 Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"
19,重启Jenkins后,就看到Jenkins汉化了!(PS:但可能部分菜单汉化会失败)
20, 持续集成环境(3)-Jenkins用户权限管理 。我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限安装Role-based Authorization Strategy插件
21,开启权限全局安全配置
授权策略切换为"Role-Based Strategy",保存
22,点击"manage and assign roles" ---> "Manage Roles"
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 Item roles(项目角色): 针对某个或者某些项目的角色 Slave roles(奴隶角色):节点相关的权限
23,我们添加以下三个角色:
baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
保存
role1:该角色为项目角色。使用正则表达式绑定"apple.*",意思是只能操作apple开头的项目。role2:该角色也为项目角色。绑定"orange.*",意思是只能操作orange开头的项目。
24,创建用户 在系统管理页面进入 Manage Users 分别创建两个用户:jack和kali
25,给用户分配角色
系统管理页面进入Manage and Assign Roles,点击Assign Roles
绑定规则如下:
kali用户分别绑定baseRole和role1角色
jack用户分别绑定baseRole和role2角色
保存
26,创建项目测试权限 以jerry管理员账户创建两个项目,分别为apple01和orange01
kali用户登录,只能看到apple01项目
jack用户登录,只能看到orange01项目
27,持续集成环境(4)-Jenkins凭证管理
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便
Jenkins可以和这些第三方的应用进行交互。
安装Credentials Binding插件
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
28,安装插件后,左边多了"凭证"菜单,(不同版本可能会不一样)在这里管理所有凭证
可以添加的凭证有5种:
Username with password:用户名和密码
SSH Username with private key: 使用SSH用户和密钥
Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token Certificate:通过上传证书文件的方式
常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH密钥)
29,接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。(这里需要打开已安装gitlab的那个服务器,并且也上传了一个简单项目)
安装Git插件和Git工具,为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具
30,CentOS7上安装Git工具:
yum install git -y
#安装后查看版本
git --version
31,创建凭证 Jenkins->manage credentials-->全局->添加凭证
选择"Username with password",输入Gitlab的用户名tom和密码,点击"确定"。
32,创建一个FreeStyle项目:新建任务->构建自由风格>确定
找到"源码管理"->"Git",在Repository URL复制Gitlab中的项目URL,下面第一个图是gitlab中的
点击立即构建 ——> 控制台输出
33,查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中
34, SSH密钥类型
35,使用root用户生成公钥和私钥(过程中直接回车键)
ssh-keygen -t rsa
36,在/root/.ssh/目录保存了公钥和使用 id_rsa:私钥文件 id_rsa.pub:公钥文件
37,把生成的公钥放在Gitlab中
ssh-copy-id root@gitlab服务器的ip地址
38,在gitlab页面中以root账户登录gitlab->点击头像->Settings->SSH Keys
复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"
39,创建凭证 Jenkins->manage credentials-->全局->添加凭证 配置私钥
类型为"SSH Username with private key",把刚才生成私有文件内容复制过来
40,新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证
41,点击立即构建 ——> 控制台输出
查看/var/lib/jenkins/workspace/目录 会有一个test02项目就可以了