如何搭建 Jenkins 主机

ArnoldOdelette 发布于1月前 阅读91次
0 条评论

Jenkins 简介

jenkins 是当前较为流行的开源软件项目,该软件需要在 java の 环境下运行,主要作用是为用户提供可持续的重复的软件项目部署服务。

jenkins 主机内, 除却 jenkins 软件, 还应当搭配的工具组件有:
** oracle java | 为 jenkins 提供必要的运行环境
** python | 其 fabric 模块将为项目部署和启动脚本提供关键支持
** nginx | 将 80 端口的请求转发至 8080 端口
** git | 将 gitlab 上托管的项目源码克隆到 jenkins 主机内

jenkins 的用户和组:

jenkins115:122:Jenkins,,,:/var/lib/jenkins:/bin/bash

jenkins | 用户名为 jenkins
x | 密码占位符
115 | 用户的 uid 编号 (该编号表示 jenkins 是系统用户)
122 | 用户所属组的 gid 编号
/var/lib/jenkins | 用户 jenkins 的家目录
/bin/bash | 登录 jenkins 时, 使用 bash 作为终端工具

=================================================================================================

=================================================================================================

Jenkins 主机的搭建过程

系统环境: Ubuntu16.04
主机性能: 4 核心 / 8GB 内存 / 100GB 存储

===============================================================================================

Jenkins 主机的搭建过程

===============================================================================================

STEP 1" 检查主机内的 java 环境

summer:~$ java -version

该命令存在 3 种可能的回显:
(1) 已安装 oracle java 的环境

Java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
-----------------------------------------------------------------

(2) 已安装 openjdk 的环境

Openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
-----------------------------------------------------------------

(3) 未安装任何的 java 环境

The program 'java' can be found in the following packages:
* default-jre
* gcj-5-jre-headless
* openjdk-8-jre-headless
* gcj-4.8-jre-headless
* gcj-4.9-jre-headless
* openjdk-9-jre-headless
Try: sudo apt install <selected package>
-----------------------------------------------------------------

STEP 2" 根据检查情况, 选择性地执行本步骤命令, 确认主机成功安装 oracle java 环境
summer:~$ sudo apt-get remove --purge openjdk*
summer:~$ sudo add-apt-repository ppa:webupd8team/java
summer:~$ sudo apt-get update

summer:~$ sudo apt-get install oracle-java8-installer

STEP 3" 安装 jenkins 软件
summer:~$ wget -q -O - https://pkg.jenkins.io/debian... | sudo apt-key add -
summer:~$ sudo vim /etc/apt/sources.list
summer:~$ sudo apt-get update

summer:~$ sudo apt-get install jenkins

STEP 4" 安装 nginx 软件, 并编写配置文件实现转发 80 端口请求至 8080 端口
summer:~$ sudo apt-get install nginx
summer:~$ sudo rm -f /etc/nginx/sites-available/default
summer:~$ sudo rm -f /etc/nginx/sites-enabled/default
summer:~$ sudo vim /etc/nginx/sites-available/jenkins

summer:~$ sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enbaled/

STEP 5" 启动 nginx 和 jenkins 服务的进程
summer:~$ sudo systemctl enable nginx.service | 设置 nginx.service 开机自启动
summer:~$ sudo systemctl enable jenkins.service | 设置 jenkins.service 开机自启动
summer:~$ sudo systemctl restart nginx.service | 重新启动 nginx.service

summer:~$ sudo systemctl restart jenkins.service 重新启动 jenkins.service

STEP 6" 访问主机的 ip 地址, 首次登录 jenkins 网站需要进行解锁配置

      打开 jenkins 主机内的 /var/lib/jenkins/secrets/initialAdminPassword 文件, 获取密码并完成解锁
      选择 install suggested plugins 后, jenkins 网站会自行安装标准插件
      设置 jenkins 网站的管理员账号, 建议将账号信息保存在主机的 ~/.jenkins 文件内

STEP 7" 安装管理 python 模块所需要的 pip 工具
summer:~$ sudo apt-get install python-pip | 安装完成后的 pip 工具版本较低, 需要进行升级
summer:~$ sudo pip install pip | 升级之后的 pip 工具会出现执行错误
summer:~$ sudo vim /usr/bin/pip | 修改 pip 工具的执行文件
summer:~$ sudo vim ~/.pip/pip.conf | 为 pip 工具指定国内的 python 模块镜像源

