博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gitlab+jenkins环境搭建.md
阅读量:4696 次
发布时间:2019-06-09

本文共 8151 字,大约阅读时间需要 27 分钟。

gitlab+jenkins自动化部署环境搭建

环境说明

系统 主机 IP 安装软件
CentOS 7 study-1 192.168.100.51 gitlab、git
CentOS 7 study-2 192.168.100.52 jdk、maven、jenkins、git
CentOS 7 study-3 192.168.100.53 tomcat、mysql、jenkins、git

所有系统的selinux和iptables都已经关闭,同时需要做好时间同步,机器的hosts文件如下:

192.168.100.51 study-1 gitlab.study.com192.168.100.52 study-2192.168.100.53 study-3

下面还需要在study-1机器上生成的公钥和私钥复制到study-2和study-3主机上。

[root@study-1 ~]# ssh-keygen Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:f0:02:05:f7:5c:9c:66:d2:25:42:42:a4:11:dc:27:92 root@study-1The key's randomart image is:+--[ RSA 2048]----+|   .+B*.oooo.    ||    E=o+oo*.     ||    o..oo+       ||     . o         ||      . S        ||       .         ||                 ||                 ||                 |+-----------------+[root@study-1 ~]# ssh-copy-id root@192.168.100.52[root@study-1 ~]# scp .ssh/id_rsa* root@192.168.100.52:/root/.ssh[root@study-1 ~]# ssh-copy-id root@192.168.100.53[root@study-1 ~]# scp .ssh/id_rsa* root@192.168.100.53:/root/.ssh

gitlab主机配置

下载

下载地址:

安装

[root@study-1 ~]# yum install -y gitlab-ce-8.16.9-ce.0.el7.x86_64.rpm

配置

安装后修改配置文件中的如下内容:

[root@study-1 ~]# vim /etc/gitlab/gitlab.rb......external_url 'http://gitlab.study.com'......[root@study-1 ~]# gitlab-ctl reconfigure[root@study-1 ~]# gitlab-ctl start

启动后需要登录:http://gitlab.study.com 然后去设置用户root的密码这里不做介绍。之后需要进行密钥的配置,这个比较简单就不错介绍

测试程序配置

这里的测试代码是用的如下的内容:

下面是在gitlab克隆测试的代码:

tomcat主机配置

jdk安装

[root@study-3 ~]# tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/[root@study-3 ~]# ln -sv /usr/local/jdk1.7.0_79 /usr/local/java‘/usr/local/java’ -> ‘/usr/local/jdk1.7.0_79’[root@study-3 ~]# vim /etc/profile.d/java.shexport JAVA_HOME=/usr/local/jdk1.7.0_79export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar[root@study-3 ~]# . /etc/profile.d/java.sh[root@study-3 ~]# java -versionjava version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

tomcat安装

[root@study-3 ~]# tar xf apache-tomcat-7.0.72.tar.gz -C /usr/local/[root@study-3 ~]# ln -sv /usr/local/apache-tomcat-7.0.72 /usr/local/tomcat‘/usr/local/tomcat’ -> ‘/usr/local/apache-tomcat-7.0.72’[root@study-3 ~]# vim /etc/profile.d/tocmat.shexport PATH=$PATH:/usr/local/tomcat/bin[root@study-3 ~]# . /etc/profile.d/tocmat.sh[root@study-3 ~]# catalina.sh start

MySQL安装

