DevOps与Continuous Delivery
DevOps:Development和Operations的组合,开发、测试和运维三个部分紧密联系,加强合作,是一个“整体合作”的概念。
CD:continuous integration,实现DevOps的方法。
- 三个重点:自动化、持续、有效的反馈。
- 解决的问题:开发人员之间环境的不一致;版本管理问题;快速响应(发布、回滚)问题。
将生成的mybank镜像推push到阿里云仓库
#刷新docker
systemctl restart docker
#1)本地镜像贴标签
docker tag mybank:1.0 registry.cn-hangzhou.aliyuncs.com/ivyfan/mybank:0.8
#2)网页中申请namespace、并创建镜像仓库(选择本地仓库)
例如:registry.cn-hangzhou.aliyuncs.com/acs/agent:0.8
registry.cn-hangzhou.aliyuncs.com 叫做 "Registry域名"。
acs 叫做 "命名空间"。
agent 叫做 "仓库名称"。
0.8 叫做 "Tag"、"镜像标签"(非必须,默认latest)。 将这个几个完全独立的概念组合一下,还有几个术语。
registry.cn-hangzhou.aliyuncs.com/acs/agent 称为 "仓库坐标"。
acs/agent 称为 "仓库全名"(通常在API中使用)。
#3)terminal中登录docker,username是阿里云的登录名称
docker login --username=ivyfan_ali registry.cn-hangzhou.aliyuncs.com
#4)push镜像(查看dockerimage,与里面的要push的镜像进行对应)
docker push registry.cn-hangzhou.aliyuncs.com/ivyfan/mybank:0.8
>>The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/ivyfan/mybank]
435ea9c7a748: Pushed
4070610ad6a6: Pushed
104544937081: Pushed
8013db90d765: Pushed
fb98c08a3432: Pushed
6afd54c80453: Pushed
87deae939d42: Pushed
b0f743408169: Pushed
5bef08742407: Pushed
0.8: digest: sha256:b177e4f3ffb493db781df286d2f555bad57ab7372ddf63ad2af97dea02a039ea size: 2206
#5)pull 已经生成的镜像
docker pull registry.cn-hangzhou.aliyuncs.com/ivyfan/mybank:0.8
错误:unauthorized: authentication required
注意:docker login --username=ivyfan_ali registry.aliyuncs.com是否是push的地址
目的:通过Jenkins页面触发自动build
#1)部署Jenkins服务,先新建一个project,添加jenkins的模板(非永久存储)
oc create -f https://raw.githubusercontent.com/openshift/origin/v1.3.0/examples/jenkins/jenkins-ephemeral-template.json
#2)查看已经导入的模板
oc get template
#3)添加用户权限,
oc policy add-role-to-user edit -z default
>> role "edit" added: "default"
#4)
oc new-app --template=jenkins-ephemeral --param=JENKINS_PASSWORD=welcome
--> Deploying template "ci2/jenkins-ephemeral" to project ci2
jenkins-ephemeral
---------
Jenkins service, without persistent storage.
WARNING: Any data stored will be lost upon pod destruction. Only use this template for testing
A Jenkins service has been created in your project. The username/password are admin/welcom. The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.
* With parameters:
* Jenkins Service Name=jenkins
* Jenkins JNLP Service Name=jenkins-jnlp
* Jenkins Password=welcom
* Memory Limit=512Mi
* Jenkins ImageStream Namespace=openshift
* Jenkins ImageStreamTag=jenkins:latest
--> Creating resources ...
route "jenkins" created
deploymentconfig "jenkins" created
serviceaccount "jenkins" created
rolebinding "jenkins_edit" created
service "jenkins-jnlp" created
service "jenkins" created
--> Success
Run 'oc status' to view your app.
构建部署流水线
1.创新开发测试环境项目
#1)新项目
oc new-project mybank-dev --display-name="fxw:Mybank-dev" --description="mybank开发环境"
#2)添加镜像以widfly为编译的centos环境
oc new-app openshift/widfly-100-centos7~https://github.com/nichochen/mybank-demo-maven
网友评论