jenkins pipeline 的介绍说明
对应的jenkins地址:http://jenkins.yohops.com/
现在支持的JOB类型如下:
支持的项目:
JOB名称 | 作用 | 支持类型 |
---|---|---|
Docker-GitHook-Build-Deploy | 构建,打包,部署 | 适用于自动回调,以及可以在docker.sh编译 |
Docker-Image-Deplopy | 部 署 | 适用于镜像的部署,适配aws与qcloud |
Docker-Java-Build-Deploy | 构建,打包,部署 | 适用于需要打包替换的项目 |
Docker-Node-Build | 构建,打包,上传CDN | 适用于NODE相关的项目 |
DOCKREE_NODE_BUILD 介绍
- 主要用于node的镜像的构建,以及需要的项目的CDN上传,推送镜像到qcloud与aws。
- 与spinnaker平台结合使用,地址:http://spinnaker.dev.yohocorp.com/
JOB的参数介绍:
支持的参数:
string(name:'projectName', defaultValue: 'yoho-app-web', description: 'GITLAB应用名称')
string(name:'projectGitGroup', defaultValue: 'fe', description: 'GITLAB所在的组')
string(name:'projectBranch', defaultValue: 'release/1.0', description: 'git分支名称')
string(name:'deployName', defaultValue: 'yoho-app-web', description: '应用名称')
string(name:'imageSource', defaultValue: 'yoho-online', description: '镜像存储的仓库')
string(name:'imageVersion', defaultValue: 'release-1.0-20181227144324', description: '镜像存储的版本')
choice(name:'isNeedCdn',choices:'NO\nYES\n', description: '是否需要上传CDN')
支持的项目:
支持项目 | 已支持 |
---|---|
yohobuywap-node | 已支持 |
yohobuy-node | 待项目组开发 |
yoho-web-app | 已支持 |
ufo-web-app | 已支持 |
yohoblk-wap | 待项目组开发 |
yoho-activity-platform | 已支持 |
yoho-shop-manage | 已支持 |
pipeline特殊流程说明:
stage('upload to CDN and nfs')中主要将文件上传CDN此处使用了qshell进行文件的上传
sh "cp -r ${repalceDir} /nfs-ops/Data/app/node-ci/data"
此处使用了NFS盘(10.66.16.3),与yoho-ops集群中yoho-apm-dashboard服务共享。
Docker-Image-Deplopy
主要用于所有镜像aws与qcloud发布,可以被jenkins调用,也可以被工单系统调用,适用于所有的容器部署的项目,现在容器的发布均采用此JOB来进行发布。
实现说明
qcloud主要采用腾讯云的api进行更新,其中有600s的等待check时间.
aws主要采用aws cli进行更新,其中有600s的等待check时间.
参数说明:
string(name:'callBack', defaultValue: 'noNeedCallBack', description: '回调服务地址')
choice(name:'clusterId',choices:'aws\nyoho-web-gray\nyoho-ops\nyoho-web\nyoho-media\n', description: '集群的信息')
string(name:'serviceName', defaultValue: 'yoho-app-web', description: '服务名称 ')
string(name:'containerName', defaultValue: 'yoho-app-web', description: '容器名称')
string(name:'imageInfo', defaultValue: 'yohobuy-core/yohobuywap-node:hotfix-share-20181221134254', description: '镜像版本')
choice(name:'deployEnv',choices:'aws\nqcloud\nall\n', description: '部署的集群信息')
支持的项目
现在aws容器只接受灰度的发布,原先的服务需要在项目中创建好,此JOB只是起到更新容器中镜像的作用,不会修改其中的其他配置信息。
Docker-GitHook-Build-Deploy
主要用于项目的打包与发布构建,其中项目的根目录中需要存在docker.sh与Dockerfile文件。
docker.sh 此文件会接受一个参数为:${workspace},以及构建的基础脚本。
Dockerfile 此文件用于构建对应的镜像描述。
参数说明:
string(name:'callBack', defaultValue: 'noNeedCallBack', description: '回调服务地址') choice(name:'clusterId',choices:'aws\nyoho-web-gray\nyoho-ops\nyoho-web\nyoho-media\n', description: '集群的信息') string(name:'projectName', defaultValue: 'yoho-api-doc', description: 'GITLAB应用名称') string(name:'projectGitGroup', defaultValue: 'fe', description: 'GITLAB所在的组') string(name:'deployName', defaultValue: 'yoho-api-doc', description: '应用名称') string(name:'userMail', defaultValue: 'hua.qu@yoho.cn', description: '触发的人员邮箱') string(name:'imageSource', defaultValue: 'yoho-ops', description: '镜像存储的仓库') string(name:'branch', defaultValue: 'master', description: 'git分支名称')
支持的项目
只要项目中存在docker.sh与Dockerfile,即可以完成对应的部署,可以适配于GITHOOK与工单平台的调用。
Docker-Java-Build-Deploy
此JOB主要适用于现阶段JAVA打包替换,需要在git中http://git.yoho.cn/yohoops/auto_deploy_docker,存在对应的配置文件
string(name:'callBack', defaultValue: 'noNeedCallBack', description: '回调服务地址')
choice(name:'clusterId',choices:'aws\nyoho-media\nyoho-ops\nyoho-web\nyoho-web-gray', description: '集群的信息')
string(name:'projectName', defaultValue: 'yoho-now', description: 'GITLAB应用名称')
string(name:'projectGitGroup', defaultValue: 'YOHONow', description: 'GITLAB所在的组')
string(name:'deployName', defaultValue: 'java-yoho-now', description: '应用名称')
string(name:'branch', defaultValue: 'master', description: 'git分支名称')
string(name:'userMail', defaultValue: 'hua.qu@yoho.cn', description: '触发的人员名单')
choice(name:'nodeEnv',choices:'yoho-gray\nyoho-online\n', description: '选择环境')
string(name:'imageSource', defaultValue: 'yoho-ops', description: '镜像存储的仓库')
支持的项目
支持项目 | 已支持 |
---|---|
yoho-now | 已支持 |
yohonow-platform | 已支持 |
yohomars-platform | 已支持 |
yohomars-search-service | 已支持 |
jenkins节点预置条件
master 节点
基础键安装: java,maven,node,docker,aws cli,python,git,qshell JAVA
[root@VM_102_17_centos ~]# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
MAVEN
[root@VM_102_17_centos ~]# mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /home/soft/apache-maven-3.3.9
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_65/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-123.el7.x86_64", arch: "amd64", family: "unix"
DOCKER
[root@VM_102_17_centos ~]# docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64
Go version: go1.7.4
Git commit: 88a4867/1.12.6
Built: Mon Jul 3 16:02:02 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64
Go version: go1.7.4
Git commit: 88a4867/1.12.6
Built: Mon Jul 3 16:02:02 2017
OS/Arch: linux/amd64
AWS CLI
#如果您已经有 pip 和支持的 Python 版本,则可以使用以下命令安装 AWS CLI:
$ pip install awscli --upgrade --user
[root@VM_102_17_centos ~]# aws --version
aws-cli/1.16.81 Python/2.7.15 Linux/3.10.0-123.el7.x86_64 botocore/1.12.71
#需要使用AWS账户来认证后即可使用
$ aws configure
NODE
[root@VM_102_17_centos ~]# node -v
v10.3.0
Python
下载的版本为:Python-2.7.15
1.下载python2.7.x
wget https://www.python.org/ftp/python/2.7.x/Python-2.7.x.tgz
2.解压并编译安装
tar -zxvf Python-2.7.x.tgz && cd Python-2.7.x && ./configure && make all && make install && make clean && make distclean
3.检查安装
/usr/local/bin/python2.7 -V
需要配置环境变量,且jenkins中执行命令能够正常的使用。 git
[root@localhost ~]# git version
git version 2.9.5
同时需要配置密钥支持,ssh方式下载
qshell
[root@localhost qiniu]# qshell -v
QShell/v2.1.8 (linux; amd64; go1.9)
可参见七牛的帮助文本,需要根据ak与sk将认证配置完成