标签: etckeeper

是否有与 Windows 等效的 etckeeper?又名 Windows 配置版本控制

我想创建一个中央配置文件存储库,以便我可以在修订控制(Mercurial)下对任何配置进行更改。这将包括一些 GNU/Linux 机器(将使用 etckeeper)、网络设备的配置文件、打印机的配置文件以及最后但并非最不重要的 Windows 配置。

我知道您可以将某些配置(如 ISA 和 DHCP)作为文本/xml 文件导入,甚至可以将共享文件夹作为注册表项导入,但是对于 GPO 和 AD、IIS、MSSql 等内容,有没有办法将配置作为平面文件获取?基本上,你能在 Windows 下拥有一些类似于 etckeeper 的东西吗?像一些基于powershell的命令之类的东西?

此外,ACL 和其他文件权限是否可以在版本控制 (hg) 下保留?

BTW,我已经读过了

无济于事。

windows configuration version-control etckeeper

13
推荐指数
2
解决办法
1195
查看次数

如何在 Ubuntu 中使用 Mercurial 设置 etckeeper?

我有兴趣在我的 Ubuntu 系统中安装带有 Mercurial 的 etckeeper。我的原因是我不知道如何使用Git,暂时不想学习。如果我检查包描述,听起来很有希望:

kent@rat:~$ apt-cache search etckeeper
etckeeper - store /etc in git, mercurial, or bzr
Run Code Online (Sandbox Code Playgroud)

我想知道如何从这里继续?我试过谷歌搜索,但我没有找到任何适用于 Ubuntu + etckeeper + Mercurial 组合的东西。

(如果您知道针对这种情况的好教程,那么链接是一个很好的答案。无需重复。)

ubuntu mercurial etckeeper

11
推荐指数
2
解决办法
2421
查看次数

etckeeper 可以用于跟踪 /etc 之外的配置文件吗?

具体来说,我想跟踪我的grub.conf( /boot/grub/grub.conf) 和一些 oracle 文件(即/db/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora)。

我尝试使用链接;但是 etckeeper/git 只跟踪链接指向的位置,而不是实际内容。而且我无法创建硬链接,因为文件在另一个卷上。

我知道我可以设置另一个 GIT 存储库,但我宁愿将其全部放在 etckeeper 中。

更新

根据 nealmcb 的回答,我想出了以下脚本:

#!/bin/sh
set -e

# Based on nealmcb's idea/script from http://serverfault.com/questions/211425/

# If you want other configuration data or files on the system also
# opportunistically tracked via etckeeper, use this script to copy them in.

# If there is a hook of some sort available related to the files
# you're mirroring, you can call etckeeper directly and …
Run Code Online (Sandbox Code Playgroud)

git etckeeper

11
推荐指数
1
解决办法
3149
查看次数

是否可以将 etckeeper 与单个共享 git 存储库一起使用?

我注意到有几个人推荐使用etckeeper将版本控制应用于我的 /etc 目录。

在我看来,默认安装将存储库与您尝试管理的 /etc 放在同一台机器上。这适用于版本控制,但不会提供对文件进行服务器外备份的额外好处 - 或者允许我将 /etc 的部分从一台源机器复制到另一台。

是否可以在中央管理机器上共享单个 git 存储库,以便每个服务器上的 etckeeper 将其数据存储在同一位置?

(我现在用 svn 和一些自定义脚本做类似的事情来提交和恢复文件,但我必须记住在我进行更改时提交它们。)

version-control git etc etckeeper

10
推荐指数
1
解决办法
4647
查看次数

etckeeper、Git checkout 和 /etc 中损坏的文件权限

我想弄清楚为什么在etckeeper提交后,我在重启时遇到了问题(由于这个伟大的事情已经解决了)。

我和 etckeeper 一起玩,git checkout some_commit_sha快速浏览了一下,然后git checkout master.

/etc在这些操作之后,我的文件权限似乎被破坏了。包括所有文件ssh_host_rsa_key passwd-, shadow-rw-r--r--。我不知道 Git 不保存文件权限。

现在我修复了所有这些(我希望我没有错过任何东西)。

获得/etc.

git etckeeper file-permissions

8
推荐指数
1
解决办法
1506
查看次数

自定义目录上的 etckeeper

我一直在阅读有关etckeeper,但我不知道您是否可以在 /etc 以外的任何其他目录上使用它。

在任何配置文件(我可以找到)中似乎都没有对 /etc 的引用,所以我保证这是硬编码的,您不能选择要监视的目录。这是真的?我也想让它管理/opt。这能做到吗?

etckeeper

8
推荐指数
2
解决办法
4567
查看次数

etckeeper 推送到 github

我设置了 etckeeper 并添加了文件/etc/etckeeper/commit.d/60github-push,以便将提交推送到 github。

[orschiro@thinkpad etc]$ sudo cat /etc/etckeeper/commit.d/60github-push 
#!/bin/sh 
set -e
if [ "$VCS" = git ] && [ -d .git ]; then   
  cd /etc/   
  git push origin master 
fi
Run Code Online (Sandbox Code Playgroud)

但是,推送到 github 失败,因为 etckeeper 尝试以 root 身份推送。是否应该使用 sudo 不保留我的 git 用户帐户设置,包括我的 ~/.ssh 密钥?

[orschiro@thinkpad etc]$ sudo etckeeper commit "test"
[master de5971c] test
 Author: orschiro <orschiro@thinkpad.(none)>
 3 files changed, 2 insertions(+), 1 deletion(-)
 rename etckeeper/{ => commit.d}/60github-push (100%)
 create mode 100644 test
