Chef server 的备份与恢复

          Chef server因为自身结构设计,我们一般在备份时都是采用冷备模式。然后定期要对chef server的数据做备份。这样在chef server down掉的情况下能快速将数据恢复到冷备机器上。因为chef server和冷备机器配置了VIP,所以恢复以后对用户来说都是透明的。Chef server需要备份的数据有:bookshelf中的cookbook web-ui使用的postgresql DB


     1. 定期备份数据库

备份数据库时,因为怕冷备机器出问题,所以直接备份了所有DB, 可以在任何机器上从零恢复。

一般情况下只需要备份opscode_chef库就可以了,具体备份部署如下:

     A.切换到opscode_chef用户:    su - opscode-pgsqlchefpostgresql建的用户,可在chef-server-running.json文件 中查询到DB的信息,另切换账户需要加-,这样会带有环境变量)

                 B.新建DB文件存储目录:/chef-backup

     C.执行备份DB命令:pg_dumpall > /chef-backup/chef-db.dmp    #这条命令会备份全部数据库

         也可使用pg_dump备份单独的数据库。

2. 定期备份bookshelf

所有的cookbook都存放在bookshelf中,如果不备份和恢复bookshelf中的cookbook, chef webui访问是没有问题,并且能够看到cookbook,但是点击查看详细就显示错误。备份目录为:/var/opt/chef-server/bookshelf/data

 

 

备份完成后,在恢复时我们只需要完成以下步骤:

     1. 恢复数据库

   切换到opscode_chef用户,然后执行恢复命令:psql -f /chef-backup/chef-db.dmp  ##恢复所有DB

2.  恢复bookshelf

   将备份的bookshelf data文件拷贝到/var/opt/chef-server/bookshelf目录

            3.   重启所有服务

                  chef server提供有工具chef-server-ctl可以对所有服务进行操作。

                  我们可以使用这个工具来启动、停止、重启、重新配置chef server上的服务。

                  我们这里使用了chef-server-ctl restart命令,想重启所有服务。但是命令执行完了,发现没有生效。

                  于是直接killnginx的线程,然后重新执行了chef-server-ctl  reconfigure命令就OK了(这句命令会重启已经停掉的服务)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值