Jenkins+gitlab自动部署学习笔记

环境:centos7.3

IP:192.168.2.109

搭建gitlab官方推荐内存至少4G,测试过内存小了确实带不动,如果搭这一套在服务器上的话个人觉得8G以上最好。

防火墙、selinux均已关闭

一.环境安装

1. 将下载好的jdk+maven+nodejs上传到服务器上,并解压安装

下载jdk网址如下:

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
wget https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-x64.tar.gz

2.创建解压目录并解压

mkdir -pv /usr/java
tar xvf jdk-8u221-linux-x64.tar.gz -C /usr/java/
tar xvf apache-maven-3.6.0-bin.tar.gz -C /usr/java
 tar xvf node-v12.9.0-linux-x64.tar.gz -C /usr/java/

 

3.配置环境变量

vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_221

export maven_HOME=/usr/java/apache-maven-3.6.0

export nodejs_HOME=/usr/java/node-v12.9.0-linux-x64

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin:$maven_HOME/bin:$nodejs_HOME/bin:

source /etc/profile

检查一下

# java -version

# javac -version

# mvn -v

# node -v

 

cnpm  淘宝镜像,主要是打包的工具(因为搭jenkins是参考的朋友给我的笔记,有些地方自己会稍作修改,而我还不了解怎么打包,安装了这个以后也不知道怎么使用,所以这一步暂时可以省略,安装这个非常的慢,我是开了单独开了个窗口让它慢慢装去了。。)

# yum -y install npm

# npm install -g cnpm --registry=https://registry.npm.taobao.org

# npm -v
# cnpm -v

 

二.安装git客户端及部署gitlab

gitlab搭建   参照以前的搭建方式

git的话可以直接yum安装,默认的yum源中, git的版本就是1.X,到目前为止,这个版本应该算是比较老的版本了,也可以按照下面的方式安装git2.X版本。

 

1.配置base源和epel源

vim /etc/yum.repos.d/aliBase.repo

[aliBase]

name=aliBase

baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/

enabled=1

gpgcheck=1

gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever

 

vim /etc/yum.repos.d/aliEpel.repo

[aliEpel]

name=aliEpel

baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/

enabled=1

gpgcheck=0

2.下载安装包、配置ius仓库

wget https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-15.ius.centos7.noarch.rpm
yum install ius-release-1.0-15.ius.centos7.noarch.rpm

通过ius仓库安装git2.X版本

yum install -y git2u

3.设置用户名和邮箱

git config --global user.name "tanxiao"
git config --global user.email "tanxiao@qq.com"

随时可以使用如下命令,查看自己的用户名和邮箱设置

git config --global --list

查看版本

# git --version

4.制作ssh的git秘钥,并配置公钥。

ssh-keygen -t rsa -C "tanxiao@qq.com"

连续按三次回车,生成id_rsa和id_rsa.pub文件夹。

5.查看公钥文件内容并复制公钥到gitlab配置ssh key。

cd /root/.ssh/&&cat id_rsa.pub

可以测试一下

# ssh -T git@192.168.2.109

6.创建gitlab的api访问令牌

保存好制作的令牌,待会要复制到jenkins上制作gitlab的api凭证

 

三、安装jenkins

下载jenkins.war包

# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.191/jenkins.war

1.安装jenkins

方法一:将下载好的jenkins.war包移动到tomcat的webapps目录下,用tomcat启动。

方法二:使用nohup java -jar jenkins.war --httpPort=9999 & 在后台运行。

这里我使用的是方法二启动jenkins服务,并指定端口为:9999放后台运行。

# mv jenkins.war /home/&&cd /home/

# nohup java -jar jenkins.war --httpPort=9999 &

通过http://服务器ip:9999来访问

http://192.168.2.109:9999

 

稍等一会~

 

按提示走

 

安装推荐的插件

选择推荐的插件后,会自动新手安装。(休息会吧,这个比较慢~)

部分插件安装失败了,先记录下是啥插件没装,然后继续,待会回头再来装其余的插件

创建一个属于自己的管理员用户

