Linux下搭建Jenkins持续集成

Linux下搭建Jenkins持续集成
Linux下搭建Jenkins持续集成

软件环境:centos7

1.安装准备

A、Maven(也可留在Jenkins安装完成后,配置maven时选择自动安装)

B、SVN(或Git)

C、OpenJDK(不是JDK。也同样可以留在安装完成后,配置JDK时选择自动安装)

D、Tomcat(Jenkins也自带有Jetty服务器,可使用“service jenkins start”来开启安装后的Jenkins服务,如需使用Tomcat则需要将安装目录/usr/lib/jenkins/下的war包放于Tomcat的webapps目录下)

2. 安装Jenkins

A.创建Jenkins的yum源文件

vi /etc/yum.repos.d/jenkins.repo

B.在Jenkins.repo中加入以下内容:

[jenkins]

name=Jenkins

baseurl=https://www.360docs.net/doc/7a7797490.html,/redhat

gpgcheck=1

C.rpm增加Jenkins源的key

sudo rpm --import https://www.360docs.net/doc/7a7797490.html,/redhat/https://www.360docs.net/doc/7a7797490.html,.key

D.安装jenkins

sudo yum install jenkins

3.Jenkins相关目录和配置

安装完成后,有如下相关目录:

/usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里。

/etc/sysconfig/jenkins:jenkins 配置文件,端口、JENKINS_HOME等都在这里配置。配置如下:

## xxxxxxx省略注释

JENKINS_HOME="/usr/lib/jenkins"

## xxxxxxx省略注释

JENKINS_JAVA_CMD=""

## xxxxxxx省略注释

JENKINS_USER="jenkins"

## xxxxxxx省略注释

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

## xxxxxxx省略注释

JENKINS_PORT="8080"

## xxxxxxx省略注释

JENKINS_AJP_PORT="8009"

## xxxxxxx省略注释

JENKINS_DEBUG_LEVEL="5"

## Txxxxxxx省略注释

JENKINS_ENABLE_ACCESS_LOG="no"

## xxxxxxx省略注释

JENKINS_HANDLER_MAX="100"

## xxxxxxx省略注释

JENKINS_HANDLER_IDLE="20"

## xxxxxxx省略注释

JENKINS_ARGS=""

4.启动Jenkins

A:如果是使用自带的Jetty服务器,启动可以使用命令:sudo service jenkins start。B:如果是部署在Tomcat服务器上,直接启动Tomcat即可。

5.初始化Jenkins

step1、打开页面http://[ip]:[port]/jenkins。

step2、初始启动需要密码,密码文件位于/var/lib/jenkins/secrets/initialAdminPassword,复制填入,点击Continue。

step3、Customize Jenkins选择Install suggested plugins即可。

step4、创建用户。

6.配置Jenkins

step1、配置前先安装Publish Over SSH插件,用于支持远程shell。

安装方法:

首页->系统管理->管理插件->可选插件->过滤(搜索插件名)->勾选->点击直接安装即可(需要等待一段时间,详情可以查看控制台输出日志(圆球形状)变化)。

step2、系统设置配置,Jenkins的所有全局配置都在系统管理->系统设置中,这里面配置的全局属性如邮件系统、Maven项目设置、Post Steps等都可以在新建的项目属性中得到援引。具体配置如下:

A.主目录->高级,可以配置工作空间目录和构建日志目录。每个项目(ITEM)默认存在于${}JENKINS_HOME}/workspace/${ITEM_FULLNAME}下。

这里说到了工作空间,大致就说说Jenkins运作流程,首先它会绑定版本控制服务器,如svn。每当有svn版本仓库有变更时(触发器),Jenkins会检查到并马上将版本仓库指定目录下的文件(Source files,一般是svn仓库中的一个项目)加载到工作空间,之后会根据指定项目路径的pom.xml(Build)构建项目,然后会使用Publish Over SSH插件(需配置)将构建的项目(如war)传送到指定目标服务器的指定路径(Remote directory)下,并且运行目标服务器的shell脚本(该脚本主要完成war包移动至webapps下,并重启tomcat)。

B.Maven项目配置,在全局MAVEN_OPTS中添加“-Dmaven.repo.local=“你的maven 本地仓库路径”来使maven强制使用该路径作为自身的本地仓库。

C.Jenkins Location配置,Jenkins Location为Jenkins访问地址,系统管理员邮件地址应和邮件服务器配置的发件人邮件地址保持一致。

D.Subversion配置,选择安装的svn版本和版本库地址。

E.Extended E-mail Notification,用户自定义邮件通知,下面以QQ邮箱为例:SMTP server:https://www.360docs.net/doc/7a7797490.html,(SMTP服务器IP)

Default user E-mail suffix:@https://www.360docs.net/doc/7a7797490.html,(默认邮件后缀)

高级->勾选Use SMTP Authentication(身份认证)

User Name :xxxxxxxxxxxx@https://www.360docs.net/doc/7a7797490.html,(和上面配置的系统管理员邮件地址一致)Password:????????????????(QQ邮件设置中需开启smtp服务,并且会生成一串授权码,此处填入授权码)

勾选Use SSL

SMTP port:465

Charset:UTF-8

Default Content Type:HTML(text/html)

-》内容模板可参考以下:

(本邮件是程序自动下发的,请勿回复,请相关人员fix it,重新提交到svn构建)


项目名称:$PROJECT_NAME


构建编号:$BUILD_NUMBER


