用etckeeper来解救运维工程师

时间:2020-12-28 21:45:40

对于运维工程师来讲,etc环境是一个痛点,各种配置,各种修改,某些软件的配置关联因素过多的话,那就更加痛苦了,改完发现不对再想改回去都千难万难, 现在有一个好的解决方案,那就是用etckeeper,绝对是解救运维工程师的利器之一!

etckeeper本质上就是 git 管理 etc 版本环境的思维, 由于etc中有的文件信息较为敏感,因此,etckeeper还附带了一些工具来保证安装性。

ubuntu下的安装和使用:

1. 安装: sudo apt-get install etckeeper

 

2. 初始化etc git仓库: sudo etckeeper init

 2.1 如果出现如下locale问题: 

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:

可以通过:

安装 localepurge 管理语言文件: 

sudo apt-get install localepurge

也可以通过: sudo dpkg-reconfigure localepurge 来重新设置。

又或者: sudo locale-gen zh_CN.UTF-8 en_US.UTF-8   来生成自己想要的语言

然后,locale查看一下。

另外,默认情况下终端 ssh 的时候会将本地的 locale 传到服务器中,可以通过命令指定 ssh 服务器的语言:

LC_ALL=en_US.UTF-8 ssh <host>

2.2 如果出现:  

/etc/etckeeper/init.d/40vcs-init: bzr: not found

表明etckeeper安装后默认设置是使用bzr作为版本控制器,可以打开/etc/etckeeper/etckeeper.conf,修改默认的VCS为git,当然此时你应该装上了git,

然后再执行:

root@localhost:/etc# rm -rf .bzr
root@localhost:
/etc# rm .bzrignore

避免现有的仓库对etckeeper的执行造成影响。 

然后再次etckeeper init 就可以成功了。

3.  修改 .gitignore

根据需要来修改.gitignore

4. 每次修改后使用git提交,git status; git add .; git commit -m "xxxxx"

5. 配置远程仓库,将仓库转移。

 git remote add origin xxxxxxx

 

最重要的是,你可以自建多个分支,用于配置不同的软件,这样就可以以分支为基础库,主库上如果想配置啥,只管cherry-pick,轻松搞定各种需求。