Jenkins集成化部署环境准备

jenkins网上有许多的教程都是安装jenkins的docker镜像,通过启动docker容器服务进而使用的jenkins服务,但是后续使用docker部署项目,就需要在docker容器里支持 dockerdocker-compose命令。对应地,有使用宿主机的docker环境和dokcer in docker的解决方案,但无论怎样,都有数不尽的坑,并且本来大家使用的服务器资源也不会太多,docker容器里新建docker部署将更为受限,因此,建议大家和我一样使用单机非docker安装jenkins。

如果使用的是centos的系统,在安装之前首先需要更新yum源,以防止一些内部软件包由于版本过老影响接下来的安装。不过在这里还需要补充一点,现在的jenkins已经在2023年停止了对centos7的支持,如果有条件请使用centos8以上的系统,笔者这里由于腾讯云只支持centos7的系统安装,没得选择了。

安装jdk17

可以运行命令:

复制代码
sudo yum install fontconfig java-17-openjdk

如果安装不成功,可以选择其它的安装方式,例如

sql 复制代码
sudo yum search jdk

安装这个包

复制代码
sudo yum install jdk-17.x86_64

之后可以通过java -version命令查看java的版本,如果有证明安装成功,否则还需要配置相关的环境变量,这部分不再介绍,请自行查阅。

添加jenkins仓库和密钥并安装

使用wget命令安装仓库和密钥,确保获取最新的jenkins。

arduino 复制代码
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-2023.key

接下来使用yum命令安装jenkins

复制代码
sudo yum install jenkins

启动服务

可以使用systemctl命令启动jenkins服务并设置开机自启

bash 复制代码
sudo systemctl start jenkins
sudo systemctl enable jenkins

此时,jenkins服务已启动。

按网络上无数人的教程,都是赤裸裸启动一个服务了,但后续随着使用会发现许多的问题,例如jenkins服务占用内存过大,最后导致服务器的崩溃,特别是笔者的服务器仅仅是2核4G的情况下。

可以通过以下命令查看jenkins配置文件的地址

复制代码
sudo rpm -ql jenkins

需要注意的是,该文件默认是不可编辑的,仅可读,需要打开编辑之前使用chmod命令给写权限。

bash 复制代码
sudo chmod 664 /usr/lib/systemd/system/jenkins.service # 赋予写权限
sudo vim /usr/lib/systemd/system/jenkins.service

找到图中所示,红框部分就是需要加上的部分,限制最大内存占用2G。

然后重启jenkins服务

复制代码
sudo systemctl restart jenkins

jenkins的服务默认在8080端口,请通过8080端口打开页面。如果你想使用其它的端口,也可以在/usr/lib/systemd/system/jenkins.service文件中更改你的端口号。

如果使用了云服务,比如笔者的腾讯云,使用相关的端口,无论是页面还是其它的服务,外部访问都需要将对应的端口在防火墙规则放开:

到了这步,总算能在浏览器打开页面了:

初次登录,我们需要输入密钥,同时也是admin用户的密码(建议不要修改)可以通过以下命令找到:

bash 复制代码
cat /var/jenkins_home/secrets/initialAdminPassword

安装推荐的插件:

创建一个用户,或者默认当前的admin用户,admin用户的密钥就是你输入的这个,记得妥善保管,后面就不好查找了。所以,还是自己创建一个记得住密码的用户吧。

自此,安装就算是完成了。但是接下来有些常用的插件将向你介绍,在这一步我们就提前安装好。

jenkins以root用户权限运行

对于jenkins,为了后续部署时执行有关命令拥有root权限,我们可以将jenkins的运行权限设置为root

bash 复制代码
sudo vim /usr/lib/systemd/system/jenkins.service

修改保存后,记得重启jenkins服务。

复制代码
sudo systemctl restart jenkins

常用的jenkins插件

Gitee Plugin

由于github访问都是科学上网的,国内为了部署还是尽量使用gitee或者自己的gitlab仓库,因此需要安装Gitee的插件。

Blue Ocean

Blue Ocean是jenkins官方根据开发者的需求开发的一套更为美观的交互页面,具体介绍参考官网

原来自带的页面:

Blue Ocean的页面:

Generic Webhook Trigger

用于支持后续自定义webhook服务的触发器

安装docker

jenkins环境安装好了,我们可以继续安装docker了。对于docker的安装,分别是docker命令和docker-compose命令。

设置docker仓库并安装

csharp 复制代码
sudo yum install -y yum-utils
#设置国内源加快安装速度
sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

运行docker服务并设置开机自启

bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker #设置开机自启
##检查版本号
docker -v

安装docker-compose

首先需要下载二进制文件,需要使用curl命令下载。

网上很多二进制文件的链接可能会失败的,各位安装时最好自己去拼接,为此,可以通过github仓库查看可用的版本。

链接:github.com/docker/comp...

拼接链接规则

ruby 复制代码
https://github.com/docker/compose/releases/download/<version>/<file-nname>

就是realeases中的各个版本,注意从2开始,版本号前面有个"v",然后使用uname -r命令查看当前的系统架构

你就知道具体使用哪个二进制安装包了

例如:

ruby 复制代码
https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64

于是,可以有:

ruby 复制代码
curl -L https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64 >  /usr/local/soft/docker-compose

"docker-compose"是下载的二进制文件不是目录。

由于使用的github,可能出现安装过慢的情况,为此,可以选择国内其它的下载服务。

需要下载一些docker-compose的插件

sql 复制代码
yum -y install epel-release
yum install python3-pip
pip3 install --upgrade pip
pip3 install docker-compose

二进制文件下载后,需要分别添加可执行权限和软链接。

bash 复制代码
sudo chmod +x /usr/local/soft/docker-compose
ln -sf /usr/local/soft/docker-compose /usr/local/bin/docker-compose

最后,使用以下命令确定版本号:

css 复制代码
docker-compose --version

至此,我们的jenkins+docker的部署环境就准备好了。

参考文章

基于docker安装jenkins

centos7 安装docker-compose

jenkins 服务内存调整说明

jenkins以root用户权限运行

相关推荐
MAVER1CK7 小时前
Docker容器创建好后修改容器配置
运维·docker·容器
音符犹如代码17 小时前
Docker 一键部署带有 TimescaleDB 插件的 PostgreSQL
java·运维·数据库·后端·docker·postgresql·容器
YuanDaima204817 小时前
Docker 工程化安装与核心命令实战
运维·人工智能·docker·微服务·容器·bash
cgsthtm18 小时前
rocky linux 8.10 下的 podman 配置镜像加速
docker·podman·镜像加速·podman-docker·毫秒镜像
牛奔19 小时前
在 Docker 容器里测试外部域名延迟
运维·docker·容器
颖火虫盟主19 小时前
Claude Code Cron 定时任务:从入门到自动化
运维·docker·自动化
liyunlong-java20 小时前
Elasticsearch 8.5.3 + IK 分词器 + Kibana 8.5.3 一键安装
大数据·elasticsearch·jenkins
IT策士20 小时前
深入浅出:使用 Gunicorn + Nginx + Docker 将 Django 项目部署到云服务器
nginx·docker·gunicorn
jran-20 小时前
Docker 数据卷&应用部署
运维·docker·容器
jran-20 小时前
Docker dockerfile镜像制作&compose服务编排&私有仓库
java·docker·容器