[root@study-3 ~]# yum install -y perl-Data-Dumper[root@study-3 ~]# tar xf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz -C /usr/local/[root@study-3 ~]# ln -sv /usr/local/mysql-5.6.31-linux-glibc2.5-x86_64 /usr/local/mysql‘/usr/local/mysql’ -> ‘/usr/local/mysql-5.6.31-linux-glibc2.5-x86_64’[root@study-3 ~]# vim /etc/profile.d/mysql.shexport PATH=$PATH:/usr/local/mysql/bin[root@study-3 ~]# . /etc/profile.d/mysql.sh[root@study-3 ~]# cd /usr/local/mysql[root@study-3 mysql]# groupadd -r mysql[root@study-3 mysql]# useradd -r -g mysql -M -s /sbin/nologin mysql[root@study-3 mysql]# vim /etc/my.cnf[mysqld]datadir=/data/mydatasocket=/tmp/mysql.socksymbolic-links=0[mysqld_safe]log-error=/data/mydata/err.logpid-file=/var/run/mysql/mariadb.pid!includedir /etc/my.cnf.d[root@study-3 mysql]# mkdir -pv /data/mydata[root@study-3 scripts]# ./scripts/mysql_install_db --datadir=/data/mydata/ --basedir=/usr/local/mysql --user=mysql[root@study-3 mysql]# cp support-files/mysql.server /etc/init.d/mysqld[root@study-3 mysql]# chmod +x /etc/init.d/mysqld[root@study-3 mysql]# /etc/init.d/mysqld startStarting MySQL.. SUCCESS! 导入sql语句:[root@study-3 ~]# mysqlmysql> create database jeesns character set utf8;Query OK, 1 row affected (0.00 sec)mysql> use jeesnsDatabase changedmysql> source /root/jeesns.sql;

sql文件请在: 上面进行下载。

jenkins主机配置

下载路径:

jdk安装

[root@study-2 ~]# tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/[root@study-2 ~]# ln -sv /usr/local/jdk1.7.0_79 /usr/local/java‘/usr/local/java’ -> ‘/usr/local/jdk1.7.0_79’[root@study-2 ~]# vim /etc/profile.d/java.sh[root@study-2 ~]# . /etc/profile.d/java.sh[root@study-2 ~]# chown -R root.root /usr/local/java/[root@study-2 ~]# java -versionjava version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

maven安装

[root@study-2 ~]# tar xf apache-maven-3.5.0-bin.tar.gz -C /usr/local/[root@study-2 ~]# ln -sv /usr/local/apache-maven-3.5.0 /usr/local/maven‘/usr/local/maven’ -> ‘/usr/local/apache-maven-3.5.0’[root@study-2 ~]# vim /etc/profile.d/maven.sh[root@study-2 ~]# . /etc/profile.d/maven.sh[root@study-2 ~]# chown -R root.root /usr/local/maven/[root@study-2 ~]# mvn -versionApache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)Maven home: /usr/local/mavenJava version: 1.7.0_79, vendor: Oracle CorporationJava home: /usr/local/jdk1.7.0_79/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"

jenkins 安装

[root@study-2 ~]# yum install -y jenkins-2.46.2-1.1.noarch.rpm[root@study-2 ~]# vim /etc/init.d/jenkins···candidates="/usr/local/jdk1.7.0_79/bin/java  #需要添加jdk的路径/etc/alternatives/java/usr/lib/jvm/java-1.8.0/bin/java/usr/lib/jvm/jre-1.8.0/bin/java/usr/lib/jvm/java-1.7.0/bin/java/usr/lib/jvm/jre-1.7.0/bin/java/usr/bin/java"···[root@study-2 ~]# systemctl daemon-reload[root@study-2 ~]# /etc/init.d/jenkins startStarting jenkins (via systemctl):                          [  OK  ]

在浏览器输入:http://192.168.100.52:8080,会提示需要登录密码:

第一次登录需要的密码是安装自动生成的,路径已经说明在/var/lib/jenkins/secrets/initialAdminPassword文件中。

插件安装

实用插件

iOS专用:Xcode integration
Android专用:Gradle plugin
Gitlab插件:GitLab Plugin 和 Gitlab Hook Plugin
Git插件: Git plugin
GitBuckit插件: GitBuckit plugin
签名证书管理插件: Credentials Plugin 和Keychains and Provisioning Profiles Management
FTP插件: Publish over FTP
脚本插件: Post-Build Script Plug-in
修改Build名称/描述(二维码): build-name-setter / description setter plugin
获取仓库提交的commit log: Git Changelog Plugin
自定义全局变量: Environment Injector Plugin
自定义邮件插件: Email Extension Plugin
获取当前登录用户信息: build-user-vars-plugin
显示代码测试覆盖率报表: Cobertura Plugin
来展示生成的单元测试报表,支持一切单测框架,如junit、nosetests等: Junit Plugin
其它: GIT plugin / SSH Credentials Plugin
安装插件
点击左侧的“系统管理”----"管理插件"------“已安装”---查找需要安装的插件:git-client/scm-api/git/publish over SSH//ssh

