使用PPA发送简单更新

我希望设置一个PPA,以便对现场数百台ubuntu 12.04机器进行简单的更改。 简单的更改意味着bash脚本更改和配置文件更新以及可能的其他软件更新,包括可以通过apt-get install安装的新软件安装。 我想到的几个问题是,

  1. 可以使用PPA发送脚本更新吗?
  2. 我是否可以将客户端计算机配置为仅从此PPA获取更新并自动安装它们,就像无人值守升级一样? (当然我知道这个选项是可行的,但预计会有一套很好的工具来实现这一目标)。

我知道这是一个广泛的问题,但很少有人赞赏我的答案。

我希望做同样的事情,但我选择使用使用reprepro不是PPA创建的私有存储库。 我的所有客户都在同一个局域网上,因此对我来说更简单。 我认为无论您使用PPA还是私有存储库,这都是可行的。

  • 修改现有配置文件最好通过使用dpkg转换IMO来处理。 config-package-dev是一个祝福。 Debian Wiki是获取此信息的良好起点。
  • 通过打包来添加脚本文件或您自己的软件并不困难。 有很多包装指南。 再一次, Debian wiki是一个很好的起点。 制作二进制包比简介更简单,脚本和配置文件就是这种情况。
  • 从其他存储库添加新软件可以通过使它们成为程序包的依赖项来完成。 指定确切版本或使用apt固定 。
  • 已经处理了自定义存储库的无人值守升级: 如何为任何存储库启用静默自动更新? 我不知道服务器可以将更新推送到客户端。 你可能想要考虑puppet (通过kick )或其同类。 或者您可以在服务器上编写一个脚本,该脚本使用SSH在客户端上运行更新。 或者有一个脚本在网络启动时检查更新。
  • 最重要的是,确保您的包维护脚本( preinst, postinst, prerm, postrm )是幂等的,并且包删除撤消所有更改。 这些脚本可以做很多事情,但不要做任何影响aptdkpg事情。 最大限度地减少这些脚本中完成的工作。

在我的例子中,我使用一个包来配置LDAP和NTP,添加一个自定义的全局vimrc启用常用选项,进行各种配置更改(比如为组启用sudo ,禁止关闭),添加一个非特权的本地用户/组等。 package添加我们自己生成的CA证书和存储库签名密钥,并在postinst脚本中标记它们,并在sources.list.d为我们的存储库添加一个条目。

我尚未将所有系统转换为此过程,因此我无法评论其有效性。