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

本文共 4409 字,大约阅读时间需要 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.rpmsudo 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.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keysudo yum install jenkins -y

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

sudo systemctl start jenkinssudo systemctl enable jenkinssudo systemctl daemon-reload

1.3 配置防火墙

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

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanentsudo firewall-cmd --zone=public --add-service=http --permanentsudo 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 bashdocker_network=infrastructure_networkdocker_compose_file=infrastructure-docker-compose.ymlecho "The compose file as below:"docker-compose -f ${docker_compose_file} confignw=$(docker network ls | grep ${docker_network} | awk '{print $1}')if [[ ${nw} ]]; then  docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -delse  docker network create ${docker_network} && docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -dfi

运行脚本:

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 nginxsudo systemctl start nginxsudo systemctl enable nginx# 添加 hosts 记录(需权限)sudo nano /etc/hosts127.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/

    你可能感兴趣的文章
    php机器人聊天对话框,基于AIML的PHP聊天机器人
    查看>>
    PHP查找数组中最大值与最小值
    查看>>
    php查最大值,在PHP数组中查找最大值
    查看>>
    php标签筛选,关于PHP CodeIgniter框架中通过<a>标签和url做多条件分类筛选
    查看>>
    php根据年月日计算年龄
    查看>>
    RabbitMQ - 单机部署(超详细)
    查看>>
    php检查注册,PHP检查注册的电子邮件地址是一个’school.edu’地址
    查看>>
    php模拟发送GET和POST请求
    查看>>
    RabbitMQ - 以 MQ 为例,手写一个 RPC 框架 demo
    查看>>
    php模板引擎smarty
    查看>>
    php正则表达式模式
    查看>>
    php正则表达式的特殊字符含义
    查看>>
    PHP正则表达式获取武汉市的实时pm2.5数据并邮件发送phpmailer
    查看>>
    RabbitMQ + JMeter组合,优化你的中间件处理方式!
    查看>>
    PHP水仙花问题解法之一
    查看>>
    php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
    查看>>
    php注册页面实现注册后跳转页面
    查看>>
    PHP消息队列的实现方式与详解,值得一看
    查看>>
    PHP混合Go协程并发
    查看>>
    php源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
    查看>>