Jenkins 入门教程之--Jenkins安装

Jenkins 教程

Jenkins是一个强大的应用程序,允许持续集成和持续交付的项目,无论你正在工作的平台。它是一个可以处理任何类型的构建或持续集成的自由源。您可以将Jenkins与许多测试和部署技术集成。在本教程中,我们将解释如何使用Jenkins来连续构建和测试软件项目。

本教程将帮助所有那些希望学习如何连续构建和测试项目的软件测试人员,以帮助开发人员尽快将更改集成到项目中并获得新的构建。

Jenkins是一个流行的工具,用于执行软件项目的持续集成。这是一个初步的教程,涵盖了Jenkins的最基本的概念。任何对软件开发生命周期有良好理解的软件专业人员都应从本教程中受益。

Jenkins - 概述

为什么是Jenkins?

Jenkins是一个允许持续集成的软件。 Jenkins将安装在将进行中央构建的服务器上。以下流程图演示了Jenkins如何工作的非常简单的工作流程。

这里写图片描述

与Jenkins一起,有时,人们也可能看到Hudson的协会。 Hudson是一个非常受欢迎的开源的基于Java的持续集成工具,由Sun Microsystems开发,后来被Oracle收购。在Oracle收购Sun之后,从Hudson源代码创建了一个fork,它引入了Jenkins的引入。

什么是持续集成?

持续集成是一种开发实践,需要开发人员定期将代码集成到共享存储库中。这个概念意在消除在构建生命周期中发现问题的问题。持续集成需要开发人员频繁构建。通常的做法是,每当代码提交发生时,应该触发构建。

系统要求

JDK JDK1.5以上(示例JDK1.7)
内存 建议2GB以上
硬盘 无最低要求、请注意,由于所有构建都将存储在Jenkins机器上,因此必须确保有足够的磁盘空间用于构建存储。
操作系统版本 Jenkins可以安装在Windows,Ubuntu / Debian,Red Hat / Fedora / CentOS,Mac OS X,openSUSE,FReeBSD,OpenBSD,Gentoo上。
Java 容器 WAR文件可以在支持Servlet 2.4 / JSP 2.0或更高版本的任何容器中运行(示例是Tomcat 7)。

Jenkins 安装

下载Jenkins

这里写图片描述

默认情况下,最新版本和长期支持版本可供下载。过去的版本也可以下载。单击下载部分的长期支持版本选项。

  • 用于Jenkins的RedHat Linux RPM软件包

使用Jenkins官网提供的源下载Jenkins,服务器上面执行下面命令:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
 
 
  • 1
  • 2
  • 1
  • 2

如果你以前从Jenkins导入密钥,’rpm –import’将失败,因为你已经有一个密钥。请忽略它,继续下去。使用yum安装Jenkins

yum install jenkins -y
 
 
  • 1
  • 1

这里写图片描述

  • 安装稳定版本

Redhat提供安装Jenkins长期稳定版本的源,参考下面命令安装:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

安装Java

Jenkins需要Java才能运行,但是某些发行版默认不包括这个。要安装Open Java Development Kit(OpenJDK),请运行以下命令,卸载Java(或如果您没有安装Java开始)。您需要安装与Sun兼容的Java版本。最简单的方法是使用OpenJDK,可以通过EPEL存储库(或者直接从Oracle安装官方RPM)。要安装OpenJDK,请运行以下命令:

yum install java-1.7.0-openjdk
 
 
  • 1
  • 1

根据您的CentOS版本,OpenJDK的程序包名称可能不同。使用yum search openjdk来检查包的名称。如果通过yum找不到OpenJDK,您可能需要安装EPEL yum存储库。安装后,您应该能够获得以下java -version的输出

[root@jenkins ~]# java -version
java version "1.7.0_121"
OpenJDK Runtime Environment (rhel-2.6.8.1.el6_8-x86_64 u121-b00)
OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)
 
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

启动 Jenkins

执行Jenkins的最简单的方法是通过内置的Jetty servlet容器。你可以这样执行Jenkins

$ java -jar jenkins.war
 
 
  • 1
  • 1

Linux上,使用nohup将Jenkins的输出发送到日志文件,并后台运行Jenkins

$ mkdir /var/log/jenkins
$ nohup java -jar jenkins.war >/var/log/jenkins/jenkins.log 2>&1 &
 
 
  • 1
  • 2
  • 1
  • 2

访问Jenkins

访问Jenkins只需要在客户端浏览器输入:http://ip、域名:8080/,即可

这里写图片描述

默认初始访问Jenkin需要管理员密码,可以通过页面提示操作查看管理密码,查看Jenkins启动日志

cat /root/.jenkins/secrets/initialAdminPassword
 
 
  • 1
  • 1

输入密码,进入Jenkins 设置界面

这里写图片描述

等待Jenkins自动安装相关插件

