使用 PPA 发送简单更新

Bun*_*nti 5 apt ppa repository add-apt-repository 12.04

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

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

我知道这是一个广泛的问题,但是非常感谢您提供很少有指导意义的答案。

mur*_*uru 7

我希望做同样的事情,但我选择使用reprepro通过 PPA制作的私有存储库。我所有的客户端都在同一个局域网上,所以对我来说更简单。我认为无论您使用 PPA 还是私有存储库,这都是非常可行的。

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

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

我还没有将所有系统转换为这个过程,所以我还不能评论它的有效性。