1.在172.19.2.51上部署
mkdir-pv/opt/git gitclonehttp://172.19.2.140:18080/lvqingshan/gcgj.git cd/opt/git/gcgj scpapp@172.19.2.1:/home/app/portal-tomcat/webapps/portal.war./ scpapp@192.168.37.34:/home/app/portal-tomcat/conf/server.xml./ vimDockerfile FROMtomcat:7.0.77-jre8 #这里是基础镜像 ADDserver.xml/usr/local/tomcat/conf #server.xml文件要和Dockerfile再同一目录,这里是替换文件 RUNrm-rf/usr/local/tomcat/webapps/* COPYportal.war/usr/local/tomcat/webapps/ROOT.war #portal.war文件要和Dockerfile再同一目录,这里是复制文件 EXPOSE8080 #对外开放端口 CMD["/usr/local/tomcat/bin/catalina.sh","run"] #启动镜像时执行的命令
2.测试dockerfile是否能正常工作
dockerbuild-tgcgj/portal. dockerrun-p38080:8080-idtgcgj/portal:latest gitadd-A gitcommit gitpush-uoriginmaster gitlab账号lvqingshan 密码abcd1234
1.在192.168.13.45上配置仓库私钥
-----ENDCERTIFICATE-----
2.登录仓库
dockerlogin172.19.2.139 Username:admin Password:Cmcc@1ot
3.上传镜像测试
在habor上创建gcgj仓库后才能push
dockertaggcgj/portal:latest172.19.2.139/gcgj/portal dockerlogin-padmin-uCmcc@1ot-e172.19.2.139 dockerpush172.19.2.139/gcgj/portal
在kubernetes主节点172.19.2.50上配置
vim/opt/kube-portal/portal-rc1.yaml apiVersion:v1 kind:ReplicationController metadata: name:gcgj-portal spec: replicas:2 selector: app:portal template: metadata: labels: app:portal #加标签 spec: containers: -image:172.19.2.139/gcgj/portal:latest #要发布的镜像 name:portal resources: limits: cpu:"2" #pod占用的cpu资源 memory:2Gi #pod占用的内存资源 ports: -containerPort:8080 #pod提供的端口 volumeMounts: -mountPath:/usr/local/tomcat/logs #镜像内要挂载的目录 name:portal-logs volumes: -name:portal-logs hostPath: path:/opt/logs/portal #映射到本地的目录 vim/opt/kube-portal/portal-svc1.yaml apiVersion:v1 kind:Service metadata: name:gcgj-portal spec: ports: -name:portal-svc port:8080 targetPort:8080 nodePort:30088 #proxy映射出来的端口 selector: app:portal type:NodePort #端口类型
1.General中配置参数化构建过程
新增StringParameter 名字:VERSION 默认值:[空] 描述:请输入版本号2.源码管理Git设置
RepositoryURL为http://172.19.2.140:18080/lvqingshan/gcgj.git3.设置Gitlab出现变更自动触发构建
一分钟检测一次gitlab项目是否有变化
*/1****
4.Execute shell设置
两种控制版本的方式,当自动触发构建或者版本号为空时使用时间戳作为版本,当填入版本号时使用填入的版本号
imagesid=`dockerimages|grep-igcgj|awk'{print$3}'|head-1` project=/var/lib/jenkins/jobs/build-docker-router-portal/workspace if[-z"$VERSION"];then VERSION=`date+%Y%m%d%H%M` fi echo$VERSION ifdockerps-a|grep-igcgj;then dockerrm-fgcgj fi if[-z"$imagesid"];then echo$imagesid"isnull" else dockerrmi-f$imagesid fi dockerbuild-tgcgj/portal:$VERSION$project dockertaggcgj/portal:$VERSION172.19.2.139/gcgj/portal:$VERSION dockertaggcgj/portal:$VERSION172.19.2.139/gcgj/portal:latest dockerlogin-uadmin-pCmcc@1ot172.19.2.139 dockerpush172.19.2.139/gcgj/portal:$VERSION dockerpush172.19.2.139/gcgj/portal:latest5.ansible-playbook配置
在ansible主机192.168.13.45上配置
vim/home/app/ansible/playbooks/opstest/portal.yaml -hosts:172.19.2.50 remote_user:app sudo:yes tasks: -name:关闭原有pod shell:kubectldelete-f/opt/kube-portal ignore_errors:yes -name:启动新pod shell:kubectlcreate-f/opt/kube-portal