配置jenkins的实例访问网址,并保存,这里是jenkins默认的访问网址,可以自定义。

2.安装jenkins自动部署的相关插件如下:

需要安装的插件:gitlab 、Gitlab Authentication 、Gitlab Hook 、Publish Over SSH 、Maven lntegration 、Build Authorization Token Root 、 nodejs

 

 

点击系统管理

 

点击插件管理

在过滤栏搜索上述插件,顺带还有先前安装失败的一些插件再装一次

 

安装后重启jenkins

 

又是一阵耐心等待,如果在web端一直安装失败的插件,可以服务器端直接安装(是真的慢,我应该直接下好插件包去服务器端安装的。。)

 

 

jenkins常用插件

提取码:7mi1

以上是下载好的一些jenkins常用的插件包

将插件包解压后再拷贝到jenkins存放插件包的目录,重启jenkins即可

# tar xfP jenkins-plugins.tar.gz

# ll plugins/ | wc -l #插件包共计文件数是191个

# cp -a plugins/* /root/.jenkins/plugins

插件下载地址:

http://updates.jenkins-ci.org/download/plugins/ 

https://plugins.jenkins.io/ 

 

 

3.jenkins全局工具配置

选择全局工具配置

 

全局工具配置如下:

 

以上需要在服务器上安装了才能生效,配置完了保存即可。

 

4.jenkins凭证制作如下:

凭据是为了访问Gitlab拉取代码使用的

 

下面的地方修改成gitlab的api凭证

 

5.全局系统设置

进入jenkins系统设置。

 

在jenkins上配置gitlab的地址

 

cat /root/.ssh/id_rsa

复制私钥串粘贴到Jenkins系统设置内。

 

到这里就完成了,我试了一下自动构建没啥问题,但是没有自动部署,还得再研究是一下是哪里需要设置。。

 

昨天又问了下朋友怎么设置自动部署,然后研究了下,现在记录下过程

还是先全局设置

 

再开一台有web服务的机器用来部署,tomcat和nginx我都试过了没多大区别,现在测试用nginx

新建个项目

 

这里需要gitlab的仓库地址用来拉取代码,在gitlab上新建一个项目

 

在仓库里新建一个测试文件,名称index.html

<html>

<body>

Hello,tandabao!

</body>

</html>

 

回到test仓库,点克隆得到地址

回到jenkins继续设置刚才新建的项目

 

构建后操作

构建后远程部署有两种方式,一种是在这里设置直接传送,但是我测试了多次都没有成功,

先看第一种,下面截图中命令那里写错了,必须写绝对路径,不然会找不到命令

 

点击构建

 

可以看到构建成功了,但是没有传输,也不知道是什么原因,难不成又有哪里设置错了。。?

 

下面来用第二种,直接使用scp传输

构建后操作只执行命令

 

在构建中添加shell脚本

 

scp -r /root/.jenkins/workspace/nginx/index.html 192.168.2.113:/usr/local/nginx/html/

使用这种方式的话,需要事先让jenkins的机器给web服务端的机器发送公钥

# ssh-copy-id 192.168.2.113

如果没做过密钥的话先制作一下

# ssh-keygen

再次手动执行构建

 

OK,访问下远程服务器

 

最后设个触发器,每两分钟拉取一次gitlab的代码进行构建

 

把gitlab上的测试页修改一下

 

完成

构建定时触发器可以参考下面这篇博客

Jenkins构建触发器(定时构建项目)

 

今天测试的时候还突然出了个问题,一点击构建web页面就一直处于等待状态,无法响应任何操作,先前几次都没有问题的,改完构建配置以后突然就这样了,把jenkins进程杀掉再启动又可以做别的操作了,但是一点构建就一直转圈圈等待中,网络也没问题,然后我又装了个tomcat,用tomcat来启动jenkins就没问题了,所以以后还是用tomcat来启动jenkins吧。同时运行几个服务内存占用非常的高,4G勉强够用,我后来把虚拟机调成了6G,如果是在服务器上部署个人觉得需求要8G内存比较稳定。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值