summer:~$ sudo pip install Fabric==1.14.0 安装指定版本的 fabric 模块

STEP 8" 安装 git 工具, 并制作密钥对后将私钥 id_rsa 放置在 jenkins 用户的 .ssh 目录内
summer:~$ sudo apt-get install git
summer:~$ ssh-keygen
summer:~$ sudo mkdir -p /var/lib/jenkins/.ssh | 在 jenkins 用户的家目录下创建 .ssh 目录
summer:~$ sudo cp /home/summer/.ssh/id_rsa /var/lib/jenkins/.ssh/
summer:~$ sudo chown -R jenkins:jenkins /var/lib/jenkins/.ssh/

summer:~$ sudo chmod 700 /var/lib/jenkins/.ssh

STEP 9" 使用管理员用户登录 gitlab 网站, 并配置 gitlab 平台的 deploy-key

      在 deploy-key 的配置界面, 为 deploy-key 指定名称
      将 /home/summer/.ssh/id_rsa.pub 内的公钥信息填写到 deploy-key 相应位置

以上步骤完成后, jenkins 主机的搭建也就完成了.

=================================================================================================

=================================================================================================

相关配置文件说明

FILE 1" /etc/apt/sources.list

该文件为 Ubuntu16.04 原始的 apt-get 源配置文件

deb http://cn.archive.ubuntu.com/... xenial universe
deb http://cn.archive.ubuntu.com/... xenial-updates universe
deb http://cn.archive.ubuntu.com/... xenial multiverse
deb http://cn.archive.ubuntu.com/... xenial-updates multiverse
deb http://cn.archive.ubuntu.com/... xenial-backports main restricted universe multiverse
deb http://security.ubuntu.com/ub... xenial-security main restricted
deb http://security.ubuntu.com/ub... xenial-security universe

deb http://security.ubuntu.com/ub... xenial-security multiverse

jenkins 的安装包被单独作为 1 个 apt-get 源追加到文件结尾

deb http://cn.archive.ubuntu.com/... xenial universe
deb http://cn.archive.ubuntu.com/... xenial-updates universe
deb http://cn.archive.ubuntu.com/... xenial multiverse
deb http://cn.archive.ubuntu.com/... xenial-updates multiverse
deb http://cn.archive.ubuntu.com/... xenial-backports main restricted universe multiverse
deb http://security.ubuntu.com/ub... xenial-security main restricted
deb http://security.ubuntu.com/ub... xenial-security universe
deb http://security.ubuntu.com/ub... xenial-security multiverse

deb https://pkg.jenkins.io/debian... binary/

FILE 2" /etc/nginx/sites-available/jenkins

这是一个新建的文件, 用于转发 80 端口的访问请求至 8080 端口(jenkins 的默认端口)

server {

listen 80;
location / {
    proxy_pass http://127.0.0.1:8080;
}

}

FIEL 3" /usr/bin/pip

!/usr/bin/python

该 python 文件即是原始的 pip 工具的执行文件

import sys
from pip import main
if name == '__main__':

sys.exit(main())

!/usr/bin/python

该 python 文件即是修改过后的 pip 工具的执行文件

import sys
from pip._internal import main
if name == '__main__':

sys.exit(main())

FIEL 4" /home/summer/.pip/pip.conf

该配置文件为新建文件, 用于配置国内的 pip 镜像源(我们配的是 douban 的 pip 镜像源)

[global]
index-url = http://pypi.douban.com/simple
[install]

trusted-host=pypi.douban.com

Translation

  • jenkins [n.] 通常是人名, 翻译过来是詹金森
  • deploy [vt.] 部署, 展开
  • jdk [n.] java 的开发工具包, 全称为 java developer kit
  • kit [n.] 配套的原件, 成套的东西
  • pip [n.] 果核, 种子

查看原文: 如何搭建 Jenkins 主机

  • purplemouse
  • orangelion
  • goldenostrich
  • goldenleopard
  • lazylion
  • smallleopard
需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。