对于运维工程师来讲,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,轻松搞定各种需求。