这里写图片描述

命令行参数

Jenkins通常使用端口8080启动。但是,如果您启动其他Web服务,您可能会发现此端口已经占用。您可以使用--httpPort = $ HTTP_PORT指定不同的端口,其中$ HTTP_PORT是Jenkins要运行的端口。其他命令行参数包括:

命令行参数 参数说明
--httpPort=$HTTP_PORT 使用标准http协议在端口$ HTTP_PORT上运行Jenkins侦听器。默认值为端口8080.要禁用(因为您使用的是https),请使用端口-1
--httpListenAddress=$HTTP_HOST 将Jenkins绑定到由$ HTTP_HOST表示的IP地址。默认值为0.0.0.0 - 即侦听所有可用的接口。例如,要仅侦听来自localhost的请求,可以使用–httpListenAddress = 127.0.0.1
--httpsPort=$HTTP_PORT 在端口$ HTTP_PORT上使用HTTPS协议
--httpsListenAddress=$HTTPS_HOST 绑定Jenkins在$ HTTPS_HOST表示的IP地址上侦听HTTPS请求。
--prefix=$PREFIX 运行Jenkins以在URL的末尾包含$ PREFIX。例如,要使Jenkins可以在http // myServer 8080 / jenkins上访问,请设置–prefix = / jenkins
--ajp13Port=$AJP_PORT 使用标准AJP13协议在端口$ AJP_PORT上运行Jenkins侦听器。默认值为端口8009.要禁用(因为您使用的是https),请使用端口-1。
--ajp13ListenAddress=$AJP_HOST 将Jenkins绑定到由$ AJP_HOST表示的IP地址。默认值为0.0.0.0 - 即侦听所有可用的接口。
--argumentsRealm.passwd.$ADMIN_USER 设置用户$ ADMIN_USER的密码。如果Jenkins安全性已打开,则必须以$ ADMIN_USER身份登录才能配置Jenkins或Jenkins项目。注意还必须指定此用户具有管理员角色。 (见下面的参数)。
--argumentsRealm.roles.$ADMIN_USER=admin$ ADMIN_USER设置为管理用户,如果Jenkins的安全性已打开,可以配置Jenkins。有关详细信息,请参阅Jenkins安全
-Xdebug -Xrunjdwp:transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n 设置调试开关,您可以访问$ DEBUG_PORT上的调试。
logfile=$LOG_PATH/winstone_date +”%Y%m-%d_%H-%M”.log 定义日志格式
-XX:PermSize=512M -XX:MaxPermSize=2048M -Xmn128M -Xms1024M -Xmx2048M 参考Oracle Jave设置

Jenkins将所有(或只是引导参数,直到第一个Jenkins特定的参数?)命令行参数传递给Winstone servlet容器,因此您可以通过查看Winstone命令行参数参考: 
http://winstone.sourceforge.net/#commandLine

  • 注意命令行参数

Jenkins忽略了它不能理解的命令行参数,而不是产生错误。使用命令行参数时请小心,并确保您具有正确的拼写。例如,定义Jenkins管理用户所需的参数是–argumentsRealm而不是–argumentRealm。

Jenkins 启动脚本

#!/bin/sh

DESC="Jenkins CI Server"
NAME=jenkins
PIDFILE=/var/run/$NAME.pid
RUN_AS=jenkins
COMMAND="/usr/bin/java -- -jar /home/jenkins/jenkins.war"

d_start() {
    start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --exec $COMMAND
}

d_stop() {
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
    if [ -e $PIDFILE ]
        then rm $PIDFILE
    fi
}

case $1 in
    start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
    *)
    echo "usage: $NAME {start|stop|restart}"
    exit 1
    ;;
esac

exit 0
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 使用HTTPS与现有证书

如果您使用内置的Winstone服务器设置Jenkins,并想要使用HTTPS的现有证书:

--httpPort=-1 --httpsPort=443 --httpsKeyStore=path/to/keystore --httpsKeyStorePassword=keystorePassword
 
 
  • 1
  • 1

密钥库应该是JKS格式(由JDK的keytool创建),密钥库和目标密钥必须具有相同的密码。 (将密钥库参数放在Jenkins特定的参数后似乎不起作用;它们不会转发到Winstone或Winstone忽略它们在未知参数之后),因此,确保它们与工作的–httpsPort参数相邻。

如果您的密钥库中包含多个证书(例如 您正在使用CA签名的证书)Jenkins可能最终使用的是不正确的一个。 在这种情况下,你可以将密钥存储转换为PEM并使用下面的命令行选项

--httpPort=-1 --httpsPort=443 --httpsCertificate=path/to/cert --httpsPrivateKey=path/to/privatekey
 
 
  • 1
  • 1

Jenkins 参考链接

Jenkins 使用:https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins 
Jenkins 官网文档:https://jenkins.io/doc/

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值