玖叶教程网

前端编程开发入门

企业级Docker+Jenkins+Gitlab自动化构建平台搭建(图文教程)

环境说明

系统环境准备

关闭firewalld

关闭selinux

建议使用谷歌浏览器

主机配置

Gitlab部署和实践

GitLab简介

GitLab是一个开源版本管理系统,是集代码托管,测试,部署于一体的开源git仓库管理软件,可通过web界面来进行访问公开的或私人项目。与Github类似,GitLab能够浏览代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本,并提供一个文件历史库。是目前非常流行好用的研发版本控制系统。

安装依赖

yum install curl openssh-server openssh-clients postfix cronie lokkit -y

添加gitlab仓库,并安装

1、下载gitlab安装脚本

curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash

注:其他报错不要理会,看到图中红圈标记,即可安装gitlab!

2、安装gitlab

yum install gitlab-ce -y

启动gitlab

gitlab-ctl reconfigure

vim /etc/gitlab/gitlab.rb

修改external_url为gitlab机子的ip要使用的端口,如:http:// 192.168.139.150:8888

修改nginx['listen_port'] = 8888

重新配置gitlab并重启

gitlab-ctl reconfigure #第一次启动需要一点时间

gitlab-ctl restart

Gitlab的汉化

1、下载汉化版本库之前先检查系统已经安装的Gitlab版本号,确保与克隆获取的版本库版本号一致

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看系统已经安装的Gitlab版本号

2、下载gitlab版本对应的汉化包

mkdir /home/tools -pv

cd /home/tools

git clone https://gitlab.com/xhang/gitlab.git

3、停止gitlab,并导出导出 patch 用的 diff 文件到/home/tools下

gitlab-ctl stop

cd gitlab

git fetch

git diff v11.3.4 v11.3.4-zh > ../11.3.4-zh.diff

4、返回到/home/tools下,并安装汉化包

cd ..

yum install patch -y

patch -d /opt/gitlab/embedded/service/gitlab-rails/ -p1 < 11.3.4-zh.diff

注:接下来看到这些图片,不要犹豫,一路回车到底!!!回车很多(估计有10个的样子),请耐心输入!!!

5、重新配置生效

gitlab-ctl reconfigure

6、启动gitlab

gitlab-ctl restart

7、汉化成功

Harbor私有仓库部署

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

docker-compose的安装

方法一(推荐使用):

curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose version

注:如果出现该错误"curl: (35) Peer reports incompatible or unsupported protocol version."

则需要安装插件:

yum update -y nss curl libcurl

再次运行命令,问题解决!

方法二:

CentOS:

yum install epel-release -y

yum install python-pip -y

Ubuntu:

apt-get install python-pip -y

# 通用命令

pip --version

pip install --upgrade pip

pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose

docker-compose version

docker-ce的安装

1、安装一些必要的系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加docker镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装 Docker-CE(建议指定安装版本,主版本号要与docker-compose一致)

yum -y install docker-ce

指定版本命令:

yum install -y docker-ce-18.03.1.ce-1.el7.centos

注:使用"yum list docker-ce.x86_64 --showduplicates | sort -r"可以查看所有版本,如下:

安装特定版本使用命令"yum -y install docker-ce-[VERSION]",如下图所示:

4、开启Docker服务

systemctl start docker

配置docker加速器

首先修改 /etc/docker/daemon.json 文件(vim /etc/docker/daemon.json)并添加上 registry-mirrors 键值。

{ "registry-mirrors": ["https://registry.docker-cn.com"]}

修改保存后重启 Docker 以使配置生效。systemctl restart docker

Harbor私有仓库的安装

下载Harbor安装文件

从 github harbor 官网 release 页面下载指定版本的安装包。

1、在线安装包

mkdir /home/tools -pv

cd /home/tools

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz

tar xvf harbor-online-installer-v1.1.2.tgz

2、离线安装包

mkdir /home/tools -pv

cd /home/tools

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz

tar xvf harbor-offline-installer-v1.1.2.tgz

注:推荐使用第二种,因为第一种在线安装可能由于官网源的网络波动导致安装失败。

配置Harbor

1、进入harbor的根目录

mv /home/tools/harbor/ /usr/local/

cd /usr/local/harbor

2、配置harbor.cfg文件

vim harbor.cfg

修改如下部分:

hostname = 192.168.139.99

ui_url_protocol = http

harbor_admin_password = 123 #根据实际情况修改

project_creation_restriction = adminonly #或修改为everyone

参数说明:

hostname = harbor.51cto.wang (前端域名,也可以是IP,不能是localhost/127.0.0.1)

ui_url_protocol = https (使用默认的http会导致docker login登录不了,且不安全)

ssl_cert = /data/harbor/cert/server.crt (证书存放目录及文件名)

ssl_cert_key = /data/harbor/cert/server.key

auth_mode = db_auth (本地数据库认证)

harbor_admin_password = Harbor12345 (admin用户的密码)

project_creation_restriction = adminonly (仅管理员可以创建项目,everyone为所有人可以创建项目)

self_registration = on (开启自注册功能)

生成配置文件并启动容器

1、运行harbor根目录下的install.sh脚本,harbor服务就会根据当期目录下的docker-compose.yml开始下载依赖的镜像,检测并按照顺序依次启动,如下图:

cd /usr/local/harbor/

systemctl start docker #记得要先运行docker,不然会报错!

./install.sh

[Step 0]: checking installation environment ...

Note: docker version: 18.03.1

Note: docker-compose version: 1.18.0

[Step 1]: loading Harbor images ...

[Step 2]: preparing environment ...

[Step 3]: checking existing instance of Harbor ...

Now you should be able to visit the admin portal at http://192.168.139.99.

For more details, please visit https://github.com/vmware/harbor .

注:"docker version"和"docker-compose version"的主版本必须一致,否则会报错,[Step 2]: preparing environment ...这一步无法进行!!!

2、查看harbor依赖的镜像及启动服务如下:

docker images

3、执行docker-compose ps

docker-compose ps

注:执行该命令时候出现几次报错,信息如下:

解决办法:

mkdir -p /usr/local/harbor/common/config/ui/

mkdir -p /usr/local/harbor/common/config/db

mkdir -p /usr/local/harbor/common/config/jobservice

cp /usr/local/harbor/common/templates/adminserver/env /usr/local/harbor/common/config/ui/

cp /usr/local/harbor/common/templates/adminserver/env /usr/local/harbor/common/config/db

cp /usr/local/harbor/common/templates/adminserver/env /usr/local/harbor/common/config/jobservice

还有一个需要注意的地方:

[root@k8s-master bin]# docker-compose ps

ERROR:

Can't find a suitable configuration file in this directory or any

parent. Are you in the right directory?

Supported filenames: docker-compose.yml, docker-compose.yaml

4、输入docker-compose up命令用于启动harbor仓库

docker-compose up

注:[root@k8s-master bin]# docker-compose up

ERROR:

Can't find a suitable configuration file in this directory or any

parent. Are you in the right directory?

Supported filenames: docker-compose.yml, docker-compose.yaml

这个问题主要是docker-compose ps(up、stop、rm)等命令需要在包含*.yaml这类的文件夹下执行!!!

访问harbor仓库的web界面

1、访问web界面http:// http://192.168.139.99

用户名:admin

密码:123 #之前修改过了

2、登陆web界面

客户端连接镜像仓库配置过程

客户端连接仓库

1、在客户端输入

docker login 192.168.139.99

出现如下报错:

[root@k8s-node-1 sysconfig]# docker login 192.168.139.99

Username: admin

Password:

Error response from daemon: Get https://192.168.139.99/v2/: dial tcp 192.168.139.99:443: getsockopt: connection refused

这是因为docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。解决办法:

· 如果系统是MacOS,则可以点击"Preference"里面的"Advanced"在"Insecure Registry"里加上docker.bksx.com,重启Docker客户端就可以了。

