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用户权限运行

相关推荐
意疏13 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
墨鸦_Cormorant13 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker
Code_Artist13 小时前
Docker镜像加速解决方案:配置HTTP代理,让Docker学会科学上网!
docker·云原生·容器
wanmei00215 小时前
Dockerfile复制目录进入镜像里
docker
inter_peng15 小时前
[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
tcp/ip·docker·eureka
Linux运维日记15 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
一名路过的小码农17 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
ernesto_ji18 小时前
Jenkins下载安装、构建部署到linux远程启动运行
linux·servlet·jenkins
xiangshangdemayi19 小时前
Windows环境GeoServer打包Docker极速入门
windows·docker·容器·geoserver·打包·数据挂载
程序员JerrySUN20 小时前
熟悉的 Docker,陌生的 Podman
linux·docker·容器·系统架构·podman