Apt'yi birden çok makinede nasıl verimli bir şekilde yönetebilirim?


11

Kukla kullanarak yaklaşık 30 Ubuntu sunucusunu yönetiyorum. Paketlerini güncel tutmaya yönelik yaklaşımlar olarak cron-apt ve apticron'a birçok referans gördüm, ancak süreci merkezi olarak yönetmenin bir yolunu bulamadım. Cront-apt / apticron ile yine de her bir ana bilgisayarda oturum açıp aptitude updategüncellemeyi gerçekleştirmek için çalışmam gerekir. Bir çekirdek paket her güncellendiğinde, 30 makinenin tümünden gelen inceleme bildirimlerinden bahsetmiyorum bile.

Daha iyi bir yol olmalı. Herhangi bir öneri?

Yanıtlar:


3

Manzara ilginizi çekebilir. Bu, büyük Ubuntu dağıtımlarını yönetmek için "resmi" yönetim aracıdır ve Canonical, kullanımınız için dolarlarınızı almaya çok heveslidir.

YENİDEN DÜZENLEME:

İlk olarak, bir feragatname; Debian veya Ubuntu için yansıtma kullanmadım, bu yüzden yazılıma aşina değilim.

İkincisi, apt-mirror'un özür dilerim "çok ağır" bir çözüm olacağı anlaşılıyor. Orijinal fikir, güncellemeyi dağıtmak için ayrı bir test makineniz (veya test ortamı, muhtemelen sanal bir makine?) Olmasıydı. Güncellemenin performansından memnun kaldığınızda, paketi "dağıtma" aynaya çeker / koyarsınız (resmi kaynaklardan yerel ayna ve sadece dağıtmak istediğiniz güncellemeler için ikincil bir ayna olurdu). Uzak makineler daha sonra önceden ayarlanan bir zamanda bir güncelleme çalıştıracak ve aşağıdakilerden oluşan bir cron işi olan “konuşlandırma” aynanızdan her makineye çekecektir:

apt-get update && apt-get upgrade --quiet --assume-yes

Ne yazık ki, ayrıntıları okumaya başladığımda, apt-mirrorsadece peşinde olduğunuz paketleri değil, her türlü şeyi çekecek gibi görünüyor . Bu yüzden, kavramın bir değeri olsa da, bu fikri terk edeceğim.


Manzara ilginç görünüyor. Buna daha yakından bakmam gerekecek. (Şu anda yaptığım) bir yerel uygun ayna çalıştırmanın bekleyen güncellemeleri onaylamama / incelememe nasıl yardımcı olacağı konusunda net değilim. Bunu açıklığa kavuşturabilir misiniz?
Insyte

14

Bir iş arkadaşı kısa bir süre önce bir "terminal tabanlı uzaktan paket güncelleme yöneticisi" olan apt-dater'ı keşfetti ve araştırdı.

Tüm ana makinelerinizdeki veya ana bilgisayar gruplarınızdaki vb. Güncelleştirmeleri yönetmek için lanetler tabanlı bir arabirim kullanırsınız. Karşılaşılabilecek hatalar vb. Dahil olmak üzere tam uygun oturumun günlüğe kaydedilmesini destekler.

Yönetilen makinelerde ssh ve sudo kullanır.

bkz. http://www.ibh.de/apt-dater/

Kendim kullanmadım, bu yüzden onaylayamıyorum, ama aradığınıza yakın geliyor.


Bu çok umut verici görünüyor. Insyte, bu cevabı kendi başıma önereceğim. Tarif ettiğim tüm adımları yapabilmenize rağmen, muhtemelen bunun çok hızlı bir kurulumunu yapabileceğiniz ve hayata devam edebileceğiniz zamana gerçekten yatırım yapmak ister misiniz? @ Jeff, güzel bir öneri için +1.
Avery Payne

4

Zaten Kukla kullandığınızdan, bunu yapmanın en kolay yolu (ve değişiklik kontrolü / izleme amaçları için en iyisi), kukla manifestine yüklenmesini istediğiniz paketlerin sürümünü belirlemektir. Güvenlik duyuruları listesine göz atın ve kullandığınız bir şey geldiğinde, "bu paketin bu yeni sürümünü yükle" diyerek Kukla'yı güncelleyin. Manifestlerinizde revizyon kontrolü kullandığınızı varsayarsak, "politika" nın ne zaman değiştirildiğini bilirsiniz ve Kukla raporları size tam olarak ne zaman değişiklik yapıldığını gösterir (böylece bunu daha sonraki günlük olaylarıyla kolayca ilişkilendirebilirsiniz).


Yaptığımız şey bu. Kukla paket türünü kullanmıyoruz, çünkü her sunucunun her paketi yüklemesine neden olacaktır. Bunun yerine, sunucuda paket adı ve sürümü olan bir dosya yazıyoruz ve ardından bunları çalıştırmak için bir komut dosyası kullanıyoruz ve yüklü olup olmadıklarını kontrol edip yüklemeye çalışıyoruz. İkinci bölüm, apticron e-postaları ile posta klasörümü okuyan ve bildirim dosyasını güncellemesi ve yeniden yazması gereken tüm paketleri yakalayan bir komut dosyasıdır. Bu yöntemin henüz ne kadar iyi çalıştığından tam olarak emin değiliz.
David Pashley

2
Kukla paket türü neden tüm paketleri her makineye kurar? Her paketin standartlarını ilgili sınıfa veya tanımlanmış türe koyarsınız, böylece yalnızca uygun makinelere yüklenir. Sürüm listesini tek bir dosyada merkezileştirmek istiyorsanız, büyük bir sanal kaynak listesine sahip olun ve gerektiğinde bunları gerçekleştirin.
womble

2

Clusterssh (apt-get install clusterssh) 'a bir göz atın:

$ cssh sunucu1 sunucu2 sunucu3 ...


1
Bu aslında 10.9.3'te hala çalışıyor ... kullanmak biraz komik
Jonathan S. Fisher

1

Daha önce gerçekten düşünmemiş olsaydım, ilk fikrim, özellikle zaten bir test ortamınız varsa, avery'nin önerdiğine benzer bir şey olurdu.

Temel olarak, üretim makinelerinizi kendi yerel deponuzdan otomatik olarak yükseltilecek şekilde ayarlarsınız ve bu repoyu yalnızca test ortamınızı çalıştırdığınız her şeyin en yeni sürümüne yükselttikten sonra güncellersiniz.

Apticron iyi ölçeklenmez, oldukça küçük ortamlarda çalıştırılmak üzere tasarlanmıştır, ancak bazı iyi noktaları vardır:

  • Size sadece bir liste göndermez, aynı zamanda paketlerin yükseltilmesi için değişiklik günlükleri de gönderir.
  • Değişiklik günlüğünü almak için paketleri indirir, bu yüzden yükseltme yaptığınızda indirmelerini beklemek zorunda kalmazsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.