SVN版本号:${SVN_REVISION}


构建状态:$BUILD_STATUS


触发原因:${CAUSE}


构建日志地址:

href="${BUILD_URL}console">${BUILD_URL}console


构建地址:$BUILD_URL

变更集:${JELLY_SCRIPT,template="html"}


F.邮件通知配置如下:

SMTP服务器:https://www.360docs.net/doc/7a7797490.html,

用户默认邮件后缀:@https://www.360docs.net/doc/7a7797490.html,

高级->勾选使用SMTP认证

用户名:xxxxxxxxxx@https://www.360docs.net/doc/7a7797490.html,

密码:????????????????(同上)

勾选使用SSL协议

SMTP端口:465

Reply-To Address:xxxxxxxxxxxx@https://www.360docs.net/doc/7a7797490.html,(收件邮箱)

字符集:UTF-8

G.Publish over SSH配置如下:

Jenkins SSH Key Passphrase:????????????????

Path to key

Key

Disable exec

Name:SSH_Test

Username:root

Remote Directory:/data/Jenkins_War/(目标服务器war包接收路径)

勾选Use password authentication, or use a different key

Passphrase / Password:????????????????

Path to key

Key

以上配置的Passphrase为目标服务器root用户的登录密码,这里直接使用的是登录密码。如需使用SSH秘钥,可在在Path to key配置私钥路径,Key中配置私钥内容,并在目标服务器/home/相应登录用户文件夹

/.ssh/authorized_keys中添加公钥(如果没有该文件,则手动创建之)。

step3、Global Tool Configuration,全局工具配置,里面配置Jenkins需要使用到的工具的配置,如svn、maven、jdk等。

A.JDK配置:可选择自动安装,然后勾选合适的JDK版本进行安装,或者指定已安装的JDK 目录。

B.Maven Configuration配置:maven的setting.xml路径配置。

C.Maven配置:可选择自动安装,然后勾选合适的Maven版本进行安装,或者指定已安装的Maven目录。

step4、在目标服务器上传自动化部署脚本,文件详见上传文件“deploy.sh”。

逻辑:

1.脚本支持三个参数,默认只传入第一个参数,第一个参数:应用名称;第二个参数:Tomcat 端口;第三个参数:Tomcat所在路径。

2.设定相关变量(Tomcat所在路径Tomcat_Home、Tomcat端口Tomcat_port、应用名称Project)

3.Kill掉Tomcat进程

4.删除应用

5.拷贝新的war包

6.备份war包

7.删除war包

8.启动Tomcat

7.对项目进行持续集成

step1、对于maven项目,需要先安装Maven Integration plugin插件,安装方法同安装Publish Over SSH插件。

step2、首页->新建->构建一个maven项目(输入item名称)->进入该项目->配置,具体配置如下:

A.General,项目名称不用说,勾选丢弃旧的构建->保存构建天数、保持构建的最大个数(自己视情况而定),勾选参数化构建过程->choice parameter:

Name=VERSION

Choices=1.0.1

Description=产品系统/模块的版本号

B.源码管理Subversion:

Repository URL=svn://[ip]/svn版本仓库/其中一个项目(文件夹)

Credentials=svn访问用户名和密码(Add中添加Username和Password即可)

C.构建触发器,勾选Poll SCM,日程表=H/60 * * * *(表示每60分钟检查svn版本库一次)

D.Build:

Root POM=pom.xml(在工作空间目录下pom.xml的相对位置,其实也就是svn配置中Repository URL属性后面的地址)

Goals and options=clean -DskipTests=true install -Pprod -U(maven执行命令,跳过了Test)

E.Post Steps,Add post-build step->Send files or execute commands over SSH,配置如下:

Name=下拉选择开始系统设置中设置的SSH-Test

