有关puppet agent端三种备份恢复方案探讨研究

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

有关puppetagent端备份恢复方案探讨:


备份方案一、通过自定义facter结合元素backup进行备份恢复

一、facter部署

1、创建目录结构

[root@puppetserver modules]# mkdirpublic/{modules,manifests,files,lib/facter} -p


2、打开模块中的插件功能

[root@puppetserver public]# vim/etc/puppet/puppet.conf

[main]

pluginsync = true

3、编写自定义fact

[root@puppetserver public]# vim/etc/puppet/modules/public/lib/facter/backup_date.rb 

# backup_date.rb

#

Facter.add("backup_date") do

setcode do

Facter::Util::Resolution.exec('/bin/date +%Y%m%d%H%M%S')

end

end


4、建立环境变量(测试用)

[root@puppetserver public]# exportFACTERLIB=/etc/puppet/modules/public/lib/facter


5、测试fact(如果不正常,会显示调试信息)

[root@puppetserver puppet]# facterbackup_date

201307241552


6、客户端查看facter是否被下载生效

notice: Starting Puppet client version2.7.21

info: Retrieving plugin

notice:/File[/var/lib/puppet/lib/facter/backup_date.rb]/ensure: defined content as'{md5}91d97be10a35ab7971f77a2be9696031'

info: Loading downloaded plugin/var/lib/puppet/lib/facter/backup_date.rb

info: Loading facts in /var/lib/puppet/lib/facter/backup_date.rb

info: Caching catalog foragent1.bsgchina.com

info: Applying configuration version'1374652447'

notice: Finished catalog run in 1.47seconds

info: Retrieving plugin

info: Loading facts in/var/lib/puppet/lib/facter/backup_date.rb

info: Caching catalog foragent1.bsgchina.com

info: Applying configuration version'1374652447'

notice: Finished catalog run in 1.36seconds


[root@agent1 ssh]# ll/var/lib/puppet/lib/facter/

total 8

-rw-r--r-- 1 root root 138 Jul 24 16:13backup_date.rb

[root@agent1 ssh]# 


二、使用backup调用自定义变量

1、在模块的config.pp文件中添加元素backup

[root@puppetserver manifests]# vim/etc/puppet/modules/ssh/manifests/config.pp 

class ssh::config{

file { $ssh::params::ssh_service_config:

ensure => present,

owner => 'root',

group => 'root',

mode => 0440,

source =>"puppet:///modules/ssh/etc/ssh/sshd_config",

backup =>".$backup_date.bak",\\添加信息

require =>Class["ssh::install"],

notify =>Class["ssh::service"],

}

}


2、在节点查看对应目录下是否有按日期备份的文件

[root@agent1 ssh]# ll sshd*

-rw-r----- 1 root root 3134 Jul 24 16:20sshd_config

-r--r----- 1 root root 3190 Jul 24 16:17sshd_config.20130724162024.bak

-r--r----- 1 root root 3173 Jul 24 16:20sshd_config.20130724162039.bak





方案二、通过filebucket实现备份的集中化管理,通过节点或者puppetserver进行恢复

1、在site.pp中添加filebucket资源

[root@puppetserver ssh]# vim/etc/puppet/manifests/site.pp 


import 'nodes/*'

$puppetserver ='puppetserver.bsgchina.com'


filebucket { 'main':

path => false,#设置agent节点本地不需要保存

#path => "/var/lib/puppet/databackup",

server => 'puppetserver.bsgchina.com'#设置将文件更改过之前的版本保存到远程服务器puppetserver.bsgchina.com

}


2、在puppetmaster上修改模块配置文件

[root@puppetserver ssh]# vim/etc/puppet/modules/mysql/manifests/config.pp 


class mysql::config{

file { "/etc/my.cnf":

ensure => present,

owner => 'mysql',

group => 'mysql',

mode => 0644,

source =>"puppet:///modules/mysql/etc/my.cnf",

backup => 'main',#设置backup备份方式为之前site.pp中定义的main方式

#backup =>".$backup_date.bak",

require =>Class["mysql::install"],

notify =>Class["mysql::service"],

}


file { "/var/lib/mysql":

group => 'mysql',

owner => 'mysql',

recurse => 'true',

require =>File["/etc/my.cnf"],

}


}

3、修改测试文件模拟新版本发布

vim/etc/puppet/modules/mysql/files/etc/my.cnf


4、节点进行监听

[root@agent1 ssh]# puppet agent --server=puppetserver.bsgchina.com--verbose --no-daemonize

info: Retrieving plugin

