Ubuntu
Puppet 用於配置管理,軟體更新等呢?
我了解 puppet 如何幫助設置伺服器等,但您會將 puppet 用於以下用途:
apt-get update && apt-get upgrade
我覺得答案是否定的,如果是這樣,你會建議什麼樣的自動化流程來完成這些任務?
所以說我正在設置一個新的實例(代理)來連接到 puppet,我如何將多個我想在伺服器上執行的命令打包在一起,以便在連接到 puppet master 之前做好準備?我希望我可以在一個文件中寫出所有命令,然後以某種方式執行這個文件。
對於這樣的事情:
- apt-get 更新 && apt-get 升級
- 安裝 ruby,其他庫
- 基本的伺服器鎖定等。
好吧,特別是對於 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
, orensure => version
,以及控制各種源列表和包的引腳號。而且,我想,可以使用這樣的配置:
cron { 'upgrade': command => 'apt-get update && apt-get upgrade' }
現在,您提到在呼叫 puppet 代理*之前做一些事情。*你的意思是在第一次執行 puppet 代理之前?如果是這樣,那麼像Foreman這樣的解決方案可能會為您解決問題。
在這裡,我通過 Ganeti 管理我的虛擬主機,我們通過 Ganeti 的 instance-debootstrap 安裝了 puppet。我們還有一個用於在舊伺服器上安裝 puppet 的小腳本。
最後,除非已經安裝了自動化解決方案,否則不可能使用自動化解決方案在現有伺服器上安裝 Puppet。我們自己的偏好是先安裝 puppet,然後通過它分發其他任何東西。