Source files=target/*.war(相对于工作空间目录下的war包相对位置,其实也就是svn 配置中Repository URL属性后面的地址)

Remove prefix=target/(移除前缀)

Remote directory=war(在系统设置中配置的Remote Directory路径下的相对位置,即该项目将传于目标服务器/data/Jenkins_War/war/目录下)

Exec command=/data/Jenkins_War/deploy.sh MySpringBoot(自动部署脚本在目标服务器的位置,并传入第一个参数:项目名)

F.构建后操作,增加构建后操作步骤->Editable Email Notification->Advanced Settings:Send-TO 删除Developers,在高级里面直接配置:Recipient List=接受者邮箱

8.自动构建和手动构建

A:根据上面配置,将每60分钟查看一次svn版本库是否有变更并执行构建,这既是自动构建。

B:手动构建,选择Build with Parameter->可选择此处构建产生的版本->立即构建。

左边导航栏可看到构建历史,点击小球可以查看控制台输出。

注意:1. 项目配置中,一般像路径这些东西,配置有问题都会出现红色警告的,除了Publish Over SSH配置外

2.上面没说到的配置,都直接默认即可。

Jenkins搭建到这里就结束了,在搭建Jenkins的路上走了不少坑,特此记一笔。

以上就是Linux下搭建Jenkins持续集成的全文介绍,希望对您学习和使用linux系统开发有所帮助.

一步步搭建jenkins持续集成平台

一步步搭建jenkins持续集成平台 持续集成作为最先进的项目实践之一,逐渐在受到天朝软件公司的重视,笔者从事近1年半时间的相关工作,也无法游刃有余,用了很久jenkins了,也没有做个入门介绍给大家,惭愧,最近在迁移,顺便重新搞下,记录以飨读者. 【持续集成相关工具集】: CI-Server(Jenkins/Hudson.....) 代码管理工具(SVN/git...) java框架(maven) 覆盖率工具(c++:gcov java:maven cobertura插件) 静态扫描插件(jenkins插件) 覆盖率报表合并工具 jenkins二次开发api apache +php +codeiginter 配置 mysql +python 用来管理数据库 python-dev 下载链接 ........... 笔者将来会专门在持续集成板块介绍相关的工具集合 【安装Jenkins配置启动】: apache-tomcat-6.0.37-src.tar.gz + jenkins.1.556.war 自己搜索下吧 tomcat/bin下全部chmod +x ./* 把jenkins.war 拷贝到tomcat/webapps下 启动tomcat/bin 下startup.sh 查看8080端口是否启动 浏览吧:http://192.168.1.xxx:8080/jenkins 若想从局域网别的机器访问,则修改tomcatxxx/cong/server.xml Host name="xxx.xxx.xxx.xxx" Engin name="xxx.xxx.xxx.xxx" 同时设置防火墙(局域网其他机器打不开时可以试试) iptables -I INPUT -p tcp --dport 8080 -J ACCEPT iptables -I OUTPUT -p tcp --dport 8080 -J ACCEPT 【jenkins重启】 cd tomcat/bin/ catalina.sh stop kill pid(java) catalina.sh bin 【增加Slave节点】 1.salve初始化帐号(例:主10.129.145.112 新Slave:10.209.23.90) useradd jenkins -m -d /data/home/jenkins #创建jenkins帐号 2.拷贝jenkin主server上的slave.jar包/usr/local/tomcat/webapps/jenkins/WEB-INF/slave.jar 到新slave的/data/home/jenkins/slave.jar 3.配置: 1).系统管理->节点管理->新建节点10.129.145.112:8081/jenkins/computer/new

详解bootloader的执行流程与ARM Linux启动过程分析

详解bootloader的执行流程与ARM Linux启动过程分析 ARM Linux启动过程分析是本文要介绍的内容,嵌入式Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。 本文以S3C2410 ARM处理器为例,详细分析了系统上电后bootloader的执行流程及ARM Linux的启动过程。 1、引言 Linux 最初是由瑞典赫尔辛基大学的学生Linus Torvalds在1991 年开发出来的,之后在GNU的支持下,Linux 获得了巨大的发展。虽然Linux 在桌面PC 机上的普及程度远不及微软的Windows 操作系统,但它的发展速度之快、用户数量的日益增多,也是微软所不能轻视的。而近些年来Linux 在嵌入式领域的迅猛发展,更是给Linux 注入了新的活力。 一个嵌入式Linux 系统从软件角度看可以分为四个部分:引导加载程序(bootloader),Linux 内核,文件系统,应用程序。 其中bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用Linux 内核。 Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。 根文件系统是Linux 系统的核心组成部分,它可以做为Linux 系统中文件和数据的存储区域,通常它还包括系统配置文件和运行应用软件所需要的库。 应用程序可以说是嵌入式系统的“灵魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持,任何硬件上设计精良的嵌入式系统都没有实用意义。 从以上分析我们可以看出bootloader 和Linux 内核在嵌入式系统中的关系和作用。Bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本

linux内核启动 Android系统启动过程详解

linux内核启动+Android系统启动过程详解 第一部分:汇编部分 Linux启动之 linux-rk3288-tchip/kernel/arch/arm/boot/compressed/ head.S分析这段代码是linux boot后执行的第一个程序,完成的主要工作是解压内核,然后跳转到相关执行地址。这部分代码在做驱动开发时不需要改动,但分析其执行流程对是理解android的第一步 开头有一段宏定义这是gnu arm汇编的宏定义。关于GUN 的汇编和其他编译器,在指令语法上有很大差别,具体可查询相关GUN汇编语法了解 另外此段代码必须不能包括重定位部分。因为这时一开始必须要立即运行的。所谓重定位,比如当编译时某个文件用到外部符号是用动态链接库的方式,那么该文件生成的目标文件将包含重定位信息,在加载时需要重定位该符号,否则执行时将因找不到地址而出错 #ifdef DEBUG//开始是调试用,主要是一些打印输出函数,不用关心 #if defined(CONFIG_DEBUG_ICEDCC)

……具体代码略 #endif 宏定义结束之后定义了一个段, .section ".start", #alloc, #execinstr 这个段的段名是 .start,#alloc表示Section contains allocated data, #execinstr表示Section contains executable instructions. 生成最终映像时,这段代码会放在最开头 .align start: .type start,#function /*.type指定start这个符号是函数类型*/ .rept 8 mov r0, r0 //将此命令重复8次,相当于nop,这里是为中断向量保存空间 .endr b 1f .word 0x016f2818 @ Magic numbers to help the loader

使用Jenkins配置Git+Maven的自动化构建

使用Jenkins配置Git+Maven的自动化构建文/邴越https://www.360docs.net/doc/7a7797490.html,/binyue/ Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。 现在很多公司的Java项目开发都是使用Git或者SVN管理代码,Maven 管理多模块和项目依赖, 所以今天尝试学习如何使用Jenkins搭建Github与Maven下的自动构建和部署。 1.部署Jenkins 官网下载https://www.360docs.net/doc/7a7797490.html,/。目前的最新版本是1.629。 Jenkins的安装十分简单,下载后就是一个jenkins.war的war包,可以直接部署在Tomcat或者其他容器中。 如果不能部署,可以检查Tomcat的配置文件,可以查看server.xml里unpackWARs和autoDeploy是否设置为True。 另外官网还有相关的.deb等的安装,比较繁琐,具体哪种方式部署可以自己选择。 2.安装相关插件 把war文件拷贝到Tomcat的webapps目录, 启动后进入http://SERVER_PATH:8080/jenkins/,可以看到Jenkins已经在运行:

