Centos7安装Jenkins和目录迁移
Centos7安装Jenkins和目录迁移
内容:
- 安装Jenkins和相关的配置
- 尝试目录迁移,模拟磁盘空间不足
1. 安装Jenkins和配置
- 安装
根据Jenkins的官方安装指引,安装步骤如下:
shell> wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo #下载Jenkins的更新源,存储到/etc/yum.repos.d/jenkins.repo
shell> rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key #导入Jenkins软件的公钥
shell> yum upgrade #更新源
shell> yum install jenkins java-1.8.0-openjdk-devel #使用源安装Jenkins和java-8-jdk
上面这个是官方的教程,我操作的时候,执行yum install jenkins时下载比较慢,所以我就在找rpm包,想使用迅雷下载rpm包然后上传到Centos主机去。附上官方的rpm包下载链接:https://pkg.jenkins.io/redhat-stable
至此,Jenkins软件已经安装好了,下面可以启动Jenkins了:
shell> systemctl start jenkins.service #启动Jenkins,如果要Jenkins开机自启,执行systemctl enable jenkins.service
shell> ps -ef | grep java #查看Jenkins服务是否已经启动
可以看到它其实是运行了一个Java进程,运行了一个Java Web项目/usr/lib/jenkins/jenkins.war
,Jenkisn家目录/var/lib/jenkins
,日志文件/var/log/jenkins/jenkins.log
,项目解包目录/var/cache/jenkins/war
,http访问端口8080
。现在我们可以在浏览器进行访问了,我这里输入:http://172.16.11.141:8080。
如果无法打开页面,请查看一下自己的防火墙设置是否已经开放了8080端口,如下添加开放8080端口:
shell> firewall-cmd --zone=public --add-port=8080/tcp --permanent #永久添加8080端口
shell> firewall-cmd --reload #重新加载,一定要重载才会生效
shell> firewall-cmd --list-port #查看开放的端口
打开浏览器,进行访问,可以看到在/var/lib/jenkins/secrets/initialAdminPassword
下存储了初始密码,复制粘贴到浏览器文本框即可:
然后它会联网加载插件,我这里应该是无法连接网络,选择Skip Plugin Installations
等下再重新配置更新的源,再安装所需的插件
然后,到了设置用户名、密码和访问的url,根据自己所需设置即可。至此,Jenkins的安装已经完成。
- 配置
Jenkins默认的更新Update Site
为https://updates.jenkins.io/update-center.json
,在国内比较慢甚至无法访问,所以,配置成清华的更新源比较好,把Update Site
更改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
,Update Site
的路径为:Jenkins-> Manage Jenkins->Manage Plugins->Advanced
修改了源还不行,还需要修改Jenkins目录下的update/default.json文件,它有一个测试网络连通的Google页面,在国内无法访问,会导致连不上网络,执行命令:
shell> cd /var/lib/jenkins #进入Jenkins的家目录
shell> sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' updates/default.json #我这里直接用sed替换了,可以看看这个default.json文件的内容
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' updates/default.json #替换为清华的源
shell> systemctl restart jenkins.service #重启Jenkins服务
最后,我在Available
项搜索git
并安装了git插件,并创建了一个item拉取了一个git仓库代码。
2. 尝试目录迁移,模拟磁盘空间不足
在上面我已经新建了一个item并拉取了git仓库代码,现在模拟磁盘空间不足,进行目录迁移,并且保留构建的文件数据。我这里把Jenkins迁移到/var/lib/jenkins-home
目录下,执行命令:
shell> mkdir /var/lib/jenkins-home #创建jenkins-home目录
shell> chown jenkins:jenkins /var/lib/jenkins-home #更改目录权限和用户组
shell> rsync -azvP /var/lib/jenkins/* /var/lib/jenkins-home #使用rsync同步复制同步文件,没有rsync的可以使用yum install rsync安装
shell> mv /var/lib/jenkins /var/lib/jenkins.bak #模拟Jenkins目录已经迁移了,不存在了。
shell> vim /etc/sysconfig/jenkins #编辑Jenkins的配置文件,修改JENKINS_HOME变量
修改/etc/sysconfig/jenkins
文件的JENKINS_HOME
:
## 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-home"
编辑后保存,然后重启Jenkins服务:
shell> systemctl restart jenkins.service #重启Jenkins服务
重启后重新登录,在Web页面进入Jenkins的配置管理,可以看到JENKINS_HOME已经生效:
但是,你会发现之前构建的拉取的代码文件没有得到正确配置,它读取的路径还是原有的/var/lib/jenkins/***
:
查看JENKINS_HOME/jobs目录,会发现每个item对应于一个文件夹,文件夹下有builds文件夹、配置.xml文件和下一次构建的数字number存储文件,builds目录下存储了我们这个item每次构建的信息,1,2,3文件夹对应于第1,2,3此构建,下面查看neteasemusicplayer
这个item
的第一次构建的文件信息:
shell> cd /var/lib/jenkins-home #进入迁移后的Jenkins目录
shell> vim jobs/neteasemusicplayer/builds/1/build.xml #查看构建的配置信息
可以发现workspace的路径还是原有的目录路径,我们为了让迁移后的Jenkins能够读取迁移后的路径,还需要修改每一次构建的build.xml
文件,里面存储了Jenkins读取的目录信息:
shell> find jobs/ -name build.xml | xargs sed -i "s/\/var\/lib\/jenkins/\/var\/lib\/jenkins-home/g" #查找jobs目录下的名称为build.xml的文件,使用sed替换查找的文件里面的/var/lib/jenkins为/var/lib/jenkins-home
最后,还要在Jenkins的Web界面的Manage Jenkins->Reload Configuration from Disk进行重载配置文件。
重载配置文件后重新登录,进入item的workplace可以看到原有文件已经显示出来了,目录迁移成功。
Centos7安装Jenkins和目录迁移的更多相关文章
- 【linux】【jenkins】自动化部署一 安装jenkins及Jenkins工作目录迁移
系统环境:Centos7 https://jenkins.io/zh/download/ 下载对应系统的jenkins 一.安装jdk8.0 jenkins安装需要jdk8or11,根据jenkins ...
- CentOS7安装Jenkins,使用war方式直接运行或用yum方式安装运行
jenkins最简单的安装方式呢,就是直接去官网下载jenkins的war包,把war丢到tomcat里运行,直接就能打开了. Jenkins官网:https://jenkins.io/downloa ...
- CentOS7安装Jenkins自动化部署maven项目
前言: 最近要弄一个jenkins工具,已经安装好了并且jenkins使用部署项目的流程已经基本走通,上图: 话不多说,开始 第一步:安装jenkins: [ 准备环境: 在centOS7环境上:安装 ...
- CentOS7安装Jenkins Master
一.安装java环境 1.查看服务器版本 cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 升级操作系统 yum update ...
- centos7安装Jenkins更改默认端口并配置Ldap服务器进行用户认证
应用环境:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作. Jenkins官网:https://jenkins.io/ 测试环境:一台Centos ...
- centos7安装Jenkins及其卸载
首先安装好Java(Java_home) 查看Java版本 # java -version 如果没安装,依照以下我的另一篇博客进行安装 https://www.cnblogs.com/djlsunsh ...
- Jenkins使用一:CentOS7安装Jenkins
安装jdk环境: yum search jdk 装 1.8版本的:yum install -y java-1.8.0-openjdk 安装Jenkins wget -O /etc/yum.repos. ...
- CentOS7安装Jenkins与配置
安装 将Jenkins存储库添加到yum repos,并从此安装Jenkins. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenki ...
- CentOS7 安装 Jenkins
1. 安装java环境, 自己的虚拟机里面前期已经安装好了 检查一下: [root@centos74 ~]# java -versionopenjdk version "1.8.0_131& ...
随机推荐
- redis学习之——redis.conf配置(基本)文件学习
# Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...
- 使用 open 函数 写的代码 用户名登录
先创建文件ha.log 内容: aaa$$123bbb$$456 def dl(user,pas): f = open('ha.log', 'r', encoding="utf-8" ...
- Tensorflow学习笔记No.11
图像定位 图像定位是指在图像中将我们需要识别的部分使用定位框进行定位标记,本次主要讲述如何使用tensorflow2.0实现简单的图像定位任务. 我所使用的定位方法是训练神经网络使它输出定位框的四个顶 ...
- oracle DG查看延时时间
oracle DG查看延时时间 SQL> select value from v$dataguard_stats where name='apply lag'; 例如: SQL> sele ...
- jmeter跨线程使用token
项目的接口测试,今早所有接口都不通了,查看原因是登录接口地址变了..... 原来的方式是每个线程中都写了登陆接口来获取token,但是因为登陆接口地址改变的原因,要改好多个登陆接口,所以就想把toke ...
- Elements-of-Python_04_Function
(内容包括函数.递归.Lambda.作用域等) 1. 函数 1.1 函数概述 函数是对程序逻辑进行结构化和过程化的一种编程方法,用于封装一个特定的功能,表示一个功能或者行为.函数是可以重复执行的语句块 ...
- js下 Day15、正则表达式
一.正则表达式简介 什么是正则表达式 正则表达式,也叫规则表达式, 是对字符串操作的一种逻辑公式. 为什么要使用正则? 1.使用极简单的方式,去匹配字符串 2.速度快,代码少 3.在复杂的字符串中快速 ...
- 什么是java的深浅拷贝?
什么是java的深浅拷贝? 浅拷贝 就是很肤浅的拷贝,只拷贝了别人的地址.没有拷贝地址里面的值.地址里面的值改变后,就都改变了. 深拷贝 就是很深入的拷贝,深入到核心的拷贝,拷贝了别人地址里面的值,别 ...
- Python高级语法-对象实例对象属性-类与实例,class方法静态方法等(4.6.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 python中属性:类属性,实例属性 方法:类方法,实例方法,静态方法 想修改类属性,只能是类方法,因为只有类方法把cls(类)传入数据里面 静态方法 ...
- SQL注入-DNS注入(一)
这篇文章相对来说比较入门,参考的文章是:https://www.jianshu.com/p/c805209244c2 0x00前言 前段时间在做盲注 分别是基于时间和基于布尔型的 说真的 这两种盲注真 ...