关闭

openshift jenkins

208人阅读 评论(0) 收藏 举报
分类:

1、环境规范

builder image 标签
为了保证builder 镜像更新版本后,template用最新的image,我们最好在template中指定image标签为latest。,修改is标签的方法为:
在docker 中执行一下命令:

#更改docker标签,并推送到仓库
[root@registry-node1 ~]# docker tag cabef4ead344 registry.example.com/golang-builder
[root@registry-node1 ~]# docker push registry.example.com/golang-builder

#更改is
vito@caas:~$ oc edit is golang-builder
imagestream "golang-builder" edited

#修改内容如下:增加 annotations 即可
  - annotations:
      description: Build and run golang 1.8 applications on linux,when you build project,you
        must set environment variable,PROJECT_NAME=you_project_name
      tags: builder
    from:
      kind: DockerImage
      name: registry.example.com/golang-builder:latest
    generation: 4
    importPolicy:
      insecure: true
    name: latest
    referencePolicy:
      type: Source

持久化存储
postgres 数据库设置持久化存储。为了了解创建持久化的过程,首先我用Postresql Ephemeral模板,创建非持久化的数据库,然后创建pvc,最后把pvc挂载到postgres 数据库中,完成数据持久化过程。

# 查询创建好的pvc名称
vito@caas:~$ oc get pvc
NAME            STATUS    VOLUME                                     CAPACITY   ACCESSMODES   STORAGECLASS             AGE
peony-storage   Bound     pvc-a03d1825-c9cb-11e7-b8ec-0050568cc9dc   1Gi        RWO           ceph-storageclass-slow   19h

# 查询postgres-svc服务volume的设置情况,其中empty directory表示该容器使用的是empty directory卷,数据保存在计算节点上。
vito@caas:~$ oc volumes dc/postgres-svc
deploymentconfigs/postgres-svc
  empty directory as postgres-svc-data
    mounted at /var/lib/pgsql/data
# 我们执行volume 挂载更新操作:
vito@caas:~$ oc volume dc/postgres-svc --add --name=postgres-svc-data -t pvc --claim-name=peony-storage --overwrite
deploymentconfig "postgres-svc" updated
# 再次查询volume
vito@caas:~/docker$ oc volumes dc/postgres-svc
deploymentconfigs/postgres-svc
  pvc/peony-storage (allocated 1GiB) as postgres-svc-data
    mounted at /var/lib/pgsql/data
# 我们发现volume 类型变成了pvc/peony-storage,完成持久化操作。
# 重启容器,测试数据是否持久化,重启过程中,提示pvc 挂载失败,需要执行以下脚本,赋予权限。

apiVersion: v1
data:
  key: QVFDTWljQlpGN1htS0JBQWluZ2RsQzdKUmJMVm82YVljMkhXbkE9PQ==
kind: Secret
metadata:
  name: ceph-secret-openshift
  namespace: ecloudcaas-dev
type: kubernetes.io/rbd

#执行创建
oc create -f pvc-sercret.yaml 
# 重启容器,成功,测试持久化存储,成功!!

定义SERVICE NAME
服务之间访问,用service name 来传递ip地址和端口,每个服务首先创建service,然后deploy 容器,系统会自动把service的ip和port注入到pod的环境变量中,注意先后顺序,先service,然后创建pod。

增加健康检查
为每个服务创建健康检查,过程不再赘述

导出模板
oc export bc,dc,svc,is,route,pvc -o json –as-template=’dev-template’ >dev-template.json

创建jenkins项目

创建三个项目:
1、ecloudcaas-dev
2、ecloudcaas-sit
3、ecloudcaas-release

赋权:
jenkins需要权限来操作openshift,赋权给他

vito@caas:~$ oc policy add-role-to-user edit system:serviceaccount:ci:default -n ecloudcaas-dev
role "edit" added: "system:serviceaccount:ci:default"
vito@caas:~$ oc policy add-role-to-user edit system:serviceaccount:ci:default -n ecloudcaas-sit
role "edit" added: "system:serviceaccount:ci:default"
vito@caas:~$ oc policy add-role-to-user edit system:serviceaccount:ci:default -n ecloudcaas-release
role "edit" added: "system:serviceaccount:ci:default"

docker register 赋权:
SIT环境和RELEASE环境需要拉取DEV环境的镜像,下面的命令赋权

vito@caas:~$ oc project ecloudcaas-dev
Now using project "ecloudcaas-dev" on server "https://openshift-cluster.example.com:8443".
vito@caas:~$ oc policy add-role-to-user edit system:image-pullersystem:serviceaccount:ecloudcaas-sit:default -n ecloudcaas-dev
role "edit" added: "system:image-pullersystem:serviceaccount:ecloudcaas-sit:default"
vito@caas:~$ oc policy add-role-to-user edit system:image-pullersystem:serviceaccount:ecloudcaas-release:default -n ecloudcaas-dev
role "edit" added: "system:image-pullersystem:serviceaccount:ecloudcaas-release:default"

集成环境部署配置
引用dev开发环境的is,在sit测试环境中创建is,sit环境中的is指向dev环境。

