sourcejedi.etckeeper
sourcejedi.etckeeper
安装 etckeeper。使用版本控制系统跟踪 /etc 的内容。
当前的 /etc
内容被记录在一个 Git 仓库中。 Etckeeper 会在每天的间隔内创建新的提交,当文件被包管理器创建或更改时(如果支持)。
状态
这个角色是为了在现有系统上工作而编写的。它已经测试可以在以下情况下正常工作:
- etckeeper 已经安装
- etckeeper 仓库是否存在
- etckeeper 仓库存在但没有任何提交
支持 Ansible 的 --check
模式。
如果在 etckeeper 没有完全安装的情况下运行检查模式,执行将失败。这种行为是预期的,因为这是一个复杂的角色,其中某些任务依赖于先前的任务。我们确保这种行为,确保检查模式不会跳过某些类型的任务,并且不会误导地报告“changed=0”。
要求
已在 Fedora、CentOS、Debian 和 Ubuntu 16.04+ 上成功使用。我想大多数 Linux 发行版都会提供适用于此角色的 etckeeper 包。
在 CentOS 上,将添加 EPEL 仓库以提供 etckeeper 包。
某些旧版本的 Ubuntu 无法使用,因为它们的打包将默认后端更改为 bzr
,而不是 git
。 Etckeeper 不推荐这样做——后端应为 git
,除非用户有强烈的其他偏好。此角色专门为 git
实现(见下文)。我可能接受一些关于替代方案的最小拉取请求。
依赖关系
user.email
会自动为 git 仓库设置。这是 git 所要求的,而较旧版本的 etckeeper 在某些情况下未能提供值 在某些情况下。我没有包含一个角色变量来改变使用的确切值。然而,如果 user.email
已经设置(例如在 /root/.gitconfig
中),则此步骤会被跳过。因此如果你在意所使用的值,请确保提前设置你的 /root/.gitconfig
。 (或者给我发一个问题/拉取请求,解释为什么你希望有一个角色变量)。
许可证
此角色使用 GPLv3 许可,如果这造成任何问题,请打开一个问题。
ansible-galaxy install sourcejedi.etckeeper