赞
踩
Jenkins需要依赖JDK,检查机器是否安装了JDK,可以使用 javac -version
所以先安装JDK11
Centos 先检查是否有安装JDK的版本,如有安装,则需要删除旧版本;
命令行 rpm -qa | grep java 会显示已经安装的JAVA package;
若已经安装了就版本,则需要先删除,删除方法是通过如下命令:
rpm -qa nodeps [java package]
其实我们通常不用都安装这些包,只要安装如下三个就可以了;
java-11-openjdk-headless-11.0.16.0.8-1.el7_9.x86_64
java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64
java-11-openjdk-devel-11.0.16.0.8-1.el7_9.x86_64
若你不清楚,建议考虑安装所有的包;安装命令如下:
yum install -y java-11-openjdk* -y
我是指安装了三个软件包,安装方法如下:
yum install -y java-11-openjdk-headless-11.0.16.0.8-1.el7_9.x86_64 java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64 java-11-openjdk-devel-11.0.16.0.8-1.el7_9.x86_64
安装完成,安装目录为:/usr/lib/jvm
安装好后,编辑配置文件,设置环境变量:vi /etc/profile
在profile文件中添加如下内容
#set java environment
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64
JRE_HOME=$JAVA_HOME
CLASS_PATH=.:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
保存退出
让修改生效:source /etc/profile
验证 Java 安装版本及结果,显示如下表明已经成功安装;
这里我们用阿里云镜像拉取
wget https://mirrors.aliyun.com/jenkins/redhat/jenkins-2.350-1.1.noarch.rpm
rpm -ivh jenkins-2.350-1.1.noarch.rpm
到这里,jenkins已经安装完,
默认安装目录: /usr/lib/jenkins
工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME)
打开配置文件:vi /etc/sysconfig/jenkins
修改内容如下:
JENKINS_USER=“root”
JENKINS_PORT=“8888”
JENKINS_USER 必须修改,否则权限不足
JENKINS_PORT可以不修改,为了避免与tomcat服务器端口冲突,此处建议还是要改
systemctl enable Jenkins
vi /usr/lib/systemd/system/jenkins.service
启动jenkins来查看jenkins所运行的端口
systemctl start jenkins
systemctl status jenkins
jenkins端口修改成功,但此时因为防火墙问题,jenkins启动超时;
需要开放防火墙,才可以访问 Jenkins;
firewall-cmd --add-service=http --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload
cat /var/lib/jenkins/secrets/initialAdminPassword
将密码COPY 后输入解锁Jenkins 版面;完成解锁。
至此,jenkins的安装配置已经完成
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。
Manage Jenkins->Manage Plugins->在"available"tab列搜索"Chinese"->下载后重启
重启jenkins后,可以看到汉化成功,不过只能支持部分汉化,没有做到全量汉化;
当然,你也可以不用汉化;
安装[Role-based Authorization Strategy]插件
Jenkins用户权限管理需要使用到【Role-based Authorization Strategy】插件,下面进行安装
安装重启后,在Manage Jenkins管理页面就会看到多出个Configure Glogal Security的安全配置选项
开启权限全局安全配置,授权策略选择为【Role-Based Strategy】后保存
这里有三种角色,分别对三种角色进行介绍。
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Item role(项目角色):针对某个或者某些项目的角色
Node role(节点角色):针对节点相关的权限
接下来我们创建三个角色。
baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,则会报错误
role1:该角色为项目角色。使用正则表达式绑定"auto.",意思是只能操作auto开头的项目。
role2:该角色也为项目角色。使用正则表达式绑定"test.",意思是只能操作test开头的项目。
分别新增zhangsan,lisi两个用户
为zhangsan绑定role1角色,为lisi绑定role2角色
管理员创建两个项目,auto001,test001
用zhangsan用于登录的结果:
用lisi用户登录的结果:
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件。
安装好后,在manage Jenkins中就多了【凭据配置】和【Manage Credentials】选项
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秘钥)
为了让Jenkins支持从Gitlab拉取源码,需要在Jenkins汇总安装Git插件以及在CentOS7服务上安装Git工具
(5)查看/var/lib/jenkins/workspace/ 目录,发现已经从Gitlab成功拉取了代码到Jenkins中。
在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
下载完后解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
将解压文件copy 到 /opt 目录下:
mv apache-maven-3.6.3 /opt
配置环境变量
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
查看配置是否生效
source /etc/profile #使配置生效
mvn -v #查看Maven版本
mkdir /opt/repository #创建本地仓库目录
chmod +777 /opt/repository # 给路径加权限
vi /opt/apache-maven-3.6.3/conf/settings.xml
(1) 将本地仓库地址修改为:/opt/repository
(2)追加maven仓库镜像
<mirror>
<id>alimaven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/repositories/public/</url>
</mirror>
使用jenkins前面测试的test002项目进行配置
构建->增加构建步骤->Execute Shell
输入命令:mvn clean package
完成后进行构建项目:
查看项目构建日志(控制台输出)
构建成功了,接下来到/opt/repo目录下查看是否下载依赖包成功,可以看到相关的依赖包下载成功
再查看jenkins工作空间下jar包是否生成成功
ls /var/lib/jenkins/workspace/test002/target/
成功访问到了项目,自此,jenkins调用maven编译打包已完成
截止到目前已经完成如下四项工作:
第一:建立虚拟机
第二:建立 k8s 集群
第三:建立 gitlab 代码仓库
第四:建立 jenkins 及 maven 打包
第五:制作镜像并发布到 k8s 集群()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。