Jenkins安装需要Java环境
docker安装jenkins
CentOS停止维护后,更换了服务器系统。使用docker安装jenkins,安装方便,而且jenkins数据迁移的时候也方便。
拉取 jenkins镜像
# docker pull jenkins/jenkins
如果报错:Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
则修改 /etc/docker/daemon.json,如果没有该文件,则新建。添加 registry-mirrors:镜像源地址。
{
"registry-mirrors": ["https://docker.1ms.run", "https://docker.1panel.live/", "https://mirror.aliyuncs.com"]
}
重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
再次拉取 jenkins镜像。
如果是 jenkins 数据迁移的话,先把原 jenkins 文件夹,复制到新服务器的对应的文件夹下,然后再启动 jenkins。
待 Jenkins数据迁移好后,运行。
docker run -u root -it --name jenkins -p 8080:8080 -p 50000:50000 -v /usr/local/jenkins_home:/var/jenkins_home -v /usr/local/maven:/usr/local/maven -v /usr/local/java:/usr/local/java -v /usr/local/nodejs:/usr/local/nodejs -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -d jenkins/jenkins:2.263.1
-u root 必须要在root下运行。
安装Jenkins
添加Jenkins库到yum库,Jenkins将从这里下载安装。
#下载Jenkins库
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
#导入key
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
安装
[root@centos ~]# yum install -y jenkins
通过上面命令后,Jenkins安装目录里面实际上没有任何文件,是空的。
只有在Jenkins第一次访问时候,会下载文件准备。
启动
[root@centos ~]# systemctl start jenkins
如果start jenkins提示找不到jenkins.service,重启系统就可以了,特别是通过rpm包安装的时候,安装完毕启动jenkins,提示找不到jenkins.service。
相关配置
Jenkins安装目录
/var/lib/jenkins
Jenkins配置文件地址
/etc/sysconfig/jenkins
查看Jenkins的配置文件
JENKINS_HOME 是Jenkins的主目录,Jenkins工作的目录都放在这里,存储文件的地址、插件、生成的文件都在这个目录下
## Path: Development/Jenkins
## Description: Jenkins Automation Server
## Type: string
## Default: "/var/lib/jenkins"
## ServiceRestart: jenkins
#
# Directory where Jenkins store its configuration and working
# files (checkouts, build reports, artifacts, ...).
#
JENKINS_HOME="/var/lib/jenkins"
JENKINS_USER 是Jenkins的用户,拥有 $JENKINS_HOME 和 /var/log/jenkins 的权限
## Type: string
## Default: "jenkins"
## ServiceRestart: jenkins
#
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="jenkins"
JENKINS_PORT 是Jenkins的端口,默认端口是8080
## Type: integer(0:65535)
## Default: 8080
## ServiceRestart: jenkins
#
# Port Jenkins is listening on.
# Set to -1 to disable
#
JENKINS_PORT="8080"
在启动Jenkins时遇到问题
[root@centos ~]# systemctl start jenkins
Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code.
查看错误详情
[root@centos ~]# systemctl status jenkins.service
是因为Jenkins 未加载到 java 环境的问题,实际 java环境已经配置好。
直接修改 Jenkins 的启动文件,并在 candiddates 参数内追加 java 的环境变量。
[root@centos ~]# vim /etc/rc.d/init.d/jenkins
如下图所示
启动Jenkins
- 安装成功后Jenkins将作为一个守护进程随系统启动
- 系统会创建一个“jenkins”用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者
- 启动的时候将从/etc/sysconfig/jenkins获取配置参数
- 默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端进行服务配置
- Jenkins的RPM仓库配置被加到/etc/yum.repos.d/jenkins.repo
Jenkins下载rpm安装
1、下载 Redhat Jenkins Packages 下载合适的版本
2、安装命令
sudo rpm -ih jenkins-2.73.2-1.1.noarch.rpm
自动安装完成之后:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录(做迁移的时候备份的文件是JENKINS_HOME,有的是jenkins)
/var/log/jenkins/jenkins.log Jenkins日志文件
打开jenkins
在浏览器中访问
首次进入会要求输入初始密码
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword
Jenkins迁移
将Jenkins数据文件夹(如 /var/lib/jenkins)打成压缩包,移动到新服务器解压缩。解压缩之前要关注一下是否已经有jenkins用户。如果有解压缩后,文件自动就是Jenkins用户的。
注意必须用压缩包形式移动,不能用复制的方式,使用压缩包解压缩后文件所属的用户 还是jenkins。
如果迁移后,Jenkins数据文件夹及其文件都是jenkins用户,但是在网站访问的时候报以下错
Jenkins throwing error: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created
方法一: 使用root用户来管理jenkins(简单粗暴)
由于jenkins自动部署会用到shell命令,使用root用户会避免遇到更多的问题(但是实际生产中,更推荐不要使用root用户)
$ vim /etc/sysconfig/jenkins # 打开配置文件
$JENKINS_USER="root" # 修改$JENKINS_USER变量为root,并去掉当前行注释
#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/log/jenkins
$ chown -R root:root /var/cache/jenkins
#重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root
$ service jenkins restart
$ ps -ef | grep jenkins # 查看Jenkins进程所属用户
方法二:新建用户【推荐】
$ useradd zcjenkins #添加新用户zcjenkins
$ vim /etc/sysconfig/jenkins # 打开配置文件
$JENKINS_USER="zcjenkins" # 修改$JENKINS_USER变量为root,并去掉当前行注释
#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R zcjenkins:zcjenkins /var/lib/jenkins
$ chown -R zcjenkins:zcjenkins /var/log/jenkins
$ chown -R zcjenkins:zcjenkins /var/cache/jenkins
Jenkins如果出现部署docker时出错
INFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied
需要改变目录权限
usermod -a -G docker jenkins
https://blog.youkuaiyun.com/m0_37027631/article/details/104987046