vito@caas:~$ oc tag ecloudcaas-dev/pontus:latest ecloudcaas-sit/pontus:latest
Tag ecloudcaas-sit/pontus:latest set to ecloudcaas-dev/pontus@sha256:50bc72694145fb52dcea08fa46d546d6f49f0680a5e16d391b1ecb7c9ca273f6.
vito@caas:~$ oc tag ecloudcaas-dev/peony:latest ecloudcaas-sit/peony:latest
Tag ecloudcaas-sit/peony:latest set to ecloudcaas-dev/peony@sha256:1fc429ca3e49fa060d12d32f2570ce088a1f794f13f6473211aa7fddf0bb19f7.
#执行部署命令,创建部署任务
oc new-app -i ecloudcaas-sit/pontus:latest

生成环境部署配置
引用sit测试环境的is,在release生成环境中创建is

vito@caas:~$ oc tag ecloudcaas-sit/peony:latest ecloudcaas-release/peony:latest
Tag peony:latest set to ecloudcaas-sit/peony@sha256:1fc429ca3e49fa060d12d32f2570ce088a1f794f13f6473211aa7fddf0bb19f7.
vito@caas:~$ oc tag ecloudcaas-sit/pontus:latest ecloudcaas-release/pontus:latest
Tag pontus:latest set to ecloudcaas-sit/pontus@sha256:50bc72694145fb52dcea08fa46d546d6f49f0680a5e16d391b1ecb7c9ca273f6.
#执行部署命令,创建部署任务
oc new-app -i ecloudcaas-release/pontus:latest

jenkins 配置过程

配置jenkins域名后,访问jenkins页面,输入用户名密码后,登录控制台:
这里写图片描述

DEV构建jenkins配置
点击上图的新建链接,输入jenkins项目名称,选择自由风格,点击下面的保存,如下图:
这里写图片描述

选择构建任务,创建构建步骤:
这里写图片描述

需要写的项目如下图:
这里写图片描述

SIT构建jenkins配置
点击上图的新建链接,输入jenkins项目名称pontus-sit-ci,选择自由风格,点击下面的保存,进入配置页面,选择tag openshift image条目,如下图,注意,sit测试环境和release生成环境都不需要build,而是直接拉取dev环境build出来的镜像进行工作。
这里写图片描述

继续添加:Trigger openshift deployment
这里写图片描述

RELEASE构建jenkins配置
过程参考上面的 SIT构建jenkins配置

0
0
查看评论

openshift pipeline

用oc命令创建pipeline 模板如下:{ "apiVersion": "v1", "kind": "BuildConfig", "metadata": { ...
  • warrior_0319
  • warrior_0319
  • 2017-11-24 10:35
  • 156

openshift/origin学习记录(7)——集成Jenkins服务

学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。 本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行。 Openshift项目提供了集成Openshift插件的Jenkin...
  • huqigang
  • huqigang
  • 2017-09-12 15:29
  • 804

自动化工具Ansible:基于Jenkins+Ansible+GitLab的部署实践

转载出处:微信公众号EAWorld 从早期手动加脚本的部署方式,到后来自动化工具(chef, puppet, saltstack, ansible等)的出现,再到如今DevOps的盛行,企业应用部署正式进入平台部署阶段,CD(持续部署)已经成为企业对应用部署的标准需求,运维的交...
  • u012411480
  • u012411480
  • 2017-07-19 09:21
  • 1934

openshift 学习笔记-4 Jenkins

准备jenkins环境1、登录opeshift:oc login -u admin https://127.0.0.1:8443 2、创建名称为ci的项目:oc new-project ci 3、下载导入jenkins模板:oc create -f jenkins-ephemeral.yaml ...
  • warrior_0319
  • warrior_0319
  • 2017-10-16 15:20
  • 394

Jenkins学习总结(5)——免费DevOps开源工具简介

一:开发工具 1.版本控制系统 Git Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 2.代码托管平台 GitLab GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的...
  • u012562943
  • u012562943
  • 2016-08-19 11:39
  • 2479

#独畅团#加大码松紧腰糖果色加绒加厚打底小脚铅笔裤靴裤牛仔裤女

促销价格 : 98.0 元 掌柜 : 小虎商贸 信用 : <img src="http://pics.taobaocdn.com/newrank/ http://pics.taobaocdn.com/newrank/s_blue_4.gif"> 30天累计售出 ...
  • yanxindtc
  • yanxindtc
  • 2011-12-29 08:32
  • 0

使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器

在win10中使用idea开发一个模块化的maven项目,然后想要把该项目直接编译到远程linux服务器的docker中,具体做法如下:        第一:在各模块中的pom文件中加入以下 plugin> gro...
  • lvyuan1234
  • lvyuan1234
  • 2017-04-05 15:31
  • 9460

PAAS平台对比:OpenShift VS CloudFoundry【51CTO调研报告】

  • tantexian
  • tantexian
  • 2015-07-30 13:55
  • 1892

OpenShift架构

参考redHat的官方文章翻译而来:https://openshift.redhat.com/community/wiki/architecture-overview OpenShift Origin Openshift Origin是Openshift的开源版本,可以用来创建、部署以及管理云端...
  • cherry_sun
  • cherry_sun
  • 2012-05-24 16:39
  • 7921
    个人资料
    • 访问:9218次
    • 积分:482
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:8篇
    • 译文:2篇
    • 评论:1条
    文章分类