配置Git仓库需要用到Git插件,Jenkins默认没有Git插件,需要手动安装。 点击Manage Jenkins,进入Manage Plugins, 在可用(Avaliable)插件列表下找到Source Code Management一栏, 选择GIT plugin插件,安装之后重启。 其他的插件如Maven等,Jenkins默认安装,不需要手动下载。 3.配置Maven和JDK路径等 选择Configure System,可以配置Maven安装路径等。 如果没有Maven和Git环境,需要另外设置。

linux grub 引导启动过程详解

linux grub 引导启动过程详解 2008-01-08 17:18 这几天看了很多文档,算是对linux的启动过程有了比较细致的了解. 网上有很多文章谈到这方面的内容,但总觉得没有一篇完全的解析linux启动的 细节,下面是我小弟在学习的过程中总结出来的一些东东.这个是完整的linux启动过程, 不涉及内核,但是我觉得比较详细哦. (由于本人比较懒,这一段是从网上抄的) 机器加电启动后,BIOS开始检测系统参数,如内存的大小,日期和时间,磁盘 设备以及这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被配置成首先检查 软驱或者光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设 备中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区, 寻找用于装载操作系统的指令。装载操作系统的这个程序就是boot loader. linux里面的boot loader通常是lilo或者grub,从Red Hat Linux 7.2起,GRUB( GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。那么启动的时候grub是如何被载入的呢 grub有几个重要的文件,stage1,stage2,有的时候需要stage1.5.这些文件一般都 在/boot/grub文件夹下面.grub被载入通常包括以下几个步骤: 1. 装载基本的引导装载程序(stage1),stage1很小,网上说是512字节,但是在我的系统上用du -b /boot/grub/stage1 显示的是1024个字节,不知道是不是grub版本不同的缘故还是我理解有误.stage1通常位于主引导扇区里面,对于硬盘就是MBR了,stage1的主要功能就是装载第二引导程序(stage2).这主要是归结于在主引导扇区中没有足够的空间用于其他东西了,我用的是grub 0.93,stage2文件的大小是107520 bit. 2. 装载第二引导装载程序(stage2),这第二引导装载程序实际上是引出更高级的功能, 以允许用户装载入一个特定的操作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令。由于stage2很大,所以它一般位于文件系统之中(通常是boot所在的根 分区). 上面还提到了stage1.5这个文件,它的作用是什么呢你到/boot/grub目录下看看, fat_stage_1.5 e2fs_stage_1.5 xfs_stage_1.5等等,很容易猜想stage1.5和文件系统 有关系.有时候基本引导装载程序(stage1)不能识别stage2所在的文件系统分区,那么这 时候就需要stage1.5来连接stage1和stage2了.因此对于不同的文件系统就会有不同的stage1.5.但是对于grub 0.93好像stage1.5并不是很重要,因为我试过了,在没有stage1.5 的情况下, 我把stage1安装在软盘的引导扇区内,然后把stage2放在格式化成ext2或者fat格式的软盘内,启动的时候照常引导,并不需要e2fs_stage_1.5或者fat_stage_1.5. 下面是我的试验: #mkfs.ext2 /dev/fd0 #mount -t ext2 /dev/fd0 /mnt/floppy #cd /mnt/floppy #mkdir boot #cd boot #mkdir grub (以上三步可用mkdir -p boot/grub命令完成) #cd grub #cp /boot/grub/{stage1,stage2,grub.conf} ./ #cd; umount /mnt/floppy

Linux启动全过程-由bootloader到fs

Linux启动过程 许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过。其实Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段: 1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。 2.执行程序init。装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动, 包括重要系统精灵程序和其它指定在启动时装入的软件。 下面以Red Hat为例简单介绍一下Linux的启动过程。 一、启动内核 首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引导过程的控制权后,会显示LILO提示符。此时如果用户不进行任何操作,LILO将在等待制定时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个可引导的操作系统列表,选择相应的操作系统名称就能进入相应的操作系统。当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。LINUX内核获得控制权后,以如下步骤继续引导系统: 1. LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些代码完成解压缩。 2. 如果系统中安装有可支持特殊文本模式的、且LINUX可识别的SVGA卡,LINUX会提示用户选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选择显示模式。该显示模式可通过LILO或RDEV工具程序设置。 3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序进行配置。这时,显示器上出现内核运行输出的一些硬件信息。 4. 接下来,内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过LILO 或RDEV指定。文件系统的类型可自动检测。如果由于某些原因装载失败,则内核启动失败,最终会终止系统。 二、执行init程序 其次介绍init程序,利用init程序可以方便地定制启动其间装入哪些程序。init的任务是启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,因而总是提供六个虚拟登陆控控制台进程。控制init程序操作的规则存放在文件/etc/inittab中。Red Hat Linux缺省的inittab文件如下:# #inittab This file describes how the INIT process should set up the system in a certain #run-level. # # #Default runlevel.The runlevels used by RHS are: #0-halt(Do NOT set initdefault to this) #1-Single user mode #2-Multiuser,without NFS(the same as 3,if you do not have networking) #3-Full multiuser mode #4-unused #5-X11 #6-reboot(Do NOT set initdefault to this)

RF+jenkins+svn自动化持续集成环境搭建

RobotFramework+svn+jenkins 环境准备: 1、RobotFramework 2、Svn路径 3、Jenkins war最新包+ tomcat 6.x免安装版(可用一键安装版jenkins代替) 4、Jdk1.6 5、Python 2.7.3 6、Jenkins插件Jenkins Email Extension Plugin,Robot Framework plugin,Token Macro Plugin 环境部署: 1、RobotFramework安装 ●安装Python 下载python2.7.3版本,下载地址: https://www.360docs.net/doc/7a7797490.html,/ftp/python/2.7.3/python-2.7.3.msi 直接一键安装,全部默认方式。 ●安装jdk 下载jdk1.6版本,下载地址: https://www.360docs.net/doc/7a7797490.html,/technetwork/java/javasebusiness/downloads/java-archive-dow nloads-javase6-419409.html#jdk-6u45-oth-JPR 选择win x86版本 直接一键安装,最好是安装路径中间无空格。 ●设置环境变量 设置Python和JDK的环境变量, Path=C:\Python27;c:\Python27\Scripts;%JAVA_HOME%\bin ●安装Python的SetupTools 根据下载地址下载 https://www.360docs.net/doc/7a7797490.html,/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe# md5=57e1e64f6b7c7f1d2eddfc9746bbaf20 然后一键安装即可。 ●安装Python的包管理工具pip 利用第二步安装的SetupTools进行安装,打开DOS界面,进入到目录: C:\Python27\Scripts,然后敲入命令:easy_install pip,等待完成就OK。 ●安装支撑Ride的运行库wxPython 从https://www.360docs.net/doc/7a7797490.html,/download.php#stable下载适用的版本对应的文件 win32选择下面版本(针对与python2.6的,不同版本的python得装不同版本的 wxPython,这点需要注意,另外我们得选unicode,不然不能支持中文) 下载后根据安装向导一路Next安装。 ●安装基于Python的RobotFramework包 pip install robotframework pip install robotframework-ride pip install robotframework-selenium2library 运行上面3个命令即可完成安装。需要安装其他库包,提供了pip安装方式,即可使用pip来简单安装集成库。

Jenkins部署与项目自动部署

Jenkins安装与项目部署发布说明 2015/08/13 update 2017/09026 本篇的系统环境为Linux 1.软件准备 本文中连接linux服务器的工具为SecureCRT。(其它工具类似) 准备好以下文件: jdk-7u79-linux-x64.tar.gz apache-maven-3.3.3-bin.tar.gz jenkins-1.623-1.1.noarch.rpm 使用root用户登录linux,切换到usr目录(也可以自定义目录),将准备好的文件上传到服务器上。(本文件之后的内容中,如无特殊说明,都是在root用户下执行操作。) 命令如下: cd /usr切换到usr目录 rz(上传的路径为执行该命令时所在的目录) ll查看文件

2.JDK、MAVEN安装与环境变量配置 解压maven和jdk到usr目录下,然后打开etc目录下profile文件,配置环境变量。 命令如下: tar apache-maven-3.3.3-bin.tar.gz tar jdk-7u79-linux-x64.tar.gz vi /etc/profile 按’i’键进行编辑,在文件结尾处添加以下文字 JAVA_HOME=/usr/java/jdk1.7.0_79 CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar M2_HOME=/usr/apache-maven-3.3.3 PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin export JAVA_HOME CLASSPATH M2_HOME PATH 推出编辑:wq保存退出 source /etc/profile(使环境变量生效) 然后,输入java –version和mvn –v测试配置是否有效

Linux内核启动流程分析(一)

很久以前分析的,一直在电脑的一个角落,今天发现贴出来和大家分享下。由于是word直接粘过来的有点乱,敬请谅解! S3C2410 Linux 2.6.35.7启动分析(第一阶段) arm linux 内核生成过程 1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩, 带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o init/built-in.o --start-group arch/arm/mach-s3c2410/built-in.o kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o drivers/built-in.o net/built-in.o --end-group .tmp_kallsyms2.o 2. 将上面的vmlinux去除调试信息、注释、符号表等内容,生成arch/arm/boot/Image,这是不带多余信息的linux内核,Image的大小约 3.2MB; 命令:arm-linux-gnu-objcopy -O binary -S vmlinux arch/arm/boot/Image 3.将 arch/arm/boot/Image 用gzip -9 压缩生成arch/arm/boot/compressed/piggy.gz大小约 1.5MB;命令:gzip -f -9 < arch/arm/boot/compressed/../Image > arch/arm/boot/compressed/piggy.gz 4. 编译arch/arm/boot/compressed/piggy.S 生成arch/arm/boot/compressed/piggy.o大小约1.5MB,这里实 际上是将piggy.gz通过piggy.S编译进piggy.o文件中。而piggy.S文件仅有6行,只是包含了文件piggy.gz; 命令:arm-linux-gnu-gcc -o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/piggy.S 5. 依据arch/arm/boot/compressed/vmlinux.lds 将arch/arm/boot/compressed/目录下的文件head.o 、piggy.o 、misc.o链接生成arch/arm/boot/compressed/vmlinux,这个vmlinux是经过压缩且含有自解压代码的内核, 大小约1.5MB; 命 令:arm-linux-gnu-ld zreladdr=0x30008000 params_phys=0x30000100 -T arch/arm/boot/compressed/vmlinux.lds a rch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/misc.o -o arch/arm /boot/compressed/vmlinux

嵌入式linux系统地启动过程

一、分析嵌入式系统的启动过程 嵌入式系统的启动过程: 上电------->u-boot------->加载Linux内核------->挂载rootfs ---->执行应用程序 二、分析u-boot 1.什么是u-boot(是一个通用的bootloader) U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。 Universal ----------->通用的 Boot ----------------->启动,引导 Loader ----------------->加载 通用------->支持多种架构的CPU,除了支持ARM系列的处理器外,还能支持MIPS、x86、Power PC、NIOS等诸多常用系列的处理器 ------->支持多种厂家的开发板,如cortex-A8,cortex-A9,cortex-A53等不同厂 家的开发板 ------->支持多种嵌入式操作系统,U-Boot不仅仅支持嵌入式Linux系统的引导,它还支持Net BSD, Vx Works, QNX, RTEMS, ARTOS, Lynx OS, android 嵌入式操作系统。 Boot -------->完成硬件的初始化,启动硬件平台。 Loader ------->当初始化硬件结束后,加载操作系统。 2.u-boot的作用 大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。 (1)Stage1:CPU(S5P6818-->Cortex-A53)的初始化,使用汇编语言编写。 如:初始化Cache、MMU、clock、中断、看门狗、DDR3、eMMC、... (2)Stage2:板级初始化,使用C语言编写。 如:uart、网卡、usb、LCD、.... (3)提供了一些工具,如进入uboot的命令行模式,使用u-boot命令 (4)加载操作系统 3.U-boot的工作模式 U-Boot的工作模式有启动加载模式和下载模式。

持续集成JenkinsAPI常见用法

持续集成JenkinsAPI常见用法 jenkins(持续集成开源工具)提供了丰富的api接口,基本上所有的操作都可以使用curl来从后台调度,包括:创建项目,禁用项目,启用项目,获取项目描述,获取配置文件,普通触发,scm触发,带参数触发,带补丁触发。 【背景】:部门在搞持续集成,使用jenkins作为核心调度,要再其基础上进行二次封装,所以需要研究下jenkins的api。笔者主要负责搭建平台,在研究用法也花费了些时间,本文主要做个简要的记录,希望能为各位朋友节省时间。 【环境】:(默认读者已经具备了基本的持续集成经验和jenkins用法) 1. Jenkins1.455 2. 系统Suse 3. Tomcat 6.0.37 4. Java 1.6.0_26 5. patch-parameter 【API介绍】 Jenkins提供了html、json、python API,实质都是以http get/post方式调用的。查看http://www.xxx.xxx/jenkins/api/ 即可得到相应的说明,如图:

【API实践】 1.创建 curl -X POST http://www.xxx.xxx/jenkins/createItem?name=JavaStd --user peterguo:peterguo --data-binary "@javastd.config.xml" -H "Content-Type: text/xml" 2.禁用 curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/disable --user peterguo:peterguo 3.启用 curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/enable --user

Jenkins+maven持续集成平台部署指南1剖析

Jenkins+maven持续集成平台部署指南 一、持续集成的价值 1.持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于 减少重复过程以节省时间、费用和工作量; 2.持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之, 任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软 件成为了可能; 3.持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更 的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团 队对开发产品的信心。 二、实施过程 (一)、简介:持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于Jenkins 快速搭建持续集成环境。 (二)、操作系统:windows server2003 R2 (域用户登录,安装clearcase)环境要求:加入域,安装clearcase这个不在这里赘述,使用clearcase域的用户登录Jenkins服务器 (三)、工具: Jenkins(hudson)+clarcase UCM Plugin + Maven Plugin + Deploy Plugin (四)、安装配置过程 1. Maven3的安装: 1) 把maven-3.0.2-bin.zip解压到D:\ apache-maven-3.0.2(或者你自己想解压的位置,)。然后配置操作系统的环境变量,这和以前的版本是一样的:(1)增加MAVEN_HOME变量,其值为D:\ apache-maven-3.0.2;(2)在Path 中加入%MAVEN_HOME%\bin

