这个算是基于kubernetes集群的项目持续集成的前导篇,先把这用环境搭建好我们后面就可以专注做基于k8s的docker化项目持续集成了。
gitlab安装
https://about.gitlab.com/installation/#centos-7
参考这个安装(安装方式很多docker、k8s都有),我这里用yum的形式,也比较简单。
基本就这几个命令:
sudo yum install
-y curl policycoreutils-python openssh-server
sudo systemctl
enable sshd
sudo systemctl
start sshd
我这里的防火墙都已经关闭了
sudo yum install
postfix
sudo systemctl
enable postfix
sudo systemctl
start postfix
到这里下面的步骤就不要用官网上面的了(网络不通大家都知道的),
直接到下面的网址上下载rpm文件,我们用rpm来安装:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
rpm -ivh gitlab-ce-10.2.4-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl restart
如果要添加域名修改(不设置域名IP地址是必须的这个地方必须要改的) :vim
/etc/gitlab/gitlab.rb
如果端口冲突的话修改这里(注意看目录):
访问:http://192.168.38.57:81/
第一次需要修改root密码,成功之后就可以用 用户名:root,密码:(自己修改的密码)登录了。
root账号做好不要直接使用而是先注册一个用户,用这个用户来创建项目。
新建一个project之后会在最上面提示ssh之类的,就做下面操作:
ls -al ~/.ssh,检查是否显示有id_rsa.pub或者id_dsa.pub存在
ssh-keygen -t rsa -C ”634623907@qq.com”
注意:e-mail地址
cat ~/.ssh/id_rsa.pub
最后就是用id_rsa.pub作为ssh。
到这里基本就算可以了。
harbor安装
先安装docker,这个我就不重复了。
在安装docker-compose(这个也没什么可说的):
yum -y install openssl
openssl-devel
yum -y install
epel-release
yum install python-pip
pip install docker-compose
docker-compose --version
我直接是下载的最新的:
https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.0.tgz
解压
换成你的域名 或IP都行,注意我这里用的是http
我这里也换了这几个默认的端口,因为我这里有冲突
默认用户名 密码
第一次启动按照这个步骤:
# 停止容器
docker-compose
stop
# 后台启动容器
docker-compose up
-d
我本来是想用这个命令来做开机自动启动的,看来是不行
里面的操作就是可视化的了都能看懂
下面我们就尝试这往我们的私有docker镜像仓库里面存放我们的docker镜像了。
基础镜像制作
首先下载centos镜像:
https://hub.docker.com/_/centos/
docker pull centos
把centos存放到自己的私有仓库里面
之前说过我用http请求,docker启动里面需要加入这些参数。
docker tag SOURCE_IMAGE[:TAG]
hub.weir.com:1180/spring-cloud/IMAGE[:TAG]
docker push
hub.weir.com:1180/spring-cloud/IMAGE[:TAG]
就这两句,告诉我们怎么将镜像放到我们的私有镜像仓库。
docker tag centos:latest
hub.weir.com:1180/spring-cloud/centos:latest
push之前先登录(账号密码就是你在harbor里面添加的用户名和密码):
docker login hub.weir.com:1180
[root@k6 harbor]# docker login
hub.weir.com:1180
Username: weir
Password:
Login Succeeded
docker push
hub.weir.com:1180/spring-cloud/centos:latest
制作jdk镜像:
FROM
centos:latest
MAINTAINER
ADD jdk-8u171-linux-x64.tar.gz
/usr/local/
#配置java环境变量
ENV JAVA_HOME
/usr/local/jdk1.8.0_171
ENV CLASSPATH
$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
[root@k6 home]# docker build -t jdk:1.8.0_171 .
Sending build context to Docker daemon 1.067GB
Step 1/6 : FROM centos:latest
---> e934aafc2206
---> af5f940d9915
Step 3/6 : ADD jdk-8u171-linux-x64.tar.gz /usr/local/
---> ec135310dc0c
Step 4/6 : ENV JAVA_HOME /usr/local/jdk1.8.0_171
---> Running in 960a7d182ed2
Removing intermediate container 960a7d182ed2
---> 86ed66bca24b
Step 5/6 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---> Running in 223c61e8e2e0
Removing intermediate container 223c61e8e2e0
---> d28b2cabc62d
Step 6/6 : ENV PATH $PATH:$JAVA_HOME/bin
---> Running in 33244d523c25
Removing intermediate container 33244d523c25
---> a56c94c2f562
Successfully built a56c94c2f562
Successfully tagged jdk:1.8.0_171
[root@k6 home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jdk 1.8.0_171 a56c94c2f562 7 seconds ago 586MB
vmware/redis-photon v1.5.0 7c03076402d9 3 weeks ago 207MB
vmware/clair-photon v2.0.1-v1.5.0 7ae4e0670a3f 3 weeks ago 301MB
vmware/notary-server-photon v0.5.1-v1.5.0 0b2b23300552 3 weeks ago 211MB
vmware/notary-signer-photon v0.5.1-v1.5.0 67c41b4a1283 3 weeks ago 209MB
vmware/registry-photon v2.6.2-v1.5.0 3059f44f4b9a 3 weeks ago 198MB
vmware/nginx-photon v1.5.0 e100456182fc 3 weeks ago 135MB
vmware/harbor-log v1.5.0 62bb6b8350d9 3 weeks ago 200MB
vmware/harbor-jobservice v1.5.0 aca9fd2e867f 3 weeks ago 194MB
vmware/harbor-ui v1.5.0 1055166068d0 3 weeks ago 212MB
vmware/harbor-adminserver v1.5.0 019bc4544829 3 weeks ago 183MB
vmware/harbor-db v1.5.0 82354dcf564f 3 weeks ago 526MB
vmware/mariadb-photon v1.5.0 403e7e656499 3 weeks ago 526MB
vmware/postgresql-photon v1.5.0 35c891dea9cf 3 weeks ago 221MB
vmware/harbor-migrator v1.5.0 466c57ab0dc3 3 weeks ago 1.16GB
vmware/photon 1.0 4b481ecbef2a 4 weeks ago 130MB
hub.weir.com:1180/library/centos latest e934aafc2206 7 weeks ago 199MB
hub.weir.com:1180/spring-cloud/centos latest e934aafc2206 7 weeks ago 199MB
centos latest e934aafc2206 7 weeks ago 199MB
[root@k6 home]# docker tag jdk:1.8.0_171 hub.weir.com:1180/spring-cloud/jdk:1.8.0_171
[root@k6 home]# docker push hub.weir.com:1180/spring-cloud/jdk:1.8.0_171
The push refers to repository [hub.weir.com:1180/spring-cloud/jdk]
8186ecdf12d5: Pushed
43e653f84b79: Mounted from spring-cloud/centos
1.8.0_171: digest: sha256:f5ccaf784110455bbc71ebf66981b27f910591992d170f1bfebf15a66f953e66 size: 742
[root@k6 home]#
删除tag:
docker rmi -f
hub.weir.com:1180/spring-cloud/jdk
这个时候我们就知道我自己写的工程怎么docker化了。
jenkins安装
我这里还是用yum来安装Jenkins,需要说明的是yum来安装Jenkins用的jdk是openJDK
sudo wget -O
/etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import
https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
安装的java是openJDK(oracleJDK的不行)
yum install java
root这个要修改,端口这个看自己的是否被占用。
·
sudo service jenkins start/stop/restart
·
sudo chkconfig jenkins on
Jenkins本身的操作这个网上文章就比较多了我这里就不做多说明了,后面我们做持续集成时再细说。