jenkins网上有许多的教程都是安装jenkins的docker镜像,通过启动docker容器服务进而使用的jenkins服务,但是后续使用docker部署项目,就需要在docker容器里支持 docker
和docker-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仓库查看可用的版本。
拼接链接规则
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的部署环境就准备好了。