ARMLinux启动过程分析_百度文库.

ARM Linux启动过程分析 一个嵌入式Linux 系统从软件角度看可以分为四个部分[1]:引导加载程序(bootloader),Linux 内核,文件系统,应用程序。 其中 bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用 Linux 内核。Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。根文件系统是 Linux 系统的核心组成部分,它可以做为Linux 系统中文件和数据的存储区域,通常它还包括系统配置文件和运行应用软件所需要的库。应用程序可以说是嵌入式系统的“灵魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持,任何硬件上设计精良的嵌入式系统都没有实用意义。 从以上分析我们可以看出bootloader 和Linux 内核在嵌入式系统中的关系和作用。Bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本的功能就是为了启动 Linux 内核。在嵌入式系统开发的过程中,很大一部分精力都是花在bootloader 和 Linux 内核的开发或移植上。如果能清楚的了解 bootloader 执行流程和 Linux的启动过程,将有助于明确开发过程中所需的工作,从而加速嵌入式系统的开发过程。而这正是本文的所要研究的内容。 2. Bootloader 2.1 Bootloader的概念和作用Bootloader是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序,其作用类似于 PC 机上的BIOS。在完成对系统的初始化任务之后,它会将非易失性存储器(通常是 Flash或 DOC 等)中的Linux 内核拷贝到 RAM 中去,然后跳转到内核的第一条指令处继续执行,从而启动 Linux 内核。由此可见,bootloader 和 Linux 内核有着密不可分的联系,要想清楚的了解 Linux内核的启动过程,我们必须先得认识bootloader的执行过程,这样才能对嵌入式系统的整个启过程有清晰的掌握。 2.2 Bootloader的执行过程不同的处理器上电或复位后执行的第一条指令地址并不相同,对于 ARM 处理器来说,该地址为 0x00000000。对于一般的嵌入式系统,通常把 Flash 等非易失性存储器映射到这个地址处,而 bootloader就位于该存储器的最前端,所以系统上电或复位后执行的第一段程序便是 bootloader。而因为存储 bootloader的存储器不同,bootloader的执行过程也并不相同,下面将具体分析。嵌入式系统中广泛采用的非易失性存储器通常是 Flash,而 Flash 又分为 Nor Flash 和Nand Flash 两种。它们之间的不同在于: Nor Flash 支持芯片内执行(XIP, eXecute In Place),这样代码可以在Flash上直接执行而不必拷贝到RAM中去执行。而Nand Flash并不支持XIP,所以要想执行 Nand Flash 上的代码,必须先将其拷贝到 RAM中去,然后跳到 RAM 中去执行。实际应用中的 bootloader根据所需功能的不同可以设计得很复杂,除完成基本的初始化系统和调用 Linux 内核等基本任务外,还可以执行很多用户输入的命令,比如设置 Linux 启动参数,给 Flash 分区等;也可以设计得很简单,只完成最基本的功能。但为了能达到启动Linux 内核的目的,所有的 bootloader都必须具备以下功能:BR> 1 初始化RAM 因为 Linux 内核一般都会在 RAM 中运行,所以在调用 Linux 内核之前 bootloader 必须设置和初始化 RAM,为调用

