持续集成持续部署

环境准备

通过命令行创建一个工程

$ oc login https://master.example.com:8443 -u userxx -p redhat
$ oc new-project cicd-devxx

创建CICD 构建创始模型

登录 Web console(https://master.example.com:8443)界面,在工程列表中点击 cicd-devxx 进入初始界面,点击 Import YAML/JSON 按钮,进入 DevOps CICD 构建初始模型创建界面

ocp cicd import jenkeins.png

点击 Browser, 选择 demopipeline.yaml, 导入。

点击 Create 开始创建。等待 1 - 2 分钟后部署成功,查看路由信息:

$ oc get routes
NAME      HOST/PORT                             PATH      SERVICES   PORT      TERMINATION     WILDCARD
jenkins   jenkins-cicd-devxx.apps.example.com             jenkins    <all>     edge/Redirect   None

CICD 初始模型测试

在 Web Console 上选择 BuilsPipelines,进入到 Pipelines 列表,

ocp cicd demo start.png

点击右上角 Start Pipleline 按钮开始一次构建,构建的过程中点击 View Log, 重定向到 https://jenkins-cicd-devxx.apps.example.com/ 进入 jenkins-cicd 界面

ocp cicd jenkens sso.png

点击 Login with Openshift 使用 OpenShift 登录用户/密码登录, jenkins 构建日志界面如下:

ocp cicd jenkins logs.png

在 OpenShift Web Console 界面点击 Confim App Deploy

ocp cicd approval.png

点击 Process 进行 Deploy

ocp cicd approval process.png

CICD 一次成功构建界面

ocp cicd demo success.png

添加 PHP 项目构建

在 Web Console 上选择 BuilsPipelines,点击进入 ActionEdit,在 Build Stage 添加

sh "oc delete is php-helloworld || echo 'is no exist'"
sh "oc delete bc php-helloworld || echo 'bc no exist'"
sh "oc delete dc php-helloworld || echo 'dc no exist'"
sh "oc delete svc php-helloworld || echo 'svc no exist'"
sh "oc delete routes php-helloworld || echo 'route no exist'"
sh "oc new-app php:7.0~http://git.example.com/open-source/php-helloworld.git --name=php-helloworld"
sh "oc expose svc/php-helloworld"

ocp cicd deploy php.png

保存后再次手动触发 Pipeline,构建完成后可以通过 http://php-helloworld-cicd-devxx.apps.example.com/ 访问 PHP 页面

ocp cicd php view.png

自动触发 CICD 构建

如下命令会通过 Curl 命令模拟一个自动触发 Pipleline 构建,本部分实验需要安装 curl。

$ curl -k -X POST https://master.example.com:8443/oapi/v1/namespaces/cicd-devxx/buildconfigs/demopipeline/webhooks/secret101/generic

ocp cicd php changed.png

results matching ""

    No results matching ""