· 如果系统是Ubuntu,则修改配置文件/lib/systemd/system/docker.service,修改[Service]下ExecStart参数,增加– insecure-registry docker.bksx.com。

· 如果系统是Centos,可以修改配置vim /usr/lib/systemd/system/docker.service,将ExecStart=/usr/bin/dockerd增加 --insecure-registry=192.168.139.99。

· 如果是新版本的docker在/etc/sysconfig/ 没有docker这个配置文件的情况下。

在daemon.json中添加以下参数

[root@localhost harbor]# cat /etc/docker/daemon.json

{

"insecure-registries": [

"docker.bksx.com"

]

}

注:如果没有"daemon.json"这个文件,创建一个即可!

2、重启docker

systemctl daemon-reload

systemctl restart docker

Rancher容器管理平台部署

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

说明:安装Rancher需要依赖于docker,因为在上一章节已经安装了docker,所以这里将不再累述!

Rancher服务端安装

1、安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

2、Rancher安装

docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

安装完成

3、查看rancher运行的容器

docker ps

4、访问rancher

http://192.168.139.99:8080

Jenkins的安装配置

说明:之前的教程中Jenkins都是使用war包安装,本次则使用yum安装!

Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。

安装配置maven

1、安装maven

cd /usr/local/

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxvf apache-maven-3.5.4-bin.tar.gz

重命名maven

mv apache-maven-3.5.4 maven

删除maven压缩包

rm -fr apache-maven-3.5.4-bin.tar.gz

2、配置maven环境变量

vim /etc/profile

###maven env###

MAVEN_HOME=/usr/local/maven

PATH=$PATH:$MAVEN_HOME/bin

export PATH MAVEN_HOME

使环境变量生效

source /etc/profile

查看maven版本

mvn --version

3、配置maven阿里云镜像

vim /usr/local/maven/conf/settings.xml

<mirror>

<id>alimaven</id>

<mirrorOf>central</mirrorOf>

<name>aliyun maven</name>

<url>http://maven.aliyun.com/nexus/content/groups/public/</url>

</mirror>

安装配置java

1、使用官方的二进制包解压安装,官方二进制包的下载地址

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

2、安装java(解压、移动即可)

cd /home/tools

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/

mv /usr/local/jdk1.8.0_171/ /usr/local/java

用全路径验证java是否安装成功

/usr/local/java/bin/java -version

3、配置java环境变量/etc/profile

export JAVA_HOME=/usr/local/java/

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

环境变量立即生效

source /etc/profile

注:发现有openjdk

[root@master-2 local]# rpm -qa | grep jdk

java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64

java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

copy-jdk-configs-2.2-3.el7.noarch

java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64

使用如下命令删除:

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64

4、java版本查看

java -version

安装Jenkins

1、下载Jenkins源

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

2、安装Jenkins源

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3、安装Jenkins

yum install jenkins -y

4、配置Jenkins

vim /etc/sysconfig/jenkins

JENKINS_USER="root" #将用户改为root,默认为JENKINS

JENKINS_PORT="8888" #默认端口为8080,用户可以根据自己需求修改端口

5、启动Jenkins

/etc/init.d/jenkins start

报错:

使用命令journalctl -xe查看,显示如下结果:

注意图中红圈中的内容"Starting Jenkins bash: /usr/bin/java: No such file or directory"!说明Jenkins在启动的时候,回去寻找java根目录下bin目录中的命令,但是java的安装目录并不在"/usr/bin/java",所以需要在"vim /etc/rc.d/init.d/jenkins"文件中添加如下:

/usr/local/java/bin/java

再次启动Jenkins,成功!!!

6、解锁Jenkins

[root@master-2 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

97c469b54a2d4f3ab817ce5835e3d64a

7、初始化Jenkins

这里选择"安装推荐的插件"

至此"企业级Docker+Jenkins+Gitlab自动化构建平台"已经搭建完成!接下来是自动化构建实践!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言