jenkins设置

密钥的配置

[root@study-2 opt]# cp /root/.ssh/* /var/lib/jenkins/.ssh/[root@study-2 opt]# chown -R jenkins.jenkins /var/lib/jenkins/.ssh/

Global Tool Configuration 配置

点击左侧的“系统管理”----"Global Tool Configuration"
下面是jdk和git的配置:

下面是maven的配置:

Credentials 配置

点击左侧“Credentials”-->“System”-->在“Global credentials (unrestricted)”选择“Add Credentials”-->写上登录gitlab上的帐号密码。

系统设置

配置gitlab主机:

jenkins的访问地址,自动生成可以不用配置:

Publish over SSH配置:

Configure Global Security 配置

SSH Server 端口的修改,这里使用的是默认端口:

安装排错

构建时控制台报错如下:

Host key verification failed.lost connectionBuild step 'Execute shell' marked build as failureSSH: Current build result is [FAILURE], not going to run.Finished: FAILURE

原因:这个是由于ssh密钥配置的问题,虽然我们在系统配置中配置了私钥但是还是不行。原先我是用root运行jenkins,而rpm包是用普通用户运行。所以密钥需要拷贝至jenkins的家目录中及:/var/lib/jenkins/.ssh/中才能使用。

构建项目

创建

点击左侧的“新建”然后如下:

源码管理

构建

点击“增加构建步骤”-->选择“Execute shell”:

点击“增加构建步骤”-->选择“Invoke top-level Maven targets”:

配置了上面的信息后,maven会将打包的war包放在下面的这个目录中:

/var/lib/jenkins/jobs/study/workspace/target/
/var/lib/jenkins/:jenkins的工作目录
jobs/study/:jenkins管理study项目的目录
workspace:表示maven等插件的工作目录

点击“增加构建步骤”-->选择“Execute shell”:

构建后操作

选择“增加构建后操作步骤”-->选择“Send build artifacts over SSH”:

上面图片来自: 。之后就是保存了。我们还可以在上面中继续添加server,添加server之前需要提前做好设置。

执行构建的项目

下面就是选择刚才创建的项目并执行“立即构建”。

构建后我们还可以在“Console Output”中查看构建执行的状态。

下面是远程主机执行的脚本,没有做过多的判断只能能够让其运行起来就行了。

[root@study-3 jeesns]# cat /opt/deploy/deploy.sh #!/bin/bashtomcatPid=`ps aux |grep tomcat |grep -v grep|awk '{print $2}'`kill $tomcatPidsleep 5rm -rf /usr/local/tomcat/webapps/jeesns*cp /opt/deploy/jeesns/jeesns.war /usr/local/tomcat/webapps//usr/local/tomcat/bin/catalina.sh startecho '部署完毕'

转载于:https://www.cnblogs.com/cuchadanfan/p/6797112.html

你可能感兴趣的文章
试探算法
查看>>
jquery.validation.js 使用
查看>>
数据库高级查询
查看>>
C语言实现封装、继承和多态
查看>>
创建文件
查看>>
Nginx 相关介绍
查看>>
leetcode[33]Search in Rotated Sorted Array
查看>>
安卓上按钮绑定监听事件的两种写法
查看>>
OpenCV Shi-Tomasi角点检测子
查看>>
eval(PHP 4, PHP 5)
查看>>
readelf用法小记
查看>>
结对编程进展总结
查看>>
Java中JavaScript unescape与escape函数算法
查看>>
js的基础要点
查看>>
第一篇
查看>>
C#结构体和类的区别
查看>>
模板 - 数论函数
查看>>
windows Api AlphaBlend的使用方法
查看>>
mysql主从延迟高的原因
查看>>
Leetcode 47. Permutations II
查看>>