环境准备:

System:CentOS 7.3 (最小化安装)
JDK: 8u161 (1.8_161)
tomcat: 8.5.29
Jenkins: Jenkins 2.107.1
Gitlab: 10.6.3-ee
node1: 192.168.1.10
node2: 192.168.1.11
修改IP为静态地址
~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改
BOOTPROTO=static
ONBOOT=yes 添加:
IPADDR=192.168.1.10(11)
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
修改resolv.conf文件
nameserver 114.114.114.114
重启网络服务
~]# systemctl restart network
检查静态ip是否生效,并且可以连接外网
~]# ifconfig | egrep 'ens33|eno1677736' -A 1
~]# ping www.baidu.com
~]# ping 192.168.1.1

以下配置均为node1节点

一、 安装Jenkins

jenkins官网:
https://jenkins.io/download/ 1、下载最新稳定版的Jenkins.war包
~]# cd /usr/local/src/jenkins/
jenkins]# wget -c http://mirrors.jenkins.io/war-stable/latest/jenkins.war 2、安装JDK环境
jdk官网:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 当前最新稳定版(我是找到最新稳定版以后下载到电脑上,通过xftp发到服务器上,然后解压安装,下载的步骤我这里略过了)
jenkins]# tar -zxf jdk-8u161-linux-x64.tar.gz 为最新版的jdk创建软连接,以后更新jdk的时候,可以通过软连接把最新版的指向jdk即可
jenkins]# cp -a /usr/local/src/jenkins/jdk1.8.0_161 /usr/local
jenkins]# ln -sv jdk1.8.0_161/ /usr/local/jdk 编辑jdk的环境变量
jenkins]# vim /etc/profile.d/java.sh java.sh中需要添加的内容
JAVA_HOME=/usr/local/jdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH 最新版jdk环境变量生效
jenkins]# source /etc/profile.d/java.sh 验证配置的JDK
jenkins]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mod 3、安装tomcat 下载tomcat
~]# cd /usr/local/src/jenkins/;wget -c http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.29/bin/apache-tomcat-8.5.29.tar.gz 解压tomcat
jenkins]# tar -zxf apache-tomcat-8.5.29.tar.gz
jenkins]# cp -a apache-tomcat-8.5.29 /opt/jenkins;cd /opt/jenkins 启动tomcat
jenkins]# /opt/jenkins/bin/startup.sh 访问tomcat测试是否能够使用
如果不能访问,请把8080的端口添加到防火墙规则中 浏览器中访问192.168.1.10:8080出现tomcat的页面即可 把jenkins.war拷贝到tomcat的工作目录下
jenkins]# cp -a /usr/local/src/jenkins/jenkins.war /opt/jenkins/webapps/ 访问jenkins的页面,并初始化安装jenkins(要等待一会~)
http://192.168.1.10:8080/jenkins
页面中需要找到管理员密码,并输入才能继续

通过cat密码获取管理员密码,并如输入下面的文本框(cat /root/.jenkins/secrets/initialAdminPassword)

####### 安装推荐插件(漫长的等待过程...等待ing..)







以上的步骤,可以保证Jenkins的部署成功,下面我们将要部署maven

二、 安装maven

maven的官网
http://maven.apache.org/download.cgi 下载maven
~]# cd /usr/local/src/jenkins/;wget -c http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz 解压maven
jenkins]# tar -zxf apache-maven-3.5.3-bin.tar.gz 配置环境变量maven.sh
jenkins]# cp -a /usr/local/src/jenkins/apache-maven-3.5.3/ /opt/maven jenkins]# vim /etc/profile.d/maven.sh 添加如下内容
export MAVEN_HOME=/opt/maven
export MAVEN=$MAVEN_HOME/bin
export PATH=$MAVEN:$PATH 载入maven的环境变量
jenkins]# source /etc/profile.d/maven.sh 测试maven的环境是否成功
jenkins]# mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T14:49:05-05:00)
Maven home: /opt/maven
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_161/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

以上就是maven的安装过程,可以保证maven的正常使用

三、 安装git

哈哈哈哈,这个好简单的,直接用yum安装即可,不过最好提前配置好yum源(我个人喜欢用epel的源)
jenkins]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 安装git
jenkins]# yum install -y git

四、 配置Jenkins

1、配置安装Jenkins中的插件,为了能让ssh maven gitlab使用啊啊啊啊~~

安装插件
1、SSH
2、Publish over ssh
2、Maven Integration
3、Deploy to container
4、GitLab

2、Jenkins中manve git jdk ssh工具配置

配置jdk的环境

配置git环境(git以为是用yum安装的,所以他的运行地址,可以通过which git来获取)

配置maven环境

配置publish over ssh环境
1、首先我们先要在jenkins服务器上生成秘钥,然后利用秘钥要进行免密登录
2、在jenkins服务器上执行ssh-keygen -t rsa,一路回车就可以 一路回车的话密码为空,这样就在/root/.ssh/下生成的两个文件id.rsa(私钥)和id.rsa.pub(公钥),我们需要把公钥的内容写到测试服务器(tomcat服务器上,我这里在同一台,按理说可以是一台独立的tomcat服务器,根据自己的环境修改)的/root/.ssh/authorized_keys文件中 如果没有就新建一个,接下来我们开始配置 jenkins]# ssh-keygen -t rsa
jenkins]# cat ~/.ssh/id_rsa.pub >> /root/.ssh/authorized_key
jenkins]# ssh-copy-id 192.168.1.10

五、 构建Maven项目

1、新建Maven项目(构建maven项目前,请确保gitlab已经设置完毕,如果没设置,请先移步到构建gitlab环境,设置完毕以后返回这里继续)

2、设置任务构建规则

以下配置均为node2节点

六、 构建gitlab环境

