博客
关于我
Jenkins 基础篇 - 安装部署
阅读量:620 次
发布时间:2019-03-12

本文共 4482 字,大约阅读时间需要 14 分钟。

Jenkins 安装与配置指南

Jenkins 是一款流行的持续集成(CI)工具,广泛应用于软件开发的自动化构建和测试过程中。本文将详细介绍 Jenkins 的安装与配置方法,涵盖 Linux 环境下的安装、Docker 容器部署以及插件下载加速等内容。


1. Linux 下安装 Jenkins

在 Linux 环境下安装 Jenkins 需要完成以下几个步骤:

1.1 安装必要工具

Jenkins 运行时需要安装 Git 和 JDK 8。可以通过以下命令安装:

sudo yum install git java-1.8.0-openjdk

1.2 安装 Jenkins

安装 Jenkins 有两种方式:安装指定版本或安装最新版本。

安装指定版本

下载并安装指定版本的 Jenkins RPM:

wget https://pkg.jenkins.io/redhat-stable/jenkins-2.222.4-1.1.noarch.rpm
sudo rpm -ivh jenkins-2.222.4-1.1.noarch.rpm

安装最新版本

添加 Jenkins YUM 仓库并安装最新版本:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins -y

启动 Jenkins 服务并设置开机启动:

sudo systemctl start jenkins
sudo systemctl enable jenkins
sudo systemctl daemon-reload

1.3 配置防火墙

Jenkins 默认运行在 8080 端口,需要允许该端口通过防火墙:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload

2. Docker 容器部署 Jenkins

使用 Docker 容器部署 Jenkins 服务有以下两种方式:直接使用 docker run 命令,或通过 docker-compose 命令。

2.1 使用 docker run

运行 Jenkins 容器并挂载必要的数据卷:

# 拉取指定版本 Jenkins 容器
docker pull jenkins/jenkins:2.222.4-lts-centos7
# 创建容器网络(可选)
docker network create jenkins_network
# 运行 Jenkins 容器
docker run --name jenkins-in-docker \
--network jenkins_network \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins_home:/var/jenkins_home \
--volume /usr/bin/docker:/usr/bin/docker \
--volume /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:2.222.4-lts-centos7

注意事项

  • 容器中的 Jenkins 用户需属于 docker 组。
  • 容器内的 docker.sockdocker 客户端需挂载到宿主机。

2.2 使用 docker-compose

通过 docker-compose 运行 Jenkins 服务,推荐使用镜像 jenkins/jenkins:2.222.4-lts-centos7

配置 docker-compose 文件

创建 infrastructure-docker-compose.yml

version: '3.7'
services:
jenkins-in-docker:
image: jenkins/jenkins:2.222.4-lts-centos7
container_name: jenkins-in-docker
privileged: true
restart: unless-stopped
ports:
- 8080:8080
- 50000:50000
environment:
JAVA_OPTS: "-Xmx2048m -Xms1024m -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
volumes:
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
- ./docker_data/jenkins/2.222.4/jenkins_home:/var/jenkins_home
- ./docker_data/jenkins/2.222.4/jenkins_home_bak:/var/jenkins_home_bak
networks:
- infrastructure_network
deploy:
resources:
limits:
memory: 4096M
cpus: '2'
networks:
infrastructure_network:
external: true

启动服务

运行 docker-compose 脚本:

# 创建启动脚本 startup-infrastructure-docker-compose.sh
#!/usr/bin/env bash
docker_network=infrastructure_network
docker_compose_file=infrastructure-docker-compose.yml
echo "The compose file as below:"
docker-compose -f ${docker_compose_file} config
nw=$(docker network ls | grep ${docker_network} | awk '{print $1}')
if [[ ${nw} ]]; then
docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -d
else
docker network create ${docker_network} && docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -d
fi

运行脚本:

chmod +x startup-infrastructure-docker-compose.sh
./startup-infrastructure-docker-compose.sh

3. 插件下载加速

Jenkins 插件默认从国外镜像源下载,速度较慢。以下是优化方法:

3.1 修改默认镜像源

编辑 /usr/share/jenkins/ref/plugins/updates/default.json,将 mirrors.jenkins-ci.org 替换为国内镜像源:

{
"mirrors": {
"jenkins-ci.org": "https://mirrors.tuna.tsinghua.edu.cn/jenkins",
"www.google.com": "https://mirrors.tuna.tsinghua.edu.cn/google"
}
}

3.2 使用反向代理

安装 Nginx 并配置反向代理:

sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# 添加 hosts 记录(需权限)
sudo nano /etc/hosts
127.0.0.1 updates.jenkins-ci.org

修改 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/default

添加以下内容:

location /download/plugins/.* {
proxy_next_upstream http 502 504 error timeout invalid_header;
proxy_set_header Host mirrors.tuna.tsinghua.edu.cn;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
rewrite /download/plugins(.*) /jenkins/plugins/$1 break;
proxy_pass https://mirrors.tuna.tsinghua.edu.cn;
}

3.3 使用镜像站点

在 Jenkins 中设置国内镜像站点:

  • 进入 Jenkins 管理界面,选择 系统管理 > 插件管理 > 高级 > 升级站点
  • 输入国内镜像站点地址,点击 立即获取

  • 通过以上方法,可以快速搭建一个高效的 Jenkins CI 环境。对于 Docker 容器中的 Jenkins,确保容器内 docker 组设置正确,以便正常执行 Docker 命令。如有问题,可参考 Jenkins 中文社区的相关解答。

    转载地址:http://cpwaz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现KNN算法(附完整源码)
    查看>>
    Objective-C实现KNN算法(附完整源码)
    查看>>
    Objective-C实现knuth morris pratt(KMP)算法(附完整源码)
    查看>>
    Objective-C实现knuth-morris-pratt(KMP)算法(附完整源码)
    查看>>
    Objective-C实现koch snowflake科赫雪花算法(附完整源码)
    查看>>
    Objective-C实现KPCA(附完整源码)
    查看>>
    Objective-C实现KruskalMST最小生成树的算法(附完整源码)
    查看>>
    Objective-C实现kruskal克鲁斯卡尔算法(附完整源码)
    查看>>
    Objective-C实现kth order statistick阶统计量算法(附完整源码)
    查看>>
    Objective-C实现lamberts ellipsoidal distance朗伯椭球距离算法(附完整源码)
    查看>>
    Objective-C实现largest AdjacentNumber最大相邻数算法 (附完整源码)
    查看>>
    Objective-C实现largest subarray sum最大子数组和算法(附完整源码)
    查看>>
    Objective-C实现largestPrime最大素数的算法 (附完整源码)
    查看>>
    Objective-C实现lazy segment tree惰性段树算法(附完整源码)
    查看>>
    Objective-C实现LBP特征提取(附完整源码)
    查看>>
    Objective-C实现LDPC码(附完整源码)
    查看>>
    Objective-C实现least common multiple最小公倍数算法(附完整源码)
    查看>>
    Objective-C实现Lempel-Ziv压缩算法(附完整源码)
    查看>>
    Objective-C实现Length conversion长度转换算法(附完整源码)
    查看>>
    Objective-C实现Levenshtein 距离算法(附完整源码)
    查看>>