Go基本概念(1)

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.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环境等
我们可以用软件部署到不同环境,以实现不同的软件环境需求。

本文来自:CSDN博客

感谢作者:biheyu

查看原文:Go基本概念(1)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。