Jenkins部署与备份恢复实战 精选 原创 dyc2005 2018-11-11 11:50:15 博主文章分类:日常实战 ©著作权 文章标签 jenkins安装 jenkins备份 jenkins恢复 jenkins从节点配置 文章分类 运维 ©著作权归作者所有:来自51CTO博客作者dyc2005的原创作品,请联系作者获取转载授权,否则将追究法律责任 一、关于Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能! 先了解下相关概念: CI: continuous integration持续集成 (code -- bulid -- integrate --test) CD: continuous Delivery 持续交付 ( test -- release) continuous Deployment 持续部署 简单来说就是通过Jenkins及相关的插件,可以让企业代码构建--发布--测试--上线整个流程变得自动化,持续集成; 接下来我们就从jenkins的安装部署到日常的简单使用,以及jenkins的备份与恢复做一个简单的了解! 二、Jenkins安装 此次实战来源于线上对jenkins的灾备,即现有的jenkins环境不可用时,要有一个马上能替代的jenkins环境,保障持续集成部署上线业务不中断;因此需要另外部署安装一套Jenkins系统,在现有Jenkins系统不可用时,能顶上,当然这其中最关键的是在于现有jenkins中的各种view,job等数据怎么在新的jenkins上同步过来? 思路:在现有jenkins上通过插件ThinBackup来(定时完整)备份jenkins上的数据;通过NFS 共享到备份的jenkins上,备份的jenkins上恢复; 这样基本上能达到有两个可用的jenkins系统,所谓的冷备吧~ 此次实战环境: CentOS7.5 java version: "1.8.0_171" ip: 10.8.11.228 1、安装 本次使用官方提供的redhat源安装;由于Jenkins基于java开发的,因此需要java环境; # rpm -ivh jdk-8u171-linux-x64.rpm # 基本上1.8.x都可以 ###下载官方yum仓库 # wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo ## 导入证书 # rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key ## 安装 # yum install jenkins -y ## 启动jenkins # systemctl enable jenkins # systemctl start jenkins Jenkins安装就是这么简单,jenkins默认侦听在tcp 8080端口上;如果要修改默认侦听端口及其他的配置项;可到下面的文件中修改即可; #cat /etc/sysconfig/jenkins |grep JENKINS_PORT JENKINS_PORT="8080" 不过默认配置已经可以直接使用了,无需要修改! 2、防火墙配置 # /etc/sysconfig/iptables 文件中添加以下配置 以开放jenkins服务 -A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 8080 -j ACCEPT -A OUTPUT -p tcp -m state --state ESTABLISHED -m tcp --sport 8080 -j ACCEPT 注:如果jenkins有从节点,请开放到从节点的端口通常最方便的做法是开放ip或段的白名单 -A INPUT -s 10.8.0.0/16 -m state --state NEW,ESTABLISHED -m comment --comment "Allow 10.8.0.0/16 IN" -j ACCEPT -A OUTPUT -d 10.8.0.0/16 -m state --state NEW,ESTABLISHED -m comment --comment "Allow 10.8.0.0/16 OUT" -j ACCEPT 3、jenkins初始化配置 浏览器中访问:http://10.8.11.228.8080 如图: 上图中的Aadministrator password 如下图中所示获取填入: 接下来就是自动安装推荐插件或手动选择安装插件,可跳过;因为本次安装的主要目的是为了 从已有的jenkins上还原配置;备份中已经有了jenkins插件备份和相关数据的备份; jenkins初始化就是这么简单,接下就可以配置使用了~ 这里演示的是从已有的jenkins中备份并在这台新的jenkins中还原~ 三、Jenkins备份 1、安装ThinBackup 备份jenkins通过第三方插件 ThinBackup 进行 登录已有jenkins进行安装ThinBackup插件: Jenkins --> 系统管理 --> 插件管理 --> 搜索ThinBackup 下图是已经安装好了 2、配置ThinBackup Jenkins --> 系统管理 --> ThinBackup --> Setting -->如图: 以上配置表示周一到周五12点1分完整备份到/mnt/jenkins_bak (NFS共享中) 备份内容包括:build results、Backup userContent folder、Backup next build number file Backup plugins archives(插件)、 Backup additional files、以及把老的备份文件打包压缩 手动执行备份: Jenkins --> 系统管理 --> ThinBackup --> Backup Now 注意此时页面像是卡住了(等待备份响应),实际上jenkins在后台运行备份程序,可以通过到备份目录中查看 目录大小看到,已经生成了备份目录类似 "FULL-2018-11-06_21-01" 备份完成页面就正常了~ 四、通过备份进行恢复Jenkins 1、环境准备 假设现有的jenkins已经损坏不能正常使用;需要通过最近的完整备份恢复jenkins服务; 首先部署jenkins 请参考步骤一;挂载NFS共享目录到本地(因为之前的jenkins自动备份是放在NFS中) 或复制完成备份到新的jenkins主机上;新的jenkins安装第三方备份还原插件ThinBackup; 2、配置ThinBackup并备份 还原操作在10.8.11.228上即上面新安装的jenkins上操作,步骤如下: 先设置备份与还原的配置: Jenkins --> 系统管理 --> ThinBackup --> Setting -->如图: 3、还原jenkins: Jenkins --> 系统管理 --> ThinBackup --> Restore 如图: 如图钩选上 Restore next build number file(build文件) Restore plugins(还原插件) 点击Restore 同样需要等待一段时间;可以查看/var/lib/jenkins目录的变化; 4、还原注意项 jenkins还原后可能出现以下插件没有更新情况如图(不影响还原后使用): 以下显示的有红色提示的表示更新后的新插件版本会影响现有功能使用,需要重新配置才可以;因此需要谨慎更新; 如图: 没有提示的可以直接到插件中进行更新操作; 还原后会发现所有的从节点变成offine状态不可用;如还原后从节点10.8.11.240状态是offine 点击从节点测试可能出现如下情况: [06/11/18 10:03:51] [SSH] Opening SSH connection to [AGENT_HOSTNAME]:22. [06/11/18 10:03:51] [SSH] WARNING: No entry currently exists in the Known Hosts file for this host. Connections will be denied until this new host and its associated key is added to the Known Hosts file. Key exchange was not finished, connection is closed. java.io.IOException: There was a problem while connecting to [AGENT_HOSTNAME]:22 原因是缺少/var/lib/jenkins/.ssh/known_hosts文件(里面是jenins到各从节点的应答指纹信息) 需要在/var/lib/jenkins工作队目录下创建.ssh目录并修改为 jenkins用户和组所有权限700 对所有从节点手动访问一次用来接受ssh应答指纹; 在新的jenkins上 ssh root@10.8.11.240 此时/root/.ssh/known_hosts中有一条如下记录: 复制/root/.ssh/known_hosts 到/var/lib/jenkins/.ssh/下 权限如下: -rw------- 1 jenkins jenkins 2.6K 11月 6 18:08 known_hosts 如是从节点是无密码私钥认证请记得把私钥放在/root/.ssh/下叫id_rsa 公钥放到对应从节点的用户下 /root/.ssh/authorized_keys文件中并确保权限为 -rw------- 1 root root1 .2K 12月 12 2017 authorized_keys ssh -p 65022 root@10.8.11.246 无密码登录上10.8.11.246则表示配置正常; 重复以上操作从新jenkins上登录所有从节点再把known_hosts复制到/var/lib/jenkins/.ssh/下 直到所有从节点 的应答指纹都在存在; 5、以ssh 私钥添加从节点 Jenkins -->系统管理--> 节点管理--> New Node --> Node name -->固定节点 如图: 点击 “Credentials” Add 添加jenkins与从节点通讯方式为ssh 私钥 并粘贴私钥文件 如图: 保存; 再次点击节点测试可以发现 从节点正常啦! 五、测试Jenkins使用 下面以TEST-rsyncV3images job 在恢复过来的jenkins上运行,这是用来把线上图片同步到本地所有测试环境中的job: 以下是以恢复过来的Jenkins上测试执行一个job查看是否部署成功与恢复成功~ 到此,jenkins部署配置,以及添加从节点,备份与恢复完成~ 再也不怕jenkins故障导致业务无法部署上线啦,这是我这边找的解决方案,是实践中整理笔记 ,读者们要是有更好的方法,烦请留言告知下,同时也可以对本文的错误遗漏之处做指正,谢谢~ 赞 收藏 评论 分享 举报 上一篇:python爬取电影并下载 下一篇:Gerrit安装与做冷备份实战 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 什么是异或运算? 异或运算是位运算的一种,符号为:^相同为0,不同为1。 容易与同或运算记混,根据异或的特性也叫 不进位相加。异或运算的特质?N ^ 0 = N;N ^ N = 0;异或运行满足交换律和结合律;根据上面3个特质,个人觉得用无进位相加更便于理解了。N ^ 0 = Nint a = 5; //0101int b = a ^ 0; //0000System.out.println(b); 异或运算 数据结构与算法 位运算 数据库恢复技术||故障的种类和恢复的实现技术以及恢复策略 故障的种类: 事务内部的故障:包括预期和非预期的事务内部错误。系统故障:导致系统停止运行的事件,如硬件错误、操作系统故障、DBMS代码错误等。 介质故障:外存故障,如磁盘损坏、磁头碰撞等。 计算机bing毒:人为制造的程序,可能对数据库造成破坏。恢复的实现技术:数据转储:定期将数据库复制到其他存储介质上,分为静态转储和动态转储。登记日志文件:记录事务对数据库的所有更新操作,用于恢复。恢复策略: 事务故障恢复:利用日志文件撤销(UNDO)事务已对数据库进行的修改。系统故障恢复:结合日志文件进行UNDO和REDO操作,恢复数据库到一致状态。介质故障恢复:重装数据库副本并重做已完成的事务。具有检查点的恢复技术:检查点(Checkpoint):在日志文件中增加检查点记录,用于优化恢复过程。 恢复策略:根据检查点记录,确定需要UNDO或REDO的事务。数据库镜像:数据库镜像是将数据库或关键数据复制到另一个磁盘上,以提高数据库的可用性和恢复效率。 检查点 数据库 日志文件 数据库安全 数据恢复 Binlog数据恢复 binlog日志恢复数据 mysql 数据库 恢复数据 RMAN 异机异目录恢复 RMAN 异机恢复 Rman异机恢复 Rman异机恢复 Rman异机恢复 全库恢复(异机) 全库恢复(异机)数据库备份与恢复 全库恢复到另外一台测试库,属于异机恢复Ø 测试库创建PFILE参数文件INITSHESTATE.ORA *.aq_tm_processes=0 *.compat 全库恢复 异机 symantec BESR 异机恢复 symantec BESR 异机恢复 职场 syamntec 休闲 BESR 异机恢复 Cassandra管理之异机恢复 本文衔接上一篇Cassandra管理之备份与恢复,介绍如何进行cassandra异机恢复。这个异机恢复过程就是将旧库的数据文件拷贝到新环境对应的目录,然后启动数据库即可,但是在恢复之前还需要对新环境做一些必要的修改。这里的环境是单机版,另外此方法也适用于集群模式。1、环境信息2、获取tokens如果是集群模式,需要获取每个节点IP的tokens。这里是单机版,获取方法如下:[root@db03~] Cassandra NBU Rman异机恢复Oracle 背景:HostA上oracle通过NBU进行RMAN备份至带库,从HostB上恢复该库; 目的:在丢失了一部分数据的情况下,但因为没有足够的空间不能做整库恢复,只想恢复部分表; so假设:源主机HostA,目标主机HostB,NBUMaster主机Po,Oracle_sid均为test, Oracle用户均为ora。 步骤: 1、增加Po主机上文件 [Po:root]# oracle 职场 休闲 rman Oracle rman备份异机恢复 一、 实验环境db_A:192.168.0.3 db_B:192.168.0.4db_A为生产数据库,db_B为后备(不运行);两个数据库的环境完全一样。二、操作1.db_A的操作在db_A上进行rman的0级备份$rman target /RMAN>backup incremental level=0 dat oracle 职场 休闲 rman Rman备份异机恢复指南 环境介绍:操作系统版本:RHEL5.4 32位 ORALCE版本: 10.2.0.1 32位ORACLE_SID: orcl源服务器和目的服务器的操作系统,oracle版本均一致源服务器:192.168.227.20目的服务器:192.168.227.30,只需要安装oracle软件即可,不需要建库操作一:在源服务器上使用rman备份 职场 休闲 rman 异机恢复 incremental NBU 异机恢复 SQL Server 创建SQL恢复脚本在SQL Server服务器上打开NBU SQL Client选择Restore SQL Server Objects3、SQL HOST写本机4、选择需要还原的库,并保存脚本创建SQL恢复策略1、类型选择MS-SQL2、添加计划任务3、添加客户端4、选择恢复脚本手工运行策略6、还原成功 NBU7 备份 Netbackup7 SQL server 物理文件异机恢复 # SQL Server 物理文件异机恢复在日常的数据库管理中,有时候我们需要将 SQL Server 中的物理文件(如数据文件、日志文件)从一台服务器恢复到另一台服务器上。这种情况下,我们需要进行物理文件的异机恢复。下面我们将介绍如何在 SQL Server 中进行这种操作。## 步骤一:备份物理文件首先,在原始服务器上备份需要恢复的数据库的物理文件。可以使用 SQL Server SQL Server 服务器 Rman备份异机恢复指南续 先前整理了一篇rman备份异机恢复的文档,那篇文档比较偏向复杂型,需要对oracle的整个体系结构有一定的了解才能领悟,类似于oracle的手工建库 ;文章地址:http://ylw6006.blog.51cto.com/470441/659104 其实oracle 10g的rman也提供了类似于DBCA一样的简便工具来实现rman备份的异机恢复,也就是dup oracle 休闲 rman duplicate incremental RMAN异机恢复全过程 开始前源库和目标库的DBNAME一致,都开启了归档模式,数据库版本都是oracle11.2.0.4.01.在源库上找到昨天备份的数据库和备份之后的所有归档日志,拷贝到目标库上2.恢复控制文件(由于参数文件都一样,没必要去恢复了)经查看在通过SCP拷贝时用的是root用户拷贝的,拷贝过来的文件权限没更改再次恢复控制文件3.恢复数据文件找不到备份信息,需要catalog将备份信息和归档日志记录到控制文 RMAN 异机恢复 NBU 异机恢复Oracle操作步骤 一、 准备工作1. DB侧恢复服务器安装与原库相同版本的操作系统、数据库软件、NBU客 oracle 数据库 服务器 主机名 Oracle备份恢复之热备份恢复及异机恢复 原理: 数据库必须运行在归档模式下,否则备份没有意义。备份前冻结块头,使scn号不变化,然后cp物理文件,最后解冻块头。此过程dml语句可以正常执行,动作被写在日志文件里面,当解冻scn号后,日志文件中内容会自动写入数据文件。 流程: 1、全库备份: 1)alter database begin b Oracle备份恢复 原创文章 oracle 数据文件 sql NBU异机恢复ORACLE成功版本 经过《NBU异机恢复ORACLE(遇到的问题) 》,成功版本如下源端:oracle10grac1 oracle10grac2 RAC+ASM 目标端:ora10 master server:nbuserver1、在nbuserver的/usr/openv/netbackup/db/altnames目录下创建文件 No.Rest ORACLE NBU oracle 数据库 异机恢复 把一台机器上的数据库备份,然后恢复到另外一台机器使用 oracle 数据库 归档 异机恢复 postgresql 异机恢复 oracle异机恢复表空间 -- 场景 数据库中单独的一个表被delete或者truncate。排除可能进行闪回、日志挖掘、闪回查询、基于时间点的表空间恢复等方法,在11g上只能进行异机恢复。然后抽出数据,导入到生产库。在12c开始,支持RMAN对表的恢复。当库的大小不太大的时候,异机恢复还可以,当库为几个T的时候,为了一个表的数据恢复几个T的数据,时间上比较难以接受。本测试,主要测试,仅仅恢复表所在的表空间,来节约恢复时间 postgresql 异机恢复 oracle hive 表空间