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

简介:

如何在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 任务

到这里就介绍完了在 Ubuntu 16.04 中用 Apache web 服务器安装 Jenkins 的内容。





作者:Muhammad Arul
来源:51CTO
相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
1天前
|
弹性计算 关系型数据库 MySQL
【阿里云弹性计算】从零搭建:基于阿里云ECS的高性能Web服务部署实践
【5月更文挑战第21天】本文介绍了如何使用阿里云ECS搭建高性能Web服务。首先,注册阿里云账号购买ECS实例,选择合适配置。接着,通过SSH连接实例,更新系统并安装Apache、PHP和MySQL。创建网站目录,上传代码,配置数据库和PHP。然后,启用Gzip压缩和KeepAlive,调整Apache并发连接数以优化性能。此教程为在阿里云上构建高效Web服务提供了基础指南。
30 5
|
3天前
|
监控 物联网 测试技术
【好用的个人工具】使用Docker部署Dashdot服务器仪表盘
【5月更文挑战第15天】使用Docker部署Dashdot服务器仪表盘
36 12
|
5天前
|
SQL 分布式计算 关系型数据库
实时计算 Flink版产品使用合集之MySQL CDC Connector是否需要在Flink服务器上单独部署
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
13 0
|
7天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
27 3
|
7天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与部署实践
【5月更文挑战第13天】 在现代软件开发周期中,持续集成(CI)和持续部署(CD)已成为提升开发效率、保障产品质量的关键环节。随着云计算和微服务架构的普及,容器技术如Docker和Kubernetes为运维领域带来了革命性的变革。本文旨在探讨如何利用容器技术构建一个高效、可靠的自动化运维体系,实现从代码提交到产品发布的全过程自动化管理。通过深入分析容器化技术的核心原理,结合实际案例,我们将阐述如何优化持续集成流程、确保自动化测试的覆盖率、以及实现无缝的持续部署。
26 2
|
7天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
16 1
|
7天前
|
Ubuntu Android开发 数据安全/隐私保护
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
|
7天前
|
Ubuntu Apache 数据库
如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站
如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站
26 2
|
7天前
|
Devops jenkins 网络安全
【DevOps】(四)jekins服务器ssh部署
【DevOps】(四)jekins服务器ssh部署
16 1
|
7天前
|
存储 安全 网络协议
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
32 0

热门文章

最新文章