Bla*_*man 6 ubuntu puppet amazon-ec2
我了解 puppet 如何帮助设置服务器等,但是您会使用 puppet 来执行以下操作:
apt-get update && apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
我觉得答案是否定的,如果是这样的话,你会建议什么样的自动化流程来完成这些任务?
所以说我正在设置一个新实例(代理)来连接到 puppet,我怎么能把我想在服务器上运行的多个命令包装在一起,以便在连接到 puppet master 之前准备它?我希望我可以在一个文件中写出所有命令,然后以某种方式运行这个文件。
对于这样的事情:
好吧,特别是对于 APT,您可以配置许多日常作业,例如更新。只需查看/etc/cron.daily/apt您可以配置的变量列表,并查看手册页apt.conf了解如何配置。您最感兴趣的是这些:
# APT::Periodic::Update-Package-Lists "0";
# - Do "apt-get update" automatically every n-days (0=disable)
#
# APT::Periodic::Download-Upgradeable-Packages "0";
# - Do "apt-get upgrade --download-only" every n-days (0=disable)
#
# APT::Periodic::Download-Upgradeable-Packages-Debdelta "1";
# - Use debdelta-upgrade to download updates if available (0=disable)
#
# APT::Periodic::Unattended-Upgrade "0";
# - Run the "unattended-upgrade" security upgrade script
# every n-days (0=disabled)
# Requires the package "unattended-upgrades" and will write
# a log in /var/log/unattended-upgrades
Run Code Online (Sandbox Code Playgroud)
至于升级系统,请使用软件包unattended-upgrades。
说了这么多,我更喜欢使用 Puppet 来控制哪些包必须保留在ensure => latest, 或ensure => version,以及控制各种源列表和包的引脚编号。
而且,我想,人们可以使用这样的配置:
cron { 'upgrade': command => 'apt-get update && apt-get upgrade' }
Run Code Online (Sandbox Code Playgroud)
现在,你提到在调用傀儡代理之前做一些事情。你的意思是在第一次运行 puppet agent 之前?如果是这样,那么Foreman 之类的解决方案可能会为您解决问题。
在这里,我通过 Ganeti 管理我的虚拟主机,我们通过 Ganeti 的 instance-debootstrap 安装了 puppet。我们还有一个小脚本,用于在旧服务器上安装 puppet。
最后,除非已经安装了自动化解决方案,否则不可能使用自动化解决方案在现有服务器上安装 Puppet。我们自己的偏好是先安装 puppet,然后通过它分发其他任何东西。
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |