(CICD架构⽂档)测试环境说明步骤
因图⽚不能上传,见资源⽂档⾥⾯有相应的下载。资源⽂档只是可以显⽰图⽚,其他信息⼀样。
(CICD架构⽂档)测试环境说明步骤
⼀、总体说明
总架构图
架构图说明
项⽬开发语⾔是php,使⽤了⽐较流⾏的laravel框架,项⽬中⽤到的laravel插件使⽤composer安装,npm安装全局模块,编译⽣成js样式⽂件
①开发⼈员提交代码到svn,运维⼈员更改nginx配置、项⽬env配置并提交到gitlab
②svn、gitlab钩⼦会触发jenkins执⾏下载对应项⽬的env、nginx配置⽂件、Dockerfile和最新版本的代码
③jenkins执⾏shell脚本:composer安装laravel插件和npm安装模块,编译⽣成js⽂件。完好的代码通过docker build Dockerfile 指令打包成镜像
④上传构建好的镜像push到harbor镜像仓库
⑤jenkins借助Rancher的插件通过API与rancher交互更新service达到更升级容器的⽬的(也就是更新代码版本),其中pull镜像的这⼀步会通过saltstack并⾏从harbor上下拉之前构建好的镜像到多个主机上
以上流程完整的实现了CI\CD,这⾥主要是jenkins部分是关键位置之⼀。
下⾯通过关键配置的截图来展⽰⼀个清晰的思路
如图:
转存失败
⼆、软件的安装与配置
第⼀步rancher 2.0的安装与配置
⼀.docker 安装
1.使⽤ root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
2.卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
3.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
5.可以查看所有仓库中所有docker版本,并选择特定版本安装
6.安装docker
$ yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这⾥安装的是最新稳定版18.09.5
7.启动并加⼊开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
8.验证安装是否成功(有Client和Server两部分表⽰docker安装启动都成功了)
$ docker version
9.安装 docker-compose
[root@harbor ~]#
没有python-pip包就执⾏命令 yum -y install epel-release 再执⾏下⾯
yum install python-pip -y
[root@harbor ~]# pip install --upgrade pip
[root@harbor ~]# pip install docker-compose
[root@harbor ~]# pip install --upgrade backports.ssl_match_hostname
第⼆步rancher的安装
在要安装的主机上执⾏ sudo docker run -d --restart=unless-stopped -v <;主机路径>:/var/lib/rancher/ -p 80:80 -p 443:443 rancher/rancher:stable
第三步Jenkins的安装
1、安装JDK
yum install -y java
2、安装jenkins
添加Jenkins库到yum库,Jenkins将从这⾥下载安装。
3 yum install -y jenkins
2 rpm -ivh jenkins-2.7.arch.rpm
配置jenkis的端⼝
vi /etc/sysconfig/jenkins
到修改端⼝号:
JENKINS_PORT="8080" 此端⼝不冲突可以不修改
3、启动jenkins
service jenkins start/stop/restart
安装成功后Jenkins将作为⼀个守护进程随系统启动
系统会创建⼀个“jenkins”⽤户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins,
和/var/cache/jenkins的所有者
启动的时候将从/etc/sysconfig/jenkins获取配置参数
默认情况下,Jenkins运⾏在8080端⼝,在浏览器中直接访问该端进⾏服务配置
Jenkins的RPM仓库配置被加到/pos.po
4、打开jenkins
在浏览器中访问
⾸次进⼊会要求输⼊初始密码如下图,
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword
选择“Install suggested plugins”安装默认的插件,下⾯Jenkins就会⾃⼰去下载相关的插件进⾏安装。
创建超级管理员账号
注:1.如果要使webhook钩⼦之类的在⾥⾯加插件
1. 执⾏权限问题
将jenkins账号分别加⼊到root组中
gpasswd -a root jenkins
修改/etc/sysconfig/jenkins⽂件中
JENKINS_USER=root
JENKINS_GROUP=root
可以修改为root权限运⾏
第四步docker Harbor registry 私有仓库的搭建
说明:docker中要使⽤镜像,⼀般会从本地、docker Hup公共仓库和其它第三⽅公共仓库中下载镜像,⼀般出于安全和外⽹(墙)资源下载速率的原因考虑企业级上不会轻易使⽤。那么有没有 ⼀种办法可以存储⾃⼰的镜像⼜有安全认证的仓库呢? ----> 企业级环境中基于Harbor 搭建⾃⼰的私有仓库。
Harbor是VMware公司最近开源的企业级Docker Registry项⽬, 其⽬标是帮助⽤户迅速搭建⼀个企业级的Docker registry服务。
2.解压下载的harbor包 [ harbor-offline-installer-v1. ]
[root@harbor ~]# tar zxf harbor-offline-installer-v1.
3.切换进harbor包⽬录
[root@harbor ~]# cd harbor
4.修改habor配置⽂件 [ harbor.cfg ]
hostname = 192.168.60.150 # 指定私有仓库的主机名,可以是IP地址,也可以是域名
ui_url_protocol = http # ⽤户访问私仓时使⽤的协议,默认时http,也可配置成https
linux安装jdk rpm安装db_password = root123 # 指定mysql数据库管理员密码
harbor_admin_password:Harbor12345 # harbor的管理员账户密码
5.通过⾃带脚本⼀键安装
[root@harbor harbor]# ./install.sh
6.通过浏览器访问管理
⽤户默认为admin
密码默认为Harbor12345 [可通过安装前 harbor.cfg 配置⽂件修改 harbor_admin_password 指定 ]
7.修改docker配置
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"d8b3zdiw.mirror.aliyuncs"
],
"insecure-registries": [
"192.168.0.249",
"192.168.0.249:5000",
"192.168.0.249:443"
]
}
systemctl daemon-reload
systemctl restart docker
8.重启或启动 docker 服务
[root@harbor client]# systemctl restart docker
9.docker 登陆 harbor
[root@harbor client]# docker login -u test -p Asd123456 192.168.60.150 10.编辑dockerfile⽂件
# Base imgae
FROM centos
# Maintainer
MAINTAINER lisea lisea@126
# Commands
RUN yum install nginx -y
RUN echo "daemon off;" >> /etc/f
RUN echo "this is test nginx p_w_picpath" > /usr/share/nginx/html/index.html EXPOSE 80
CMD ["nginx"]
11.通过Dockerfile构建⼀个新镜像, 直接指明registry和标签
[root@harbor client]# docker build -t 192.168.60.150/test/nginx:v1.0.1 .
12.上传镜像⾄ harbor registry
[root@harbor client]# docker push 192.168.60.150/test/nginx:v1.0.1
13.删除本地镜像
[root@harbor client]# docker rmi 192.168.60.150/test/nginx:v1.0.1
14.从harbor中下载镜像
[root@harbor client]# docker pull 192.168.60.150/test/nginx:v1.0.1
其它:
直接使⽤安装不按以上安装 测试环境可以直接⽤:
接镜像 docker pull registry
运⾏仓库 docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest 修改daemon.json⽂件sudo vim /etc/docker/daemon.json
添加:{ "insecure-registries":["192.168.0.249:5000"]}
注要重启docker
-----常⽤配置命令
systemctl daemon-reload
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"d8b3zdiw.mirror.aliyuncs"
],
"insecure-registries": [
"192.168.0.249",
"192.168.0.249:5000",
"192.168.0.249:443"
]
}
第五步 Gogs webhook实现git push 远程分⽀后⾃动触发Jenkins构建
Gogs webhook实现git push 远程分⽀后⾃动触发Jenkins构建
项⽬组已实现通过Jenkins进⾏构建,最近构建任务加⼊了sonarQube进⾏代码扫描的内容。
开发每次推送代码到仓库时(git push),都需要执⾏⼀次构建,以产⽣sonarQube扫描报告。
考虑到Gogs 的webhook可以检测push事件后进⾏处理,我们决定把整个构建做成⾃动化,实现开发推送代码到仓库后,⾃动触发Jenkins构建,提⾼开发效率。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论