Linux 启动过程详解

Linux 启动过程详解 下面来详细了解一下Linux 的启动过程。Linux 的启动 过程包含了Linux 工作原理的精髓, 而且在嵌入式的开发过程也非常需要这方面知识的积累。 用户开机启动Linux 过程总体上是这样的: 首先当用户打开PC 的电源时,CPU 将自动进入实模式,并从地址0xFFFF0 开始自 动执行程序代码,这个地址通常是ROM-BIOS 中的地址。这时BIOS 进行开机自检,并 按BIOS 中设置的启动设备(通常是硬盘)进行启动,接着启动设备上安装的引导程序 lilo 或grub 开始引导Linux(也就是启动设备的第一个扇区) ,这时,Linux 才获得了启 动权。 接下来的第二阶段,Linux 首先进行内核的引导,主要完成磁盘引导、读取机器系统数 据、实模式和保护模式的切换、加载数据段寄存器以及重置中断描述符表等。 第三阶段执行init 程序(也就是系统初始化工作) init 程序调用了rc.sysinit 和rc 等程序, 而rc.sysinit 和rc 在完成系统初始化和运行服务的任务后,返回init。 之后的第四阶段,init 启动mingetty,打开终端供用户登录系统,用户登录成功后进入了Shell,这样就完成了从开机到登录的整个启动过程。 Linux 启动总体流程图如图所示, 其中的4 个阶段分别由同步棒隔开。由于第一阶段 不涉及Linux 自身的启动过程,因此,下面分别对第二和第三阶段进行详细讲解。 内核引导阶段 2.2.2 在grub 或lilo 等引导程序成功完成引导Linux 系统的任务后,Linux 就从它们手中接管 了CPU 的控制权。用户可以从https://www.360docs.net/doc/7a7797490.html, 上下载最新版本的源码进行阅读,其目录为: linux-2.6.*.*archi386boot。在这过程中主要用到该目录下的这几个文件:bootsect.S、setup.S 以及compressed 目录下的head.S 等。 首先要介绍一下,Linux 的内核通常是压缩过后的,包括如上述提到的那几个重要的汇 编程序,它们都是在压缩内核vmlinuz 中的。因为Linux 中提供的内核包含了众多驱动和功能,因而比较大,所以在采用压缩内核可以节省大量的空间。

