1.Go 的安装
1.1需要提前安装JDK
1.2安装Go server
ubuntu系统:
预先下载好.deb安装包
dpkg -i go-server-${version}.deb
服务状态查看,启动,停止
sudo /etc/init.d/go-server status
sudo /etc/init.d/go-server start
sudo /etc/init.d/go-server stop
Redhat安装:
预先下载好rpm包
rpm -i go-server-${version}.noarch.rpm
服务状态查看,启动,停止
相关安装文件:
/var/lib/go-server 二进制文件,数据库文件
/etc/go pipeline配置文件
/var/log/go-server logs文件
/usr/share/go-server 启动脚本
/etc/default/go-server 环境变量
访问Go server:
http://< server host name >:8153/go
1.3 Go agent的安装类似server
Ubuntu系统:
agent安装好以后需要在/etc/default/go-agent中修改server的IP
然后启动agent:
/etc/init.d/go-agent start
1.4在server中注册agent
当agent出现在server的agent list中以后,需要enable以后才能使用
Tips:Go支持免安装使用
安装JDK
在go官网下载zip包,windows下直接运行start-server.bat,在linux环境下执行server.sh
2. Go 的升级
升级之前,需要先备份
3.用户管理
基于apache的file password验证:
3.1创建用户
cd /etc/go
htpasswd -c -s passwd user
该命令会在当前目录下创建passwd文件
在go的admin界面添加passwd file path:
/etc/go/passwd
3.2在go的admin界面中server configuration选项,配置passwd文件路径。
生成的xml路径: /etc/go/cruise-config.xml
4.基本概念
4.基本概念
4.1. Agent 生命周期
Go server会根据job的需求,找到resource匹配的agent。
Agent在自己的目录下创建沙盒目录,执行job过程中所有materials都会存到这个沙盒目录下面。
举例说明:
<pipeline name="my-product">
<materials>
<svn url="http://my-svn-server/tools" dest="tools"/>
<svn url="http://my-svn-server/my-project" dest="my-project"/>
</materials>
<stage name="compile">
<job name="linux">
<environmentvariables>
<variable name="FOO">
<value>bar</value>
</variable>
</environmentvariables>
<resources>
<resource>linux</resource>
</resources>
<tasks>
<exec command="/usr/bin/make" args="-f Makefile" workingdir="tools/my-tool"/>
<ant target="unit-test" workingdir="my-project"/>
</tasks>
<artifacts>
<artifact src="my-project/target/deployable.jar" dest="pkg"/>
</artifacts>
</job>
</stage>
</pipeline>
- 在agent上创建目录[install-dir]/pipelines/my-product
从
svn material "http://my-svn-server/tools"上checkout代码并存到"[install-dir]/pipelines/my-product/tools"中- 从svn material "http://my-svn-server/my-project" 下载到 "[install-dir]/pipelines/my-product/my-project"
- 在"[install-dir]/pipelines/my-product/tools/my-tool"下执行命令"/usr/bin/make"
- 在"[install-dir]/pipelines/my-product/tools/my-project"目录下执行ant
- 将"[install-dir]/pipelines/my-product/my-project/target/deployable.jar" 发布到server上
4.2. Pipelines
Pipelines能够将复杂的build任务拆分成一系列简单的stages,以实现快捷反馈,详细的可行验证,持续集成
Job是最小工作单元,它由一系列小的build任务组成,可以在符合需求的agent上执行。
Stage由一组可以并发执行的jobs组成,只有stage里面所有job都完成,stages任务才算成功。
Pipeline由一系列stages按照配置文件指定的特定顺序组合起来。Pipeline可以手动启动,也可以根据某些条件,例如版本更新来触发。 默认情况下,一个stage完成,自动触发下一个stage。我们也可以指定approval,然后手动执行。
Pipeline Groups:
为了方便根据访问权限,用途将pipelines划分进不同的group,便于管理
Pipelines dependencies:
Pipeline的依赖性在pipeline配置时设置,可以依赖scm或者其他peipelines
4.3.Deployment和environments
软件开发环境通常可以划分为开发,测试,集成,生产环境。
而测试也可以根据需求,分为scale测试环境,regression环境,single machine环境,cluster环境,performance环境等
我们可以用软件部署到不同环境,以实现不同的软件环境需求。
有疑问加站长微信联系(非本文作者)