基于kubernetes集群的项目持续集成(gitlab+harbor+Jenkins)安装 weir 2018-05-27 21:53:47.0 gitlab,harbor,Jenkin 8893 这个算是基于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” 注意: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 我本来是想用这个命令来做开机自动启动的,看来是不行 http://192.168.38.56:1180 里面的操作就是可视化的了都能看懂 下面我们就尝试这往我们的私有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 weir 634623907@qq.com #把java添加到容器中 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 Step 2/6 : MAINTAINER weir 634623907@qq.com ---> Running in ccfe15e01f91 Removing intermediate container ccfe15e01f91 ---> 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 http://192.168.38.56:8180/ Jenkins本身的操作这个网上文章就比较多了我这里就不做多说明了,后面我们做持续集成时再细说。