1、安装ssh服务,并配置防火墙规则
~]# yum install -y curl policycoreutils-python openssh-server
~]# systemctl enable sshd
~]# systemctl start sshd
~]# firewall-cmd --permanent --add-service=http
~]# systemctl reload firewalld
2、下载安装gitlab
~]# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
~]# yum install -y gitlab-ee
3、修改gitlab的配置文件
~]# vim /etc/gitlab/gitlab.rb

修改以下配置
external_url 'http://192.168.1.11:11001'
unicorn['port'] = 11001
prometheus['listen_address'] = 'localhost:11002'
4、 启用gitlab(要等那么一会会会~~~~~,五分钟....十分钟...or...more then later)
~]# gitlab-ctl reconfigure
~]# gitlab-ctl restart

####### 5、 修改gitlab的密码(浏览器访问:http://192.168.1.11:11000/)

####### 6、 访问gitlab(用户名是root,密码为刚刚设置的密码)

####### 7、gitlab中创建一个新的项目



####### 8、gitlab上配置公钥

~]# ssh-keygen -t rsa

~]# cat .ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAP/siZIMYERrxow6S/ugPDm2M6NaqPW0nxPxLjFCKwv38NnoFWzaC6NWEfxF0YgGRr9+4TGcYV5N3CIa0+z/hBu5juZ6grm6oVvQ35ZuX1+AC9Bn5szDLZKjq9VIIenLGjTk2C4/Gppe1P5fm8gqhUDjltAir4nRtUETC7w/qOBB/rqMIIpkkNTaXErafpJ/u94nJqZ0TezBb/QKv6a14FkLov7qdvkqGCT4aT+7W2zZp+ppquJA7ns2MMFw1ZIXa7z1UwDIV/tR8F/9KbgD7t6ri7hlqdQy/15TCQ6tzrhaXcQnEQjKyNcatt0P9iX5bHBXX5gncxCS5F76ylgtf root@gitlab

####### 9、测试gitlab中的git账号是否可以进行拉取

~]# yum install git -y

~]# git clone git@192.168.1.11:root/Benz.git

Cloning into 'Benz'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (3/3), done.

####### 10、需要回到node1(Jenkins)中,设置gitlab的私钥,Jenkins中的key是gitlab中的私钥

Jenkins自动构建gitlab项目(jenkins+maven+giltlab+tomcat)的更多相关文章

  1. jenkins 自动构建gitlab项目

    安装的plugin: - kubernetes:1.7.1    - workflow-aggregator:2.5    - workflow-job:2.21    - credentials-b ...

  2. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  3. jenkins自动构建前端项目(window,vue)

    我们把一个多人协作的vue前端项目发布服务器,一般要经过以下步骤: git更新最新的代码 构建项目 把构建后的代码上传到服务器 如果用jenkins来构建的话,只需要点击一次构建按钮,就可以自动完成以 ...

  4. CentOS 7.2安装Jenkins自动构建Git项目

    1.环境 本文使用VMWare虚拟机进行实验. 最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器" ...

  5. Linux下Jenkins与GitHub自动构建Node项目(Vue)

    根据上篇文章<Linux下Jenkins与GitHub自动构建NetCore与部署>,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发, ...

  6. Gitlab源码库里代码提交后,如何触发jenkins自动构建?

    版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...

  7. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  8. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  9. 实战:向GitHub提交代码时触发Jenkins自动构建

    当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...

随机推荐

  1. BOM定时器,onresize

    定时器 <body> <button onclick="stop()">吃药</button> <button onclick=" ...

  2. Elastic-Job 配置介绍

    作业配置 与Spring容器配合使用作业,可以将作业Bean配置为Spring Bean,可在作业中通过依赖注入使用Spring容器管理的数据源等对象.可用placeholder占位符从属性文件中取值 ...

  3. CentOS7 下设置静态IP

    1.更改虚拟机网络适配器 虚拟机-->设置-->网络适配器  网络连接选择NAT模式 2.设置虚拟网络编辑器 编辑-->虚拟网络编辑器 3.修改本地VMnet8IP 4.修改linu ...

  4. vue - 列表显示(列互相影响,全选控制,更新数据)

    要实现的效果为:全选,且列A列B互相影响,列B勾选则列A一定勾选,列A取消勾选,则相应列B取消勾选 数组 vue中列表渲染有些不是相应式的 var list=[ { a:'aaaa', b:'ddd' ...

  5. deep learning入门:感知机

    权重和偏置 import numpy as np # 求x1 and x2 def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5 ...

  6. (转) NAS(神经结构搜索)综述

    NAS(神经结构搜索)综述 文章转载自:http://www.tensorinfinity.com/paper_136.html 本文是对神经结构搜索(NAS)的简单综述,在写作的过程中参考了文献[1 ...

  7. LintCode 521.去除重复元素

    LintCode 521.去除重复元素 描述 给一个整数数组,去除重复的元素. 你应该做这些事 1.在原数组上操作 2.将去除重复之后的元素放在数组的开头 3.返回去除重复元素之后的元素个数 挑战 1 ...

  8. python对Excel表格操作

    操作场景,给一个Excel表格随机生成10万个手机号码 python中常见的对Excel操作模块 xlwt module 将数据写入Excel表 xlrd module 读取Excel表格 xlsxw ...

  9. radio(单选框)反复选中与取消选中

    做个记录,以便需要拿取 <script type="text/javascript"> $(function(){ 第一种 $('input:radio').click ...

  10. poj1151 Atlantis (线段树+扫描线+离散化)

    有点难,扫描线易懂,离散化然后线段树处理有点不太好理解. 因为这里是一个区间,所有在线段树中更新时,必须是一个长度大于1的区间才是有效的,比如[l,l]这是一根线段,而不是区间了. AC代码 #inc ...