环境说明
系统环境准备
关闭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自动化构建平台"已经搭建完成!接下来是自动化构建实践!