LINUX启动流程详解

2008-11-27 11:04:06 收藏 | 打印 | 投票(7) | 评论(1) | 阅读(30264) ◇字体:[大中小]linux系统引导过程简介 首先,主板的BIOS会读取硬盘的主引导记录(MBR),MBR中存放的是一段很小的程序,他的功能是从硬盘读取操作系统核心文件并运行,因为这个小程序太小了,因此通常这个小程序不具备直接引导系统内核的能力,他先去引导另一个稍微大一点的小程序,再由这个大一点的小程序去引导系统内核.在linux系统中这样的小程序有LILO和GRUB.在这个项目中,我决定用LILO来做系统引导程序.在软盘上启动linux系统的过程和在硬盘上启动的过程相似. Linux系统内核被引导程序装入内核并运行后,linux内核会检测系统中的各种硬件.并做好各种硬件的初始化工作,使他们在系统正式运行后能正常工作.之后内核做的最后一个工作是运行 /sbin下的init程序,init是英文单词initialization(初始化)的简称,init程序的工作是读取/etc/inittab文件中描述的指令,对系统的各种软硬件环境做最初化设定.最后运行mingetty等待用户输入用户名登录系统.所有的工作就这么简单,虽然linux启动的时候有很多内容,看上去十分高深,但是都不过是对这个过程的扩充.明白了这个道理,你可以写一些脚本程序让他在系统启动的特定时间运行完成任务.事实上系统内核并不关心/sbin下的init是不是真的init,只要是放 在/sbin下名叫init的可执行程序他都可以执行. Red Hat Enterprise Linux在电脑的启动阶段,一共经历以下两个阶段: 1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。 2.执行程序init.(系统初始化).装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,包括重要系统精灵程序和其它指定在启动时装入的软件。 开机---BIOS自检---载入启动程序---加载内核---启动init服务---加载/etc/inittab---Run level---rc.sysinit---rc--- mingetty---rc.local 一.BIOS自检 当电脑开机的时候,电脑会进入BIOS,在PC机中引导LINUX是从BIOS中的地址0xFFFF0处开始的.BIOS的第一个步骤是加电自检,即所谓的POST(Power On Self Test),BIOS的第二个步骤是进行本地设备的枚举和初始化,侦测电脑周边配套设备是否工作正常,如cpu的类型,速度,缓存等;主板类型,内存的速度,容量,硬盘的大小,类型和工作模式,风扇速度等,主要是为了检查这些设备在开机的时候是否能通过检测,说明电脑可以正常的工作.BIOS由两部分组成:POST代码和运行时的服务.当POST完成之后,它被从内存中清理了出来,但是,BOIS运行时服务依然保留在内存中,目标操作系统可以使用这些服务 二.载入启动程序 BIOS自检完成后,BIOS会根据用户设置的启动顺序来由哪个设备启动电脑的操作系统,设备需是处于活动状态并且可以引导的,(引导设备可以是软盘,CD-ROM,硬盘上的某个分区,网络上的某个设备,甚至是USB闪存),对于linux这个设备一般是硬盘.也就是进入硬盘的MBR区域,(master boot record,位于磁盘上的第一个扇区中,0道0柱面1扇区),这个区域中有512个字节的大小,其中前446个字节中保存的就是启动程 序,(446个字节包含可执行代码和错误消息文本,接下来的64个字节是分区表,其中4个分区的记录,每个记录的大小是16个字节,MBR以两个特殊数字的字节0xAA55结束,这个数字用来进行MBR的有效性检查,当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR),然后由这个小程序来加载存储在其他位置的操作系统,也就是启动grub程序.(grub不像lilo一样使用裸扇区,而是可以从ext2或ext3文件系统中加 载LINUX内核). 要看MBR的内容,请使用下面的命令 #从/dev/sda上读取前512个字节的内容,并将其写入mbr.bin文件中 [root@localhost ~]# dd if=/dev/sda of=mbr.bin bs=512 count=1 #以十六进制和ASCII码格式打印这个二进制文件的内容 [root@localhost pam.d]# od -xa mbr.bin grub程序的这个配置文件是保存在:/boot/grub/grub.conf这个文件中,如果修改这个文件后,设置会立刻生效.

