gitlab+jenkins实现对前端的持续构建

gitlab和jenkins分别使用不同的服务器(两者都需jdk环境)

1,下载gitlab所需的jdk环境(安装包可以搜一下)

1. tar -xf jdk-11.0.12_linux-x64_bin.tar.gz  -C /usr/local/   ##解压相应的安装包

2. vim  /etc/profile.d/java.sh                                    ##使环境生效


  JAVA_HOME=/usr/local/jdk-11.0.12
  PATH=$PATH:$JAVA_HOME/bin
  export JAVA_HOME PATH

3. source /etc/profile.d/java.sh   ##使环境生效

4. ln -s /usr/local/jdk-11.0.12/bin/java /usr/bin   ##设置软连接,方便后续的gitlab使用java环境

2,安装配置gitlab

 1. 安装

1. wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.3-ce.0.el7.x86_64.rpm --no-check-certificate   ##通过清华源下载gitlab的rpm包

2. yum localinstall -y gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm   ##安装rpm包

3. vim /etc/gitlab/gitlab.rb             ##修改为本机ip
external_url 'http://10.3.137.104'

2. 初始化

[root@gitlab ~]# gitlab-ctl reconfigure

3. 状态

[root@gitlab ~]#  gitlab-ctl status
run: gitaly: (pid 4491) 48s; run: log: (pid 4087) 279s
run: gitlab-monitor: (pid 4539) 44s; run: log: (pid 4251) 207s
run: gitlab-workhorse: (pid 4501) 47s; run: log: (pid 4099) 273s
run: logrotate: (pid 4125) 265s; run: log: (pid 4124) 265s
run: nginx: (pid 4112) 271s; run: log: (pid 4111) 271s
run: node-exporter: (pid 4175) 243s; run: log: (pid 4174) 243s
run: postgres-exporter: (pid 4528) 45s; run: log: (pid 4223) 219s
run: postgresql: (pid 3933) 343s; run: log: (pid 3932) 343s
run: prometheus: (pid 4514) 46s; run: log: (pid 4156) 259s
run: redis: (pid 3876) 355s; run: log: (pid 3875) 355s
run: redis-exporter: (pid 4186) 237s; run: log: (pid 4185) 237s
run: sidekiq: (pid 4078) 281s; run: log: (pid 4077) 281s
run: unicorn: (pid 4047) 287s; run: log: (pid 4046) 287s

4. 检查端口是否启动

[root@gitlab ~]# gitlab-ctl start

[root@gitlab ~]# netstat -lntup|grep 80
tcp        0      0 127.0.0.1:8080      0.0.0.0:*    LISTEN     4073/unicorn master
tcp        0      0 0.0.0.0:80      0.0.0.0:*         LISTEN      4112/nginx: master  
tcp        0      0 0.0.0.0:8060       0.0.0.0:*      LISTEN      4112/nginx: master 

5. 使用浏览器访问,进行web界面操作

第一次访问,创建密码

gitlab+jenkins实现对前端的持续构建_第1张图片

进行登陆,用户名为root,密码为  12345678

gitlab+jenkins实现对前端的持续构建_第2张图片 创建一个新的项目

 gitlab+jenkins实现对前端的持续构建_第3张图片

 定义项目的名称

gitlab+jenkins实现对前端的持续构建_第4张图片

 创建完成后会提示没有添加ssh密钥

gitlab+jenkins实现对前端的持续构建_第5张图片

在服务器上创建ssh密钥 使用ssh-ketgen 命令

