Ubuntu

Puppet 用於配置管理,軟體更新等呢?

  • May 18, 2011

我了解 puppet 如何幫助設置伺服器等,但您會將 puppet 用於以下用途:

apt-get update && apt-get upgrade

我覺得答案是否定的,如果是這樣,你會建議什麼樣的自動化流程來完成這些任務?

所以說我正在設置一個新的實例(代理)來連接到 puppet,我如何將多個我想在伺服器上執行的命令打包在一起,以便在連接到 puppet master 之前做好準備?我希望我可以在一個文件中寫出所有命令,然後以某種方式執行這個文件。

對於這樣的事情:

  1. apt-get 更新 && apt-get 升級
  2. 安裝 ruby​​,其他庫
  3. 基本的伺服器鎖定等。

好吧,特別是對於 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

至於升級系統,請使用 package unattended-upgrades

說了這麼多,我更喜歡使用 Puppet 來控制哪些包必須保留在ensure => latest, or ensure => version,以及控制各種源列表和包的引腳號。

而且,我想,可以使用這樣的配置:

cron { 'upgrade': command => 'apt-get update && apt-get upgrade' }

現在,您提到在呼叫 puppet 代理*之前做一些事情。*你的意思是在第一次執行 puppet 代理之前?如果是這樣,那麼像Foreman這樣的解決方案可能會為您解決問題。

在這裡,我通過 Ganeti 管理我的虛擬主機,我們通過 Ganeti 的 instance-debootstrap 安裝了 puppet。我們還有一個用於在舊伺服器上安裝 puppet 的小腳本。

最後,除非已經安裝了自動化解決方案,否則不可能使用自動化解決方案在現有伺服器上安裝 Puppet。我們自己的偏好是先安裝 puppet,然後通過它分發其他任何東西。

引用自:https://serverfault.com/questions/271160