jenkins使用手册

Jenkins 操作手册

第一章概述篇 持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。持续集成最早由Martin Fowler 于10年前已经提出,希望通过持续集成能够实现以下过程: △任何人在任何地点,任何时间可以构建整个项目。 △在持续集成构建过程中,每一个单元测试都必须被执行。 △在持续集成构建过程中,每一个单元测试都必须通过。 △持续集成构建的结果是可以发布的软件包。 △当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。 Jenkins是一个软件界非常流行的开源CI服务器,下面介绍从基础篇、提高篇两个层面进行介绍。

第二章基础篇 2.1 Jenkins安装 2.1.1 资源下载 首先从https://www.360docs.net/doc/7a7797490.html,/下载最新的Jenkins版本,最新版本为1.383,下载的文件载体为Jenkins.war;2.1.2 运行Jenkins的前提 2.1.2.1 环境变量的设置: 1)JA V A_HOME,设置JDK的安装目录,建议采用JDK5 2)ANT_HOME,设置Ant的目录,建议采用ant最新版本1.8 3)JENKINS_HOME,设置Jenkins的配置文件目录,默认为用户的目录,建议为Jenkins的安装目录,便于控制; 4)PATH,需要将java、ant的目录配置到path目录下; 5)CLASSPA TH,需要将JDK的tools.jar配置到classpath目录中; 2.1.2.2 其他外部条件 1)需要WebLogic923的远程控制的jar文件,文件有weblogic_sp.jar、weblogic.jar、webservices.jar三个jar 文件,这三个文件位于WebLogic安装目录的相对目录server\lib下; 将上述三个jar配置到系统的CLASSPA TH环境变量中; 2.1.3 Jenkins启动 Jenkins可以有两种方法进行运行Jenkins; 1)直接通过命令行 转到Jenkins.war所在的目录,当前为D:\Jenkins java -jar Jenkins.war --httpPort=8080 –prefix=Jenkins 说明:httpPort为Jenkins运行的端口,默认端口为8080,上述命令其实Jenkins运行在Winstone容器中;2)在Web容器中运行 Jenkins可以运行在标准的Web服务器中,支持Tomcat、Jboss、WebLogic中,只需要将Jenkins.war放置到相应目录,启动服务就可以进行访问; 2.1.4 Jenkins访问 验证Jenkins是否运行正常,通过访问http://hostIP:port/Jenkins即可。 我的jenkins路径:http://192.168.8.26:8080/

相关文档
最新文档