[root@gitlab ~]# 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:
SHA256:n/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU root@gitlab
The key's randomart image is:
+---[RSA 2048]----+
|       o++o+     |
|      ..+o+ .    |
|       ==++o.. o |
|     ..o==o=..+..|
|      o.So+.++o  |
|       o oo*.o.. |
|        .o+   E .|
|         ..o . . |
|          ooo    |
+----[SHA256]-----+
[root@gitlab .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSVdBypha/ALMmvIiZGXxYGz7FJ5TC+hYWo7QGBJ+J6JVinp9yH851fwxln5TWGBrtEousoVHXTTJfFRy8LV+Ho7OfaksYt+5TPxEjf5XX53Z3ZX70PYH3DQFmgzl0QpWw1PYIjrD7kBeLhUg+R/ZePS+HzPvbRCb6gOlkdx46vX4Olr7YbAO5lzAarhaZcE2Q702kPXGeuZbR7KcwVhtoiueyHwyj94bccMfKq7qSskXGbpWuCwcaKQ6uqGap1rP5Viqqv0xeO7Vq0dIZ/YnPL2vPDUvNa36nHosiZGkn4thpPh63KjXaFIfKOuPemLzvDZY0A+88P8gwmAYiPoxp root@gitlab 

将密钥添加到web界面的用户中

gitlab+jenkins实现对前端的持续构建_第6张图片 到这里gitlab的基本使用就完成了

3,安装jenkins

1. jenkins的安装与启动

[root@jenkins ~]# cd /etc/yum.repos.d/

[root@jenkins yum.repos.d]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo --no-check-certificate

[root@jenkins ~]# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

[root@jenkins ~]# yum install -y jenkins

[root@jenkins ~]# systemctl start jenkins  

在启动这一步可能会报错,可能是因为缺少了一些AWT的东西,这一步不做太多深究

gitlab+jenkins实现对前端的持续构建_第7张图片

[root@localhost ~]# yum install fontconfig

gitlab+jenkins实现对前端的持续构建_第8张图片

最后启动成功

 2. 网页打开配置

打开192.168.130.110:8000/

① 为了安全考虑,首先需要解锁Jenkins,请在/var/lib/jenkins/secrets/initialAdminPassword中查看文件。

gitlab+jenkins实现对前端的持续构建_第9张图片

② 选择需要安装的插件

gitlab+jenkins实现对前端的持续构建_第10张图片

然后就是进入漫长的等待

gitlab+jenkins实现对前端的持续构建_第11张图片

③ 设置Admin用户和密码

gitlab+jenkins实现对前端的持续构建_第12张图片

④ 安装完成

gitlab+jenkins实现对前端的持续构建_第13张图片

 3,进入jenkins安装前端打包所必要的Nodejs插件和gitlab插件(为了后续在构建页面能够看到node插件和检测gitlab上传后构建插件)

gitlab+jenkins实现对前端的持续构建_第14张图片

4,进入服务器安装所需的nodejs插件

1. wget https://nodejs.org/dist/v14.17.6/node-v14.17.6-linux-x64.tar.xz

2.tar -xf  node-v14.17.6-linux-x64.tar.xz

3.vim /etc/profile.d/node.sh  

export NODE_HOME=/usr/local/node-v14.17.6-linux-x64

export PATH=$PATH:$NODE_HOME/bin

4. source /etc/profile.d/node.sh  ##使该环境生效

 5,进入jenkins系统管理中的全局工具配置去配置node

gitlab+jenkins实现对前端的持续构建_第15张图片

 6,为jenkins服务器配置免密登陆gitlab账户

gitlab+jenkins实现对前端的持续构建_第16张图片

将生成的公钥写入到gitlab账户的ssh连接中

gitlab+jenkins实现对前端的持续构建_第17张图片

 7,jenkins新建项目

gitlab+jenkins实现对前端的持续构建_第18张图片

7.1配置项目参数

gitlab+jenkins实现对前端的持续构建_第19张图片

7.2 私钥配置方式如下(点击添加按钮)

gitlab+jenkins实现对前端的持续构建_第20张图片

gitlab+jenkins实现对前端的持续构建_第21张图片最后保存使用这个凭证即可(使用这个凭证可能还是会报错的,需要jenkins通过root用户先免密连接到gitlab服务器,然后这个操作会写入到.ssh/known_hosts文件当中,将这个文件中的内容拷贝一份写入到jenkins服务器中jenkins用户的known_hosts文件中,由于这个jenkins用户默认是不登录服务器的,需要手动修改/etc/passwd文件中的jenkins用户允许登录,最后报错即可消失,由于不好复现,如果这一步有问题可以咨询一下博主)

7.3项目选择构建分支

gitlab+jenkins实现对前端的持续构建_第22张图片

 7.4 选择触发器

gitlab+jenkins实现对前端的持续构建_第23张图片

点击高级选项,罗列出一下内容,并拉到后面生成一串数字,include填写所需构建的分支

gitlab+jenkins实现对前端的持续构建_第24张图片

 7.4 进入到gitlab某个项目的设置中找到集成,将触发器的url和那一串数字填写后保存

gitlab+jenkins实现对前端的持续构建_第25张图片

 7.5填写完后可能会报错限制禁止内网跳转,这个时候需要设置一下

gitlab+jenkins实现对前端的持续构建_第26张图片

7.6构建环境选择node插件

gitlab+jenkins实现对前端的持续构建_第27张图片

 7.7 构建操作

gitlab+jenkins实现对前端的持续构建_第28张图片

8,构建操作

gitlab+jenkins实现对前端的持续构建_第29张图片

 这里写的是比较简单的利用shell命令去完成,后续自己可以添加使用ssh插件去完成打包后的目录移动到指定的服务器,

还有一点注意的是  前端打包的命令可能都不一样,需要事先与前端开发去咨询,

你可能感兴趣的:(gitlab,jenkins,运维)