no such identity: /root/.ssh/id_rsa: No such …
Run Code Online (Sandbox Code Playgroud)

git etckeeper

8
推荐指数
1
解决办法
3242
查看次数

如何通过 git 在中央服务器上存储 etckeeper 存储库

我想为我所有服务器的 etckeeper .git repos 建立一个中央 git 存储库。这里的建议是在 /etc/etckeeper/commit.d 中使用一个文件,它基本上看起来像这样,假设已经在 somedir 上的某个主机上设置了一个 git repo:

#!/bin/sh
cd /etc
git push faruser@farhost:somedir
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,将所有服务器放在中央服务器上的同一个 repo 中会非常好。我试过

git push faruser@farhost:somedir/server1
Run Code Online (Sandbox Code Playgroud)

但那失败了。

如您所见,我以前从未使用过 git ......非常感谢有关如何实现这一点的任何想法:)

干杯,

安德烈亚斯

git etckeeper

7
推荐指数
1
解决办法
5656
查看次数

如何关闭 etckeeper。它阻止我升级 Ubuntu

我正在尝试从 Ubuntu Karmic 升级到 Lucid,但它失败了,因为 etckeeper 检测到发生的更改sudo do-release-upgrade并阻止了 apt 的运行。如何暂时关闭它?

编辑:

** etckeeper detected uncommitted changes in /etc prior to apt run
** Aborting apt run. Manually commit and restart.

Exception during pm.DoInstall():  E:Problem executing scripts DPkg::Pre-Invoke 'if [ -x /usr/sbin/etckeeper ]; then etckeeper pre-install; fi', E:Sub-process returned an error code

Could not install the upgrades
Run Code Online (Sandbox Code Playgroud)

正如我所说,它声称有变化,即使我刚刚承诺。

ubuntu etckeeper

6
推荐指数
2
解决办法
3309
查看次数

使用 etckeeper - 保护和其他问题

按照将 /etc 置于源代码管理之下的建议,我已经安装了 ETCKEEPER。

看起来不错,但我有一些问题。

  • 是否可以将您执行的命令放入更改消息中。因此,如果我运行apt-get install widget,我希望提交消息的第一行类似于install widget,而不是在 apt run 之后在 /etc 中提交更改的帮助较小

  • 我希望能够从普通用户对 bzr 存储库进行查询。但是我被.bzr目录的保护所阻止。将更改为a+r是否有任何问题

    drwx------ 6 根根 4096 八月 30 日 13:00 .bzr

  • 删除文件(例如 /etc/shadow/ 从 etckeeper 控制中)是否有任何问题?

ubuntu etckeeper bazaar

5
推荐指数
1
解决办法
1057
查看次数

如何通过 sudo 对不同用户使用 etckeeper 并在提交消息中使用正确的用户?

我正在一个有几个管理员用户的服务器上工作。它们中的每一个都可以sudo用来进行配置更改。我们正在/etc使用etckeeper保持我们的目录版本控制。

但是,当我或其他管理员调用 时sudo etckeeper commit COMMITMESSAGE,git 使用root用户的名称和电子邮件作为提交消息。git config user.name在这种情况下,在 etc 存储库上的设置不起作用,因为每次etckeeper commit调用时,都将使用相同的数据。

我想要的是实际用户名和电子邮件出现在etckeeper git 存储库中,以便从提交日志中我可以追踪谁做了哪些更改。

任何帮助是极大的赞赏!

ubuntu debian sudo git etckeeper

5
推荐指数
1
解决办法
679
查看次数

EtcKeeper:从 bzr 切换到 git

一段时间以来,我一直在我的 Digital Ocean Droplet 上使用 etckeeper,并且从那时起对 /etc 进行了大量更改。

我现在意识到我一直在使用 bzr 并且想切换到 git;但是担心我会丢失对 /etc 目录所做的所有增量更改。

有什么方法不仅可以从 bzr 切换到 git,还可以将 bzr 的增量更改也转换为 git 吗?

谢谢!

git etc convert etckeeper

5
推荐指数
1
解决办法
367
查看次数

所有软件包的可排序列表 (dpkg)

我想转储使用dpkg.

到现在为止我都使用dpkg -l.

但它有一个缺点:对结果进行排序没有意义。

头:

root@aptguettler:~# LANG=C dpkg-query -l| sort | head
+++-===========================================================-=================================================-============-================================================================================
Desired=Unknown/Install/Remove/Purge/Hold
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
ii  a11y-profile-manager-indicator                              0.1.10-0ubuntu3                                   amd64        Accessibility Profile Manager - Unity desktop indicator
Run Code Online (Sandbox Code Playgroud)

尾巴:

root@aptguettler:~# LANG=C dpkg-query -l| sort | tail
rc  texlive-publishers-doc                                      2015.20160320-1                                   all          TeX Live: Documentation files for texlive-publishers
rc  texlive-science                                             2015.20160320-1                                   all          TeX Live: Natural and computer sciences
rc  texlive-science-doc                                         2015.20160320-1                                   all          TeX Live: Documentation files for texlive-science
rc  tpconfig                                                    3.1.3-15                                          amd64        touchpad device configuration utility
rc …
Run Code Online (Sandbox Code Playgroud)

dpkg etckeeper

1
推荐指数
1
解决办法
588
查看次数