info: Loading facts in backup_date

info: Loading facts in backup_date

info: Caching catalog foragent3.bsgchina.com

info: Applying configuration version'1374659257'

info: /Stage[main]/Mysql::Config/File[/etc/my.cnf]:Filebucketed /etc/my.cnf to main with sum fef73d96a75424c782191962f5aaf8ee

notice:/Stage[main]/Mysql::Config/File[/etc/my.cnf]/content: content changed '{md5}fef73d96a75424c782191962f5aaf8ee' to '{md5}09fb95f5505056b5a40c4905af3d636e'

info:/Stage[main]/Mysql::Config/File[/etc/my.cnf]: Scheduling refresh ofService[mysqld]

notice:/Stage[main]/Mysql::Service/Service[mysqld]: Triggered 'refresh' from 1 events

notice: Finished catalog run in 4.34seconds

结果:可以看到my.cnf被修改之前的版本MD5fef73d96a75424c782191962f5aaf8ee


5、查看设置的远程服务器端是否正常保存

[root@puppetserver bucket]# ll/var/lib/puppet/bucket/#默认保存路径

total 12

drwxrwx---. 4 puppet puppet 4096 Jul 2417:56 0

drwxrwx---. 3 puppet puppet 4096 Jul 2417:46 e

drwxrwx---. 3 puppet puppet 4096 Jul 2417:48 f


[root@puppetserver bucket]# tree f/

f/

└── e

└── f

└── 7

└── 3

└── d

└── 9

└── 6

└──fef73d96a75424c782191962f5aaf8ee

├── contents

└── paths


8 directories, 2 files

结果:保存成功,保存结果为以上目录结构



6、只恢复某一个节点到上一个版本

[root@agent1 modules]# puppet filebucketrestore /etc/my.cnffef73d96a75424c782191962f5aaf8ee#节点上操作


7、通过调试模式查看节点动态信息

[root@agent1 ssh]# puppet agent--server=puppetserver.bsgchina.com --verbose --no-daemonize

info: Retrieving plugin

info: Loading facts in/var/lib/puppet/lib/facter/backup_date.rb

info: Caching catalog for agent1.bsgchina.com

info: Applying configuration version'1374659257'

info: /File[/etc/my.cnf]: Filebucketed/etc/my.cnf to main with sum fef73d96a75424c782191962f5aaf8ee

notice: /File[/etc/my.cnf]/content: contentchanged '{md5}fef73d96a75424c782191962f5aaf8ee'to '{md5}09fb95f5505056b5a40c4905af3d636e'

info: /File[/etc/my.cnf]: Schedulingrefresh of Class[Mysql::Service]

info: Class[Mysql::Service]: Schedulingrefresh of Service[mysqld]

notice:/Stage[main]/Mysql::Service/Service[mysqld]: Triggered 'refresh' from 1 events

notice: Finished catalog run in 3.65seconds

结果:可正常恢复到上一个版本(由于我这里设置了5秒钟同步puppetserver端,可以看到以上my.cnf被修改过,而且MD5值与上一版本吻合)


8、恢复所有节点到上一个版本

[root@puppetserver etc]# puppet filebucketrestore --local/etc/puppet/modules/mysql/files/etc/my.cnffef73d96a75424c782191962f5aaf8ee


9、通过调试模式查看节点动态信息

[root@agent1 ssh]# puppet agent--server=puppetserver.bsgchina.com --verbose --no-daemonize

notice: Starting Puppet client version2.7.21

info: Retrieving plugin

info: Loading facts in /var/lib/puppet/lib/facter/backup_date.rb

info: Caching catalog foragent1.bsgchina.com

info: Applying configuration version'1374659257'

info: /File[/etc/my.cnf]: Filebucketed/etc/my.cnf to main with sum 09fb95f5505056b5a40c4905af3d636e

notice: /File[/etc/my.cnf]/content: contentchanged '{md5}09fb95f5505056b5a40c4905af3d636e' to '{md5}fef73d96a75424c782191962f5aaf8ee'

info: /File[/etc/my.cnf]: Schedulingrefresh of Class[Mysql::Service]

info: Class[Mysql::Service]: Schedulingrefresh of Service[mysqld]

结果:节点配置文件的MD5值更新为上一个版本的MD5值,恢复成功。



备份方案三、通过本地MD5文件进行备份恢复

[root@agent1 modules]# ll/var/lib/puppet/clientbucket/

total 40

drwxrwx--- 3 root root 4096 Jul 24 10:51 3

drwxrwx--- 3 root root 4096 Jul 22 14:55 7

drwxrwx--- 3 root root 4096 Jul 24 15:31 8

drwxrwx--- 4 root root 4096 Jul 24 10:52 e

drwxrwx--- 3 root root 4096 Jul 22 15:10 f

备份方案三为备份方案二的一部分,实验过程略。


本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1256690,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
机器学习/深度学习 算法 决策智能
北大领衔,多智能体强化学习研究登上Nature子刊
北京大学研究团队近日在《Nature》子刊上发布了一篇关于多智能体强化学习(MARL)的论文,提出了一种高效且可扩展的MARL框架,旨在解决大规模网络控制系统中的决策问题。该框架实现了智能体间的局部通信,减少了通信成本与计算复杂度,并在交通、电力及疫情防控等多个真实场景实验中,显著提升了决策性能。论文链接:https://www.nature.com/articles/s42256-024-00879-7。尽管该研究仍存局限,但为MARL的应用提供了新思路。
59 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
清华EconAgent获ACL 2024杰出论文:大模型智能体革新计算经济学研究范式
近年来,人工智能的迅猛发展推动了数据驱动建模在宏观经济学领域的应用。清华大学研究团队提出的EconAgent模型,基于大型语言模型,具备类似人类的决策能力,能更准确地模拟个体行为对宏观经济系统的影响。EconAgent在个体异质性、市场动态及宏观经济因素模拟方面表现出色,并具有更好的可解释性和灵活性。然而,其高计算复杂度和部分决策过程的不透明性仍需进一步解决。该成果已在ACL 2024会议上获得杰出论文奖。论文链接:https://arxiv.org/abs/2310.10436v4
78 3
|
19天前
|
数据采集 人工智能 自然语言处理
万字干货|复杂表格多Agent方案:从LLM洞察、系统性 思考到实践经验总结
笔者结合实践经验以近期在负责的复杂表格智能问答为切入点,结合大模型的哲学三问(“是谁、从哪里来、到哪里去”),穿插阐述自己对大模型的一些理解与判断,以及面向公共云LLM的建设模式思考,并分享软件设计+模型算法结合的一些研发实践经验。
|
6月前
|
人工智能 安全 人机交互
ACL 2024:PsySafe:跨学科视角下的Agent系统安全性研究
【6月更文挑战第21天】PsySafe是一个创新框架,关注多智能体系统集成大型语言模型后的安全风险。它从心理学角度评估和强化系统安全,通过模拟攻击检测漏洞,并设计防御策略。研究显示智能体的负面心理状态影响其行为安全,揭示了心理状态与行为模式的关联。该框架为MAS安全性研究提供新途径,但也面临智能体心理评估准确性和行为评估方法的挑战。[\[arxiv.org/pdf/2401.11880\]](https://arxiv.org/pdf/2401.11880)
83 6
|
2月前
|
机器学习/深度学习 人工智能 安全
北大领衔,多智能体强化学习研究登上Nature子刊
【10月更文挑战第1天】近日,北京大学领导的研究团队在《Nature》子刊上发表了一篇关于多智能体强化学习的论文,提出了一种高效且可扩展的框架,解决了大规模网络控制系统中的决策问题。该框架通过局部通信避免了集中式和独立学习的缺点,在交通、电力等领域的实验中展现了卓越性能。然而,其在更复杂系统中的效果及计算复杂度仍需进一步验证。论文链接:https://www.nature.com/articles/s42256-024-00879-7。
44 3
|
5月前
|
Java 关系型数据库 MySQL
GraalVM 静态编译下 OTel Java Agent 的自动增强方案与实现
在 2024 OpenTelemetry Community Day 会议中,阿里云可观测工程师张乎兴(望陶)和饶子昊(铖朴)为大家带来了《GraalVM 静态编译下 OTel Java Agent 的自动增强方案与实现》的演讲分享,介绍阿里云在相关领域的探索方案,本文是相关分享对应的中文整理。
265 17
|
机器学习/深度学习 人工智能 算法
大型语言模型教会智能体进化,OpenAI这项研究揭示了二者的互补关系
大型语言模型教会智能体进化,OpenAI这项研究揭示了二者的互补关系
165 0
|
监控 NoSQL Go
测试方案-agent
agent方案测试计划和架构
|
Java 开发工具
puppet master/agent
puppet master/agent 配置 安装 master: yum install puppet-server agent: yum install puppet 自动签名 puppet的master端 touch autosign.
774 0
|
机器学习/深度学习 人工智能 自然语言处理

推荐镜像

更多