Saya menemukan saya terus-menerus menyiapkan server dan VPS yang hampir identik untuk sejumlah klien saya dan itu bisa sangat memakan waktu. Seringkali satu-satunya hal yang berubah antara setiap penyebaran adalah situs web berbeda yang akan dilayani. Apakah ada cara mudah untuk mengotomatisasi semua ini dan mengambil membosankan membosankan pengaturan 56 server yang identik?
Server yang saya gunakan sejauh ini hanya Ubuntu, tetapi mungkin saja saya mulai menggunakan OS linux lain atau bahkan Windows. Sejauh ini saya telah melihat Capistrano, tetapi tampaknya berfokus pada penulisan program ruby kecil untuk melakukan pekerjaan itu, dan saya tidak memiliki pengetahuan sama sekali
vps
deployment
automation
Josh Hunt
sumber
sumber
Jawaban:
Wayang terdengar sempurna untuk apa yang Anda coba lakukan, dengan peringatan bahwa sampai sekarang, tidak ada dukungan untuk Windows.
Dalam kasus Anda, Anda akan mendefinisikan node Server dalam hal semua paket yang identik di seluruh mesin. Kemudian, Anda mendefinisikan masing-masing host sebagai node yang mewarisi dari Server, dan mengatur hal-hal unik khusus untuknya.
Wayang adalah deklaratif - ini memungkinkan Anda untuk menggambarkan kotak Anda dalam hal sumber daya yang harus dimiliki setiap kotak. Jadi jika Anda ingin
ssh
- Anda menulis kelas untuk sumber daya itu - dan di dalam kelas Anda dapat memasukkan logika tentang bagaimana ssh disebut sedikit berbeda pada FreeBSD vs Ubuntu. Ia juga tahu untuk menggunakanyum
di dalam Redhat danapt-get
di dalam distro berbasis Debian, danports
di BSD. Sekarang di node Server Anda, Anda hanya akan memiliki garis sepertiinclude ssh
- dan boneka akan melakukan hal yang benar dan menempatkan SSH pada mesin tanpa Anda harus ingat apakah itu Ubuntu atau Redhat atau FreeBSD.Apa yang menyenangkan adalah bahwa semua hal-hal Server hidup di satu tempat - dan jika suatu saat Anda menambahkan definisi node Server, SEMUA mesin akan memperbarui konfigurasi mereka sesuai.
Saat ini, saya hanya mengelola tiga kotak menggunakan Wayang - tetapi sudah terbayar. Setelah menghabiskan satu minggu menyiapkan kotak yang akan kami gunakan untuk presentasi stimulus dalam percobaan, ternyata driver kartu grafis terlalu tua dalam versi Ubuntu yang saya pakai (8.04). Saya harus menginstal Ubuntu terbaru (9.04), tetapi setelah itu saya hanya perlu apt-get dan menjalankan boneka - dan semua yang saya habiskan seminggu untuk menyiapkannya telah dipulihkan.
Wayang memang memiliki sedikit kurva belajar, tetapi saya telah berhasil menghindari belajar Ruby - Saya tahu saya menggunakannya, karena itulah yang ditulis wayang - tapi sejauh ini saya telah berhasil hanya memodifikasi contoh - contoh di dokumentasi dan resep di wiki . Kelemahan lain adalah bahwa boneka memang membutuhkan waktu sedikit lebih lama untuk melakukan hal-hal pertama kali. Keuntungannya adalah semua yang Anda ubah di semua mesin disimpan di satu tempat - ini adalah praktik standar untuk menjaga konfigurasi boneka Anda dalam sistem kontrol versi - sehingga Anda selalu dapat melihat ke belakang dan melihat bagaimana Anda telah menyiapkan server di masa lalu - atau memutar kembali beberapa perubahan yang gagal.
Akhirnya, inilah video cepat yang melakukan demo boneka sederhana yang membuat saya mulai dengan cepat.
sumber
Kami menggunakan Cobbler dan Puppet untuk membangun dan mengotomatisasi konfigurasi mesin nyata dan virtual.
Cobbler menyatukan DHCP, boot PXE dan Kickstart untuk melakukan penyebaran tidak lebih dari menambahkan profil mesin dan menekan tombol daya. Untuk VM,
koan
perintah melakukan sihir Xen (dalam kasus kami) untuk memulai instalasi - padadom0
I ketik saja:kemudian
virsh console
menonton gedung VPS tanpa interaksi apa pun.Kami menggunakan RHEL dan mengatur banyak profil untuk disk partisi, mengonfigurasi jaringan, dan menginstal paket dasar untuk kelas server yang berbeda. Cobbler mendukung trah Debian dan Ubuntu tetapi saya belum pernah mencobanya. Selain itu: kegunaan lain yang menarik untuk Cobbler termasuk menjalankan ISO memtest dan pembaruan firmware HP .
Setelah sistem kami dibangun dengan Cobbler Puppet mengambil alih untuk mengkonfigurasi aplikasi, daemon sistem, mendaftarkan kotak dengan RHN, dll. Wayang berjalan sebagai daemon yang secara berkala memeriksa bahwa konfigurasi sistem sesuai dengan manifes yang ditentukan - Anda tahu pembaruan Anda telah hilang ke semua server. Ini juga cara yang bagus untuk memastikan bahwa sebuah kotak yang telah rusak untuk pemeliharaan memiliki konfigurasi yang benar sebelum Anda mengembalikannya ke layanan langsung.
Wayang benar-benar luar biasa. Anda tidak perlu mengatur setiap aspek konfigurasi di bawah kontrolnya - mulailah dengan mengaturnya sesuatu yang sederhana yang perlu Anda konfigurasi pada setiap kotak (
sudoers
adalah contoh kanonik) dan ambil dari sana. Pastikan manifes wayang Anda diversi versi juga; tidak ada yang lebih baik daripada dengan mudah dapat memutar kembali ke konfigurasi yang dikenal-baik tanpa harus mengingat apa yang harus disesuaikan.sumber
Di mana saya bekerja saat ini, kita harus mengelola bagian Linux dari server farm kami yang hanya lebih dari 300 server Linux. Ini termasuk HP Proliants, diikuti oleh IBM 3850s, beberapa blade IBM, VMware ESX, dan beberapa KVM untuk server manajemen internal kami.
tukang sepatu
Kami melihat tukang sepatu tetapi masalahnya ada tukang sepatu sangat RHEL / Red Hat khusus. Setidaknya kita perlu mendukung RHEL dan SLES, dan Ubuntu berikutnya.
wayang
Kami memang mempertimbangkan boneka, namun kemudian memutuskan untuk tidak melakukannya karena itu tergantung pada Ruby, yang berarti bahwa pemutakhiran Ruby, berpotensi merusak sistem manajemen kami.
hotwire
Hotwire adalah apa yang kami gunakan (dikembangkan secara internal, tetapi merupakan open-source), dan telah melakukannya selama beberapa tahun terakhir. Pertama-tama menginventarisir sistem yang akan dibangun, yang berarti menginventarisir pusat data, rak, perangkat keras, sistem operasi, jaringan, dll, dan kedua melakukan pembangunan & penyebaran cepat. Setelah sistem dibangun, inventaris otomatis hotwire menjaga inventaris tetap sinkron, sementara cfengine mempertahankannya. Hotwire tahu tentang perangkat keras server dengan berbicara dengan data SMBIOS / DMI di Bios via python-dmidecode .
Poin bonusnya adalah menggabungkan inventaris dan proses pembangunan menjadi satu, jadi ada lebih sedikit untuk dikelola, dan fitur inventaris-langsung sangat bagus seperti yang kita ketahui jika ada sesuatu yang tidak beres.
Kerugiannya adalah bahwa antarmuka pengguna masih perlu dipoles, dan ada bug di sana-sini, tetapi pengembangan masih panas, dan bug yang dilaporkan diperbaiki relatif cepat.
cfengine
Kami menggunakan cfengine karena selain itu, dan boneka, tidak ada yang lain. Sebenarnya itu alat yang baik, tetapi "baik" hanya sebagai fungsi dari seberapa baik kebijakan Anda - jika Anda menetapkan kebijakan berbahaya, maka kesalahan kecil dapat menyebabkan banyak kerusakan. Misalnya, berdasarkan kebijakan, kami tidak "memodifikasi" file, kami menggantinya, atau tidak. Juga semua file yang diganti memiliki tajuk yang membuat setiap orang yang mengeditnya tahu bahwa itu akan diganti saat dijalankan berikutnya (dijalankan melalui cron setiap jam).
Konfigurasi dan semua file yang didorong oleh cfengine ke server juga disimpan dalam SCM, dan menggunakan kait pasca-komit, jika memungkinkan, kami memeriksa sintaks dan jika itu gagal, maka komit ditolak. Ini mudah untuk aplikasi yang bagus seperti Apache, tetapi tidak begitu mudah untuk sebagian besar aplikasi perusahaan.
sumber
Saya sudah sukses dengan Wayang . Chef adalah yang baru muncul. Untuk daftar opsi yang lebih panjang dan grafik perbandingan, lihat artikel Wikipedia, Perbandingan perangkat lunak manajemen konfigurasi sumber terbuka .
sumber
Untuk instalasi otomatis tergantung pada sistem target:
Untuk manajemen konfigurasi di atas itu saya sarankan menggunakan boneka.
sumber
Saya mengalami banyak kesuksesan dengan Wayang , tetapi Anda harus menulis banyak konfigurasi.
sumber
Pilihan lain untuk Wayang di sini. Kami menggunakannya secara luas untuk melakukan semua instalasi server dan aplikasi dan manajemen konfigurasi. 200+ node dan terus bertambah. Dukungan Windows tampaknya sedang dalam pengembangan, meskipun dalam kondisi apa saya tidak yakin.
Kami masih melihat ke sisi bootstrap OS awal hal, tetapi seperti yang disebutkan di atas Cobbler terlihat menarik. Kami saat ini menggunakan campuran boot PXE dengan preseeding Debian / Ubuntu, tetapi ini hampir tidak optimal.
sumber