Bagaimana saya bisa mengelola apt secara efisien pada banyak mesin?

11

Saya mengelola sekitar 30 server Ubuntu menggunakan boneka. Saya telah melihat banyak referensi untuk cron-apt dan apticron sebagai pendekatan untuk menjaga paket mereka tetap mutakhir tetapi saya belum dapat menemukan cara untuk mengelola proses secara terpusat. Dengan cront-apt / apticron saya masih harus masuk ke setiap host dan menjalankan aptitude updateuntuk melakukan pembaruan. Belum lagi ulasan pemberitahuan dari semua 30 mesin setiap kali paket inti diperbarui.

Harus ada cara yang lebih baik. Ada saran?

Insyte
sumber

Jawaban:

3

Lansekap mungkin menarik bagi Anda. Ini adalah alat manajemen "resmi" untuk mengelola penyebaran Ubuntu yang besar, dan Canonical mungkin sangat ingin mendapatkan uang Anda untuk penggunaannya.

EDIT ULANG:

Pertama, penafian; Saya belum pernah menggunakan mirroring untuk Debian atau Ubuntu, jadi saya tidak terbiasa dengan perangkat lunaknya.

Kedua, tampaknya apt-mirror akan menjadi "terlalu berat" solusi, permintaan maaf saya. Ide awalnya adalah bahwa Anda akan memiliki mesin uji terpisah (atau lingkungan pengujian, mungkin mesin virtual?) Untuk menyebarkan pembaruan. Setelah Anda puas dengan kinerja pembaruan, Anda akan menarik / memasukkan paket ke mirror "deploy" Anda (akan ada mirror lokal dari sumber resmi, dan mirror sekunder untuk hanya pembaruan yang ingin Anda gunakan). Mesin jarak jauh kemudian akan menjalankan pembaruan pada waktu yang ditentukan sebelumnya dan menariknya dari mirror "deploy" Anda ke setiap mesin, tugas cron yang terdiri dari:

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

Sayangnya, ketika saya mulai membaca detailnya, sepertinya apt-mirrorakan menarik semua jenis barang dan bukan hanya paket yang Anda cari. Jadi, saya akan meninggalkan ide ini, walaupun konsepnya memiliki beberapa kelebihan.

Avery Payne
sumber
Lansekap terlihat menarik. Saya harus melihat lebih dekat pada itu. Saya tidak jelas tentang cara menjalankan mirror apt lokal (yang saat ini saya lakukan) akan membantu saya menyetujui / meninjau pembaruan yang tertunda. Bisakah Anda mengklarifikasi itu?
Insyte
14

Seorang rekan kerja menemukan dan telah melihat secara singkat apt-dater, yang merupakan "manajer pembaruan paket jarak jauh berbasis terminal".

Anda menggunakan antarmuka berbasis kutukan untuk mengelola pembaruan pada semua host Anda, atau grup host, dll. Mendukung pencatatan sesi lengkap apt, termasuk kesalahan yang mungkin ditemui, dll.

Bergantung pada ssh dan sudo pada mesin yang dikelola.

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

Belum pernah menggunakannya sendiri, jadi saya tidak bisa mendukungnya, tapi kedengarannya dekat dengan apa yang Anda cari.

jeff
sumber
Ini terlihat sangat menjanjikan. Insyte, saya akan merekomendasikan jawaban ini sendiri. Meskipun Anda dapat melakukan semua langkah yang telah saya jelaskan, apakah Anda ingin benar-benar menginvestasikan waktu dalam hal itu, ketika Anda mungkin bisa melakukan pengaturan yang sangat cepat ini dan melanjutkan hidup? @ Jeff, +1 untuk saran yang bagus.
Avery Payne
4

Karena Anda sudah menggunakan Wayang, cara termudah untuk melakukan ini (dan yang terbaik untuk tujuan perubahan kontrol / pelacakan) adalah menentukan versi paket yang diinginkan yang ingin Anda instal dalam wayang boneka. Anda mengawasi daftar pengumuman keamanan, dan ketika sesuatu yang Anda gunakan datang Anda baru saja memperbarui Wayang untuk mengatakan "instal versi baru dari paket ini". Dengan asumsi Anda menggunakan kontrol revisi pada manifes, Anda kemudian tahu kapan "kebijakan" diubah, dan laporan dari Puppet menunjukkan kepada Anda kapan perubahan itu sebenarnya dilakukan (sehingga Anda dapat menghubungkannya dengan mudah terhadap peristiwa log selanjutnya).

womble
sumber
Ini yang kami lakukan. Kami tidak menggunakan jenis paket boneka karena itu akan menyebabkan setiap server menginstal setiap paket. Sebagai gantinya, kami menulis file di server dengan nama paket dan versi dan kemudian menggunakan skrip untuk menjalankannya dan memeriksa untuk melihat apakah mereka diinstal dan kemudian mencoba untuk menginstalnya. Bagian kedua adalah skrip yang membaca folder email saya dengan email apticron dan mengambil semua paket yang perlu memperbarui dan menulis ulang file manifes. Kami belum sepenuhnya yakin seberapa baik metode ini berfungsi.
David Pashley
2
Mengapa jenis paket Wayang memasang semua paket di setiap mesin? Anda menempatkan bait untuk setiap paket ke dalam kelas yang relevan atau jenis yang ditentukan, sehingga hanya diinstal pada mesin yang sesuai. Jika Anda ingin memusatkan daftar versi ke dalam satu file, miliki daftar besar sumber daya virtual dan kemudian sadari jika diperlukan.
womble
2

Lihatlah clusterssh (apt-get install clusterssh):

$ cssh server1 server2 server3 ...

Thiago Figueiro
sumber
1
Ini sebenarnya masih bekerja di 10.9.3 ... agak lucu untuk menggunakannya
Jonathan S. Fisher
1

Tanpa benar-benar memikirkannya sebelumnya, ide pertama saya akan menjadi sesuatu yang mirip dengan apa yang disarankan avery, terutama jika Anda sudah memiliki lingkungan ujian.

Pada dasarnya, Anda mengatur mesin produksi Anda untuk secara otomatis meningkatkan dari repo lokal Anda sendiri, dan Anda hanya memperbarui repo ini setelah Anda memutakhirkan lingkungan pengujian Anda ke versi terbaru dari apa pun yang Anda jalankan.

Apticron tidak berskala baik, ia dirancang untuk dijalankan di lingkungan yang cukup kecil, tetapi memiliki beberapa poin bagus:

  • Ini tidak hanya mengirimkan daftar, tetapi juga changelog untuk paket yang akan ditingkatkan.
  • Untuk mendapatkan changelogs ia mengunduh paket-paket, jadi ketika Anda memutakhirkan Anda tidak perlu menunggu mereka untuk mengunduh.
theecereceive
sumber