如何在 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,而且支持反向代理。

前提

  • 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。

 
  1. apt-get install python-software-properties

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

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

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

 
  1. apt-get update
  2. apt-get install openjdk-7-jdk

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

 
  1. java -version

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

在 Ubuntu 16.04 上安装 Java OpenJDK 7

在 Ubuntu 16.04 上安装 Java OpenJDK 7

第二步 - 安装 Jenkins

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

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

 
  1. wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
  2. echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list

更新仓库并安装 Jenkins。

 
  1. apt-get update
  2. apt-get install jenkins

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

 
  1. systemctl start jenkins

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

 
  1. netstat -plntu

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

已经将 Jenkins 安装到 8080 端口

已经将 Jenkins 安装到 8080 端口

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

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

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

 
  1. apt-get install apache2

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

 
  1. a2enmod proxy
  2. a2enmod proxy_http

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

 
  1. cd /etc/apache2/sites-available/
  2. vim jenkins.conf

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

 
  1. <Virtualhost *:80>
  2. ServerName my.jenkins.id
  3. ProxyRequests Off
  4. ProxyPreserveHost On
  5. AllowEncodedSlashes NoDecode
  6. <Proxy http://localhost:8080/*>
  7. Order deny,allow
  8. Allow from all
  9. </Proxy>
  10. ProxyPass / http://localhost:8080/ nocanon
  11. ProxyPassReverse / http://localhost:8080/
  12. ProxyPassReverse / http://my.jenkins.id/
  13. </Virtualhost>

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

 
  1. a2ensite jenkins

重启 Apache 和 Jenkins。

 
  1. systemctl restart apache2
  2. systemctl restart jenkins

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

 
  1. netstat -plntu

检查 Apache 和 Jenkins 是否在运行

检查 Apache 和 Jenkins 是否在运行

第四步 - 配置 Jenkins

Jenkins 用域名 'my.jenkins.id' 运行。打开你的 web 浏览器然后输入 URL。你会看到要求你输入初始管理员密码的页面。Jenkins 已经生成了一个密码,因此我们只需要显示并把结果复制到密码框。

用 cat 命令显示 Jenkins 初始管理员密码。

 
  1. cat /var/lib/jenkins/secrets/initialAdminPassword
  2. a1789d1561bf413c938122c599cf65c9

获取 Jenkins 管理员密码

获取 Jenkins 管理员密码

将结果粘贴到密码框然后点击 Continue。

安装和配置 Jenkins

安装和配置 Jenkins

现在为了后面能比较好的使用,我们需要在 Jenkins 中安装一些插件。选择 Install Suggested Plugin,点击它。

安装 Jenkins 插件

安装 Jenkins 插件

Jenkins 插件安装过程:

Jenkins 安装完插件

Jenkins 安装完插件

安装完插件后,我们需要创建一个新的管理员密码。输入你的管理员用户名、密码、电子邮件等,然后点击 ‘Save and Finish’。

创建 Jenkins 管理员账户

创建 Jenkins 管理员账户

点击 start 开始使用 Jenkins。你会被重定向到 Jenkins 管理员面板。

重定向到管理员面板

重定向到管理员面板

成功完成 Jenkins 安装和配置。

Jenkins 管理员面板

Jenkins 管理员面板

第五步 - Jenkins 安全

在 Jenkins 管理员面板,我们需要为 Jenkins 配置标准的安全,点击 ‘Manage Jenkins’ 和 ‘Configure Global Security’。

Jenkins 全局安全设置

Jenkins 全局安全设置

Jenkins 在 ‘Access Control’ 部分提供了多种认证方法。为了能够控制所有的用户权限,我选择了 ‘Matrix-based Security’。在复选框 ‘User/Group’ 中启用 admin 用户。通过勾选所有选项给 admin 所有权限,给 anonymous 只读权限。现在点击 ‘Save’。

配置 Jenkins 权限

配置 Jenkins 权限

你会被重定向到面板,如果出现了登录选项,只需输入你的管理员账户和密码。

第六步 - 测试一个简单的自动化任务

在这一部分,我想为 Jenkins 服务测试一个简单的任务。为了测试 Jenkins 我会创建一个简单的任务,并用 top 命令查看服务器的负载。

在 Jenkins 管理员面板上,点击 ‘Create New Job’。

在 Jenkins 中创建新的任务

在 Jenkins 中创建新的任务

输入任务的名称,在这里我输入 ‘Checking System’,选择 Freestyle Project 然后点击 OK。

配置 Jenkins 任务

配置 Jenkins 任务

进入 Build 标签页。在 Add build step,选择选项 Execute shell。

在输入框输入下面的命令。

 
  1. top -b -n 1 | head -n 5

点击 Save。

启动 Jenkins 任务

启动 Jenkins 任务

现在你是在任务 ‘Project checking system’ 的任务页。点击 Build Now 执行任务 ‘checking system’。

任务执行完成后,你会看到 Build History,点击第一个任务查看结果。

下面是 Jenkins 任务执行的结果。

构建和运行 Jenkins 任务

构建和运行 Jenkins 任务

原文发布时间为:2017-05-08

本文来自云栖社区合作伙伴“Linux中国”

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
9天前
|
网络安全 Apache
Apache服务器安装SSL证书
Apache服务器安装SSL证书
14 0
|
24天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
25天前
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
33 4
|
1月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
1月前
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
3天前
|
Ubuntu 关系型数据库 MySQL
如何在Ubuntu使用宝塔部署Emlog网站并发布到公网实现任意浏览器访问
如何在Ubuntu使用宝塔部署Emlog网站并发布到公网实现任意浏览器访问
|
16天前
|
Kubernetes Ubuntu 应用服务中间件
Ubuntu 22.04 利用kubeadm方式部署Kubernetes(v1.28.2版本)
Ubuntu 22.04 利用kubeadm方式部署Kubernetes(v1.28.2版本)
75 0
|
17天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
27天前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
29 0
|
27天前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
156 1

热门文章

最新文章