如何搭建 Jenkins 主机
this document has been write in 2018.10
thanks for your patient reading
主机性能:4 核心 / 8GB 内存 / 100GB 存储
thanks for your patient reading
Jenkins 简介
jenkins 是目前较为流行的开源软件项目,该软件需要在 java 的环境下运行,能够帮助用户实现可持续的软件项目重复部署。
jenkins 主机内,除却 jenkins 软件本身,还应当配置的工具组件有:
组件或工具的名称 | 组件或工具的作用 |
oracle java | 为 jenkins 提供必要的运行环境 |
python2 | 其 fabric 模块将为项目部署和启动脚本提供关键支持 |
nginx | 将 80 端口的访问请求转发至 8080 端口 |
git | 将 gitlab 或 github 上托管的项目源码克隆到 jenkins 主机内 |
主机内 jenkins 的用户和用户组信息如下
jenkins:x:115:122:Jenkins,,,:/var/lib/jenkins:/bin/bash其中:
jenkins | 主机内的用户名为 jenkins |
x | 密码占位符,真正的用户密码在 /etc/shadow 文件内 |
115 | 用户的 uid 编号 (该编号小于 1000,表示 jenkins 是系统用户) |
122 | 用户所属组的 gid 编号 |
/var/lib/jenkins | 用户 jenkins 的家目录为 /var/lib/jenkins |
/bin/bash | 登录 jenkins 时, 使用 bash 作为终端工具 |
Jenkins 主机的搭建过程
系统环境:Ubuntu16.04主机性能:4 核心 / 8GB 内存 / 100GB 存储
检查主机内的 java 环境
summer:~$ java -verison
该命令存在 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>
根据检查情况,选择性的执行本步骤命令,确认主机成功安装 oracle java 环境
summer:~$ 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
安装 jenkins 软件
summer:~$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - summer:~$ sudo vim /etc/apt/sources.list summer:~$ sudo apt-get update summer:~$ sudo apt-get install jenkins
安装 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/
启动 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
访问 jenkins 主机的 ip 地址,首次登录 jenkins 网站进行解锁
打开 jenkins 主机内的 /var/lib/jenkins/secrets/initialAdminPassword 文件,获取密码并完成解锁。
选择 install suggested plugins 后,jenkins 网站会自行安装标准插件。
设置 jenkins 网站的管理员账号,建议将账号信息保存在主机的 ~/.jenkins 文件内。
安装管理 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 模块
安装 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
使用管理员用户登录 gitlab 网站,并配置 gitlab 平台的 deploy-key
在 deploy-key 的配置界面, 为 deploy-key 指定名称,将 /home/summer/.ssh/id_rsa.pub 内的公钥信息填写到 deploy-key 相应位置。
配置文件说明
文件一: /etc/apt/sources.list
### 该文件为 Ubuntu16.04 原始的 apt-get 源配置文件 deb http://cn.archive.ubuntu.com/ubuntu/ xenial universe deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates universe deb http://cn.archive.ubuntu.com/ubuntu/ xenial multiverse deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse deb http://cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu xenial-security main restricted deb http://security.ubuntu.com/ubuntu xenial-security universe deb http://security.ubuntu.com/ubuntu xenial-security multiverse
### jenkins 的安装包被单独作为 1 个 apt-get 源追加到文件结尾 deb http://cn.archive.ubuntu.com/ubuntu/ xenial universe deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates universe deb http://cn.archive.ubuntu.com/ubuntu/ xenial multiverse deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse deb http://cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu xenial-security main restricted deb http://security.ubuntu.com/ubuntu xenial-security universe deb http://security.ubuntu.com/ubuntu xenial-security multiverse deb https://pkg.jenkins.io/debian-stable binary/
文件二: /etc/nginx/sites-available/jenkins
# 这是一个新建的文件, 用于转发 80 端口的访问请求至 8080 端口(jenkins 的默认端口) server { listen 80; location / { proxy_pass http://127.0.0.1:8080; } }
文件三: /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())
文件四: /home/summer/.pip/pip.conf
# 该配置文件为新建文件, 用于配置国内的 pip 镜像源(我们配的是 douban 的 pip 镜像源) [global] index-url = http://pypi.douban.com/simple [install] trusted-host=pypi.douban.com
相关推荐
达观数据 2020-11-11
汪康 2020-10-30
ppppfly 2020-10-24
synshitou 2020-10-21
programmeryu 2020-09-24
Topbeyond 2020-08-21
lrcoop 2020-08-18
young依然 2020-08-17
oden 2020-08-16
lrcoop 2020-08-15
yserver 2020-08-15
王永迪 2020-08-15
pursuemylife 2020-08-14
pandaphinex 2020-08-09
leonranri 2020-07-26
CloasGao 2020-07-21
zccheu 2020-07-18