首席领导者 —— jenkins

1. jenkins持续集成

1.1 jenkins简介

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
在这里插入图片描述
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
在这里插入图片描述
流程:
  开发人员通过 git 来维护 dockerfile[构建镜像] 并将dockerfile上传至 gitlab私有仓库 ,最后再由 jenkins 从gitlab上去获取,获取之后会通过自己的 plugins插件 来完成 images build 构建。还可以将镜像进而推送到 harbor[企业级仓库]
在这里插入图片描述

1.2 jenkins安装

官方软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
安装jenkins

rpm -ivh jdk-8u171-linux-x64.rpm
rpm -ivh jenkins-2.237-1.1.noarch.rpm

在这里插入图片描述

systemctl start jenkins

在这里插入图片描述
浏览器访问
在这里插入图片描述
使用初始密码登录

cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
更新插件源

vim  /var/lib/jenkins/hudson.model.UpdateCenter.xml

在这里插入图片描述

cd /var/lib/jenkins/updates   ##输入密码后会生成updates目录和文件
sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json 
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

在这里插入图片描述
安装默认插件即可,使用admin用户,登录后修改密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 jenkins使用

创建一个任务
在这里插入图片描述
在这里插入图片描述
复制私钥
在这里插入图片描述
在这里插入图片描述
添加好之后会发现依然报错
在这里插入图片描述
上面错误是无法连接git仓库,这是因为我们没有在jenkins主机安装git工具
在jenkins主机上安装git工具
在这里插入图片描述
安装之后
在这里插入图片描述
构建触发器:定义轮询间隔,有更新时触发jinkens构建
在这里插入图片描述
日程表规则和定时任务是一样的,定义了什么时候轮询一次,我们这里是为了测试,所以定义每分钟从gitlab仓库上轮询一次,看是否产生变化。下面黄字提示是系统认为频率太高,可能是设置错误,所以进行提醒。
构建选择执行shell命令
在这里插入图片描述
Git提交代码到gitlab,jenkins轮询检测到代码仓库的变更,触发构建
保存后手动触发一次
在这里插入图片描述
在这里插入图片描述
在jenkins主机查看
在这里插入图片描述

1.4 docker容器构建

物理机构建docker仓库(这里是我自己构建的,也可以直接使用阿里云的docker源)
在/var/www/html目录,创建目录docker,将要制定为yum仓库的rpm包放置于/var/www/html/docker下
在这里插入图片描述
使用命令createrepo创建yum仓库,执行命令后会生产repodata(若当前没有createrepo命令,可先安装【yum -y install createrepo】)
在这里插入图片描述
在jenkins主机配置使用自建的yum仓库
在这里插入图片描述
安装并启动docker

yum install -y docker-ce
systemctl start docker

在这里插入图片描述
查看docker信息

docker info

在这里插入图片描述
可以看到这里有两个警告
在这里插入图片描述
可以看到,两个均为0,即为关闭状态,修改其状态,并使其生效

vim /etc/sysctl.conf
###
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
###
sysctl --system   # 生效

在这里插入图片描述
再次查看docker信息,会发现警告已经消除
使用docker下载镜像nginx

docker pull nginx
docker images   # 查看docker含的镜像及其信息

在这里插入图片描述
测试容器是否可正常使用

docker run -d --name web nginx   # 运行nginx镜像并打入后台,命名为web
curl 172.17.0.2                              # 访问IP,测试是否可以正常访问

在这里插入图片描述
在gitlab主机构建Dockerfiie
在这里插入图片描述
在jenkins查看查看构建信息
在这里插入图片描述
之前我们设置的构建是执行shell命令,接下来我们需要jenkins自动的进行构建

但是此时我们可以点开demo的设置去查看构建,可以看到并没有自动构建的能力。因为缺少插件,那么我们就给其增加插件,来扩展其功能。

添加docker插件
在这里插入图片描述
在这里插入图片描述
等待安装完成~
修改demo项目的配置
删除原先的构建,并添加我们所需要的构建
在这里插入图片描述

1.5 配置gitlab自动触发jenkins

当gitlab发生变化时,主动触发jenkins。[实时触发]
增加gitlab插件,使得gitlab自动触发jenkins
在这里插入图片描述
在这里插入图片描述
重新构造demo项目的触发器
在这里插入图片描述

修改gitlab配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编辑项目下设置中的webhooks
在这里插入图片描述
填写的url和token是jenkins构建触发器时生成的

1.6 harbor企业仓库

下载并解压离线安装包
在这里插入图片描述
部署harbor企业仓库
由于它是由 docker-compose 方式来部署的,因此我们需要首先部署它所需的环境
由于它是通过docker来部署的
下载docker-ce并设置为开机自启

yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service

在这里插入图片描述
开启net.bridge.bridge-nf-call-iptables和net.bridge.bridge-nf-call-ip6tables

vim /etc/sysctl.conf
###
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
###
sysctl --system   # 生效

在这里插入图片描述
编辑harbor配置文件

vim harbor.yml 

在这里插入图片描述
创建证书

mkdir data
cd data/
mkdir -p certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/harbor.key -x509 -days 365 -out certs/harbor.crt

在这里插入图片描述
复制证书给jenkins主机

jenkins:  mkdir -p /etc/docker/certs.d/reg.harbor.org/
harbor:   scp harbor.crt node2:/etc/docker/certs.d/reg.harbor.org/ca.crt

运行,检测环境

./install.sh

在这里插入图片描述
可以看到,缺少 docker-compose[单台主机上维护多个容器] 环境

下载并搭建docker-compose环境
官方下载地址:https://github.com/docker/compose/releases
阿里云镜像下载地址:https://developer.aliyun.com/mirror/ 【docker-compose仅适用于Mac】
清华镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/

mv docker-compose-Linux-x86_64-1.24.1 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

在这里插入图片描述
再次运行
注意:这里我使用的是离线包,也可以使用在线包
官网:https://goharbor.io/
在这里插入图片描述
可以看到,install之后文件夹中出现了 docker-compose.yml 的配置文件
通过docker-compose查看维护的容器
在这里插入图片描述
重新启动

./install.sh 

在这里插入图片描述
在这里插入图片描述
浏览器访问harbor仓库
在这里插入图片描述
输入admin和密码后进入仓库
在这里插入图片描述
添加地址解析

vim /etc/hosts

在这里插入图片描述

配置刚才的任务,重新构造触发器
在这里插入图片描述
点击高级,并点击生成token
在这里插入图片描述
修改gitlab配置
在这里插入图片描述
在这里插入图片描述
填写的url和token是jenkins构建触发器时生成的
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
配置jenkins
在这里插入图片描述
在这里插入图片描述

chmod 777 /run/docker.sock

测试
在这里插入图片描述
在这里插入图片描述
查看jenkins
在这里插入图片描述
查看harbor仓库
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值