CentOS7 Jenkins部署 Maven项目构建测试

版权声明:本文为原创文章,转载请标明出处。 https://blog.csdn.net/zwjzqqb/article/details/82378528

简单说明:

依据《CentOS7实验机模板搭建部署》克隆实验机,IP:192.168.77.130
Jenkins安装包下载地址:https://pkg.jenkins.io/redhat-stable/

部署搭建:

# 主机名和hosts配置
HOSTNAME=jenkins
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts

# 配置安装jdk1.8
cd /usr/local/
tar -xf /tmp/jdk-8u172-linux-x64.tar.gz
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_172'>>/etc/profile
echo 'export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib'>>/etc/profile
echo 'export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH'>>/etc/profile
source /etc/profile
java -version

# 安装git命令
yum -y install git

# 配置安装Maven
cd /usr/local/
unzip /tmp/apache-maven-3.5.2-bin.zip
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.5.2'>>/etc/profile
echo 'export PATH=$PATH:$MAVEN_HOME/bin'>>/etc/profile
source /etc/profile
mvn --version

# 配置Maven,指向Nexus,需要开发支持,可暂时不做
cd /usr/local/apache-maven-3.5.2/conf
cp -av settings.xml{,.bak}
# 相应的配置可由开发提供,可以从已有的Nexus环境中寻找Maven的该配置,替换即可

# 导入yum仓库安装Jenkins
cd /tmp
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum -y install jenkins

# 配置启动Jenkins
sed -i 's|^\(JENKINS_JAVA_CMD=\).*$|\1"/usr/local/jdk1.8.0_172/bin/java"|g' /etc/sysconfig/jenkins
sed -i 's|^\(JENKINS_PORT=\).*$|\1"18080"|g' /etc/sysconfig/jenkins
chkconfig jenkins on
/etc/init.d/jenkins start
# Jenkins家目录:/var/lib/jenkins
# 系统用户jenkins无法登录,可以修改/etc/passwd后使用该用户登录到系统
# 后续需要配置jenkins用户ssh免密登录Gitlab
# 日志位置:/var/log/jenkins/jenkins.log

网页配置:

这里写图片描述
根据提示,在服务器上找到对应的密码文件,查看内容,填入。

这里写图片描述
安装推荐的插件,服务器需要配置访问公网的权限。

这里写图片描述
创建一个管理员账号,邮箱地址可以随意写。

这里写图片描述

这里写图片描述
安装一些可能会用到的插件:Publish Over SSH、Maven Integration、SSH、GitLab。
有些可能已经安装,如果再可选插件标签中找不到,有可能在已安装标签中找到。

配置Jenkins关联安装的JDK、Maven等软件:
这里写图片描述
这里写图片描述
这里配置可供Jenkins使用的JDK路径,别名最好命名为jdk

这里写图片描述
git命令由yum安装,并且已经在默认的环境变量下,可以不进行配置

这里写图片描述
这里配置可供Jenkins使用的Maven路径,别名最好命名为maven

Jenkins和Gitlab对接:

# 在Jenkins主机上对接Gitlab
# 因为Gitlab进行了https的配置,因此要关闭git客户端系统级别的对ssl的认证
# 并且配置Gitlab域名的解析
git config --system http.sslVerify false
echo '192.168.77.10 gitlab.vincent.com'>>/etc/hosts

# 进一步配置Jenkins主机的jenkins用户访问gitlab的ssh-key方式:
sed -i 's|/var/lib/jenkins:/bin/false|/var/lib/jenkins:/bin/bash|g' /etc/passwd
su - jenkins
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa
cat *.pub >> authorized_keys
chmod 600 authorized_keys
ssh -o StrictHostKeyChecking=no 127.0.0.1 date
cat authorized_keys
# 该内容需要记录下来,下一步贴入gitlab中
exit

# 依据《Git Bash 简单使用和Windows下ssh通道免密登录配置简录》添加密钥,然后测试
su - jenkins
cd /tmp/
mkdir GitLabTest
cd GitLabTest
git clone [email protected]:root/test.git
git config --global user.name "vincent"
git config --global user.email "[email protected]"
cd test
echo vincent>README.md
git add README.md
git commit -m "add Vincent README"
git push -u origin master

配置Jenkins使用Git操作Gitlab时的相关用户信息,也就是Gitlab的root用户相关的信息:
这里写图片描述
这里写图片描述

配置http或者https通道的Gitlab连接凭据:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

Maven项目构建测试:

1° Gitlab的测试代码仓库上传一个测试用的pom.xml文件,该文件来源于网络:
这里写图片描述

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.companyname.projectgroup</groupId>
      <artifactId>project</artifactId>
      <version>1.0</version>
      <dependencies>
         <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
         </dependency>
      </dependencies>  
</project>

2° 配置一个Maven项目进行构建测试:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里是使用ssh-key的方式连接gitlab进行构建,因为已经配置了ssh-key,不需要再选择认证方式
这里写图片描述
这里是使用https的方式连接gitlab进行构建,选择配置的连接gitlab的https凭证
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
最终构建结果如图,生成了测试用的jar包和对应路径

[TOC]

猜你喜欢

转载自blog.csdn.net/zwjzqqb/article/details/82378528