在 Ubuntu16.04 中用 Apache 部署 Jenkins 自动化服务器

Jenkins 是从 Hudson 项目衍生出来的自动化服务器。Jenkins 是一个基于服务器的应用程序,运行在 Java servlet 容器中,它支持包括 Git、SVN 以及 Mercurial 在内的多种 SCM(源码控制工具(Source Control Management))。Jenkins 提供了上百种插件帮助你的项目实现自动化。Jenkins 由 Kohsuke Kawaguchi 开发,在 2011 年使用 MIT 协议发布了第一个发行版,它是个自由软件。

在这篇指南中,我会向你介绍如何在 Ubuntu 16.04 中安装最新版本的 Jenkins。我们会用自己的域名运行 Jenkins,在 apache web 服务器中安装和配置 Jenkins,而且支持反向代理。

在 Ubuntu16.04 中用 Apache 部署 Jenkins 自动化服务器

前提

Ubuntu 16.04 服务器 - 64 位

Root 权限

第一步 - 安装 Java OpenJDK 7

Jenkins 基于 Java,因此我们需要在服务器上安装 Java OpenJDK 7。在这里,我们会从一个 PPA 仓库安装 Java 7,首先我们需要添加这个仓库。

默认情况下,Ubuntu 16.04 没有安装用于管理 PPA 仓库的 Python-software-properties 软件包,因此我们首先需要安装这个软件。使用 apt 命令安装 python-software-properties。

apt-get install python-software-properties

下一步,添加 Java PPA 仓库到服务器中。

add-apt-repository ppa:openjdk-r/ppa

用 apt 命令更新 Ubuntu 仓库并安装 Java OpenJDK。

apt-get update

apt-get install openjdk-7-jdk

输入下面的命令验证安装:

java -version

你会看到安装到服务器上的 Java 版本。

在 Ubuntu 16.04 上安装 Java OpenJDK 7

在 Ubuntu 16.04 上安装 Java OpenJDK 7

第二步 - 安装 Jenkins

Jenkins 给软件安装包提供了一个 Ubuntu 仓库,我们会从这个仓库中安装 Jenkins。

用下面的命令添加 Jenkins 密钥和仓库到系统中。

wget-q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

echo'deb https://pkg.jenkins.io/debian-stable binary/'|tee-a /etc/apt/sources.list

更新仓库并安装 Jenkins。

apt-get update

apt-get install jenkins

安装完成后,用下面的命令启动 Jenkins。

systemctl start jenkins

通过检查 Jenkins 默认使用的端口(端口 8080)验证 Jenkins 正在运行。我会像下面这样用 netstat 命令检测:

netstat-plntu

Jenkins 已经安装好了并运行在 8080 端口。

已经将 Jenkins 安装到 8080 端口

已经将 Jenkins 安装到 8080 端口

第三步 - 为 Jenkins 安装和配置 Apache 作为反向代理

在这篇指南中,我们会在一个 Apache web 服务器中运行 Jenkins,我们会为 Jenkins 配置 apache 作为反向代理。首先我会安装 apache 并启用一些需要的模块,然后我会为 Jenkins 用域名 my.jenkins.id 创建虚拟主机文件。请在这里使用你自己的域名并在所有配置文件中出现的地方替换。

从 Ubuntu 仓库安装 apache2 web 服务器。

apt-get install apache2

安装完成后,启用 proxy 和 proxy_http 模块以便将 apache 配置为 Jenkins 的前端服务器/反向代理。

a2enmod proxy

a2enmod proxy_http

下一步,在 sites-available 目录创建新的虚拟主机文件。

cd/etc/apache2/sites-available/

vim jenkins.conf

粘贴下面的虚拟主机配置。

<Virtualhost *:80>

ServerName my.jenkins.id

ProxyRequests Off

ProxyPreserveHost On

AllowEncodedSlashes NoDecode

<Proxyhttp://localhost:8080/*>

Order deny,allow

Allow from all

</Proxy>

ProxyPass / :8080/ nocanon

ProxyPassReverse / :8080/

ProxyPassReverse /

</Virtualhost>

保存文件。然后用 a2ensite 命令激活 Jenkins 虚拟主机。

a2ensite jenkins

重启 Apache 和 Jenkins。

systemctl restart apache2

systemctl restart jenkins

检查 Jenkins 和 Apache 正在使用 80 和 8080 端口。

netstat-plntu

检查 Apache 和 Jenkins 是否在运行

检查 Apache 和 Jenkins 是否在运行

第四步 - 配置 Jenkins

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2c6482769f70bdf3a0c2e2b8e6ffe0ac.html