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

学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。

Openshift项目提供了集成Openshift插件的Jenkins容器镜像和部署模板。 o Openshift项目默认提供了两个Jenkins部署模板:jenkins-ephemeral-template、jenkins-persistent-template。

  1. jenkins-persistent-template 需要持久化卷的支持,其部署的Jenkins服务的数据可以被持久化。
  2. jenkins-ephemeral-template 部署的Jenkins服务的数据将在容器退出后丢失。适合测试使用。

这里选择jenkins-ephemeral-template来做研究。

部署jenkins服务

  • 以dev用户登录Openshift,创建一个名为ci的项目部署Jenkins服务。
# oc login -u dev
# oc new-project ci
  • 下载并导入jenkins-ephemeral-template模板。
# oc create -f https://raw.githubusercontent.com/openshift/origin/v3.6.0/examples/jenkins/jenkins-ephemeral-template.json
# oc get template
  • 为默认的Service Account用户添加权限,使Jenkins容器有足够的权限操作项目的配置及执行部署。
# oc policy add-role-to-user edit -z default
  • 通过Jenkins模板部署Jenkins服务。

下面指令需要提前安装git(yum -y install git)。

# oc new-app --template=jenkins-ephemeral
  • 由于需要下载Jenkins镜像,需要等待一段时间。通过oc get all监控Jenkin服务状态。
  • 登录web console查看。

需要修改浏览器所在机器的hosts文件,手动添加解析将jenkins-ci.router.default.svc.cluster.local指向openshift集群master所在的IP地址(参考上一篇博客《openshift/origin学习记录(5)——添加Template(模板)并基于模板部署应用 》)。

触发项目构建

《openshift/origin学习记录(5)——添加Template(模板)并基于模板部署应用》 建立的hello world php工程为例。

以Jenkins触发该项目的S2I构建。

  • 为Jenkins授权,让其可以在hello world php工程中执行操作。
# oc policy add-role-to-user edit system:serviceaccount:ci:jenkins -n hello-world-php 
  • 登录Jenkins,单击左边的New Item(新建),创建一个项目。输入项目类型为hello-world-php CI,类型为Freestyle project,确认创建该条目。
  • 添加构建步骤。

在详细配置界面,增加构建步骤,选择Trigger OpenShift Build条目。

  • 在参数列表中配置。完成后保存,返回到Jenkins控制台主页。

参数名

参数值

释义

Cluster API URL

https://openshift.default.svc.cluster.local

Openshift集群地址

Project

hello-world-php

项目名称

The name of the BuildConfig to trigger

cakephp-mysql-example

Build Config名称,可通过oc get bc查看

Pipe the build logs from OpenShift to the Jenkins console

yes

是否在Jenkins中输出Openshift的构建日志

  • 触发构建。

类似于执行了Openshift的build(有时间再更新)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

『高级篇』docker之gitlab和jenkins-CICD流程(43)

PS:最后总结下,建议jenkins不要使用容器安装,我用容器安装入了至少十几个坑,对了解命令还是有好处的。我总结几点

952
来自专栏实战docker

Docker下kafka学习,三部曲之三:java开发

在前两章《Docker下kafka学习,三部曲之一:极速体验kafka》和《Docker下kafka学习,三部曲之二:本地环境搭建》中,我们通过命令行体验了ka...

2757

部署一个Sinatra应用程序到Heroku

Heroku是一个云应用程序平台,专门用于解决服务器管理问题。您只需构建您的应用程序,通过Git将其推送到Heroku,部署就完成了。但是该怎么部署一个Sina...

19511
来自专栏Java技术栈

Spring Boot Server容器配置

参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似。 所有参数绑...

3508
来自专栏用户3030674的专栏

Android sdk配置 常见问题及处理方法

Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml Fetched ...

862
来自专栏Jerry的SAP技术分享

CloudFoundry命令行和Kubernetes命令行的Restful API消费方式

先说CloudFoundry的命令行工具CLI。我们在CloudFoundry环境下工作,第一个使用的命令就是cf login。

1273
来自专栏吴伟祥

Docker安装Jenkins实现项目自动部署(Java Web项目) 顶

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

1223
来自专栏哎_小羊

初试 Kubernetes 集群中使用 Traefik 反向代理

目录 Traefik 介绍 环境、软件准备 部署 Traefik 部署 Traefik UI 部署自定义 Ingress 部分特性说明 1、Traefik 介绍...

2.4K10
来自专栏五毛程序员

从0开始搭建自动部署环境(续)

2513
来自专栏Java Edge

SpringCloud入门1 简介2 微服务介绍3 服务注册与发现

3608

扫码关注云+社区