Manajemen boneka global vs lokal

8

Adakah yang pernah mengelola beberapa sistem yang didistribusikan secara geografis dengan Wayang?

Saya memiliki beberapa penyebaran yang hampir persis sama (kecuali IP server), yang ingin saya konversi ke Puppet.

Saya punya 2 opsi:

  • Mintalah setiap penyebaran untuk menjadi tuan rumah PuppetMaster sendiri untuk menyediakan konfigurasi lokal, lalu sinkronkan entah bagaimana PuppetMaster (mungkin dengan boneka lagi)

  • Host PuppetMaster di AWS EC2 untuk ketersediaan tinggi, dan menyediakan konfigurasi untuk semua penyebaran dari titik tunggal

Adakah yang mencoba opsi kedua, dan bagaimana cara kerjanya? Saya terutama tertarik pada kinerja Ketersediaan Tinggi di lingkungan seperti itu.

Terima kasih.

SyRenity
sumber

Jawaban:

7

Tidak ada yang salah dengan pendekatan yang Anda usulkan. Kami memiliki tiga boneka wayang, semuanya terletak di satu situs, dan melayani simpul di seluruh dunia - kami memisahkannya berdasarkan apakah simpul wayang penghubung ada di dev / test / prod. Orang lain lebih suka menjalankan kepala boneka per wilayah geografis. Orang lain memiliki banyak boneka, beberapa hanya mengelola satu simpul!

Kuncinya adalah penting bahwa Anda menyimpan dan mengelola pohon manifes puppetmaster Anda dalam sistem kontrol versi - perlakukan seperti kode lain yang dipelihara oleh perusahaan Anda. Saya akan merekomendasikan Git, tetapi Subversion juga akan melakukan trik jika Anda lebih terbiasa dengan itu. Puppetmaster hanyalah sebuah layanan yang menyajikan pandangan khususnya tentang VCS Anda, daripada menjadi database pusat itu sendiri.

Dengan konten Anda dalam VCS, Anda kemudian dapat menggunakan manifes / modul yang diperlukan untuk masing-masing boneka, dan menyimpannya dengan mudah. Konvensi tersebut tampaknya untuk rakyat memiliki git / svn repo / modul per modul boneka, meskipun tidak ada yang menghentikan Anda dari meletakkan seluruh pohon di bawah satu repo / modul.

Pertanyaan saya kepada Anda adalah:

  • Berapa banyak node dalam setiap penyebaran? Jika Anda berbicara tentang lebih dari 50 tahun, maka tentu ada baiknya memiliki kepala dalang setempat.
  • Apakah penyebaran memiliki pihak ke-3 yang menggunakannya selain perusahaan Anda? Kepala boneka harus memiliki keamanan yang sangat tinggi - menganggapnya sebagai kunci pintu semua sistem Anda, dan akan berisi informasi yang sangat sensitif.
  • Demikian pula, untuk PM berbasis penyebaran, apakah Anda akan meng-host mereka di server / VM mereka sendiri, atau apakah mesin yang ada perlu diberi tugas? Saya sangat merekomendasikan bahwa server puppetmaster memiliki peran itu sendiri, untuk keamanan.
  • Bagaimana Anda mengharapkan EC2 memberi Anda ketersediaan lebih tinggi? Dari pemahaman saya, instance EC2 bukan HA, meskipun harus menjalankan 2+ puppetmasters di belakang layanan penyeimbang beban AWS.
  • Apakah penyebarannya sangat berbeda? Apakah Anda ingin mengubahnya pada waktu yang berbeda dalam sehari? Wayang ganda memberi Anda tingkat kontrol yang lebih baik.
Mike Pountney
sumber
1
Hai. Kami berbicara tentang 10 - 20 node maks dalam setiap penyebaran, penyebarannya di seluruh dunia. Tidak ada pihak ke-3 yang diizinkan di dalam penyebaran. Saya sebenarnya tertarik untuk memusatkan semua data terkait Wayang pada mesin khusus, sehingga PM akan di-host pada instance EC2. Saya mungkin akan menggunakan Detak Jantung + DRBD untuk HA. Penyebaran pada dasarnya adalah peralatan yang sama, seperti yang dikatakan hanya IP server berbeda. Terima kasih lagi.
SyRenity
Kedengarannya sangat mirip satu klaster puppetmaster di EC2 mungkin akan melakukan trik untuk Anda saat itu. Pastikan Anda menggunakan Git atau Subversion untuk menyimpan manifes Anda dengan aman :)
Mike Pountney
2

Anda juga bisa menggunakan sistem Puppetmaster-less menggunakan VCS terdistribusi seperti Git, menggunakan skema yang dijelaskan di sini:

http://bitfieldconsulting.com/scaling-puppet-with-distributed-version-control

John Arundel
sumber
Jika Anda tidak memiliki dalang maka Anda kehilangan dukungan konfigurasi yang tersimpan, yang merupakan salah satu fitur Puppet yang paling kuat. Pikirkan pengumpulan informasi lintas mesin bawaan untuk pembaruan; mis. Anda dapat secara otomatis mengumpulkan informasi tentang menjalankan layanan pada semua host (yang dikelola boneka) untuk menghasilkan aturan firewall, aturan perutean, pemantauan konfigurasi, pencadangan berbasis-tarik, dll.
David Gardner
Ya, itu poin yang adil. Tentu ada keuntungan untuk menjalankan sistem berbasis Puppetmaster penuh, dan biasanya saya lakukan. Saya dapat melihat situasi di mana sistem berbasis VCS yang sangat ringan seperti ini akan bermanfaat.
John Arundel
Jika Anda memilih setup tanpa master Anda dapat melakukan itu dan mengatur server puppetmaster hanya untuk menerima inventaris dari faktor-faktor - itu tidak harus tersedia sangat tinggi.
timurb
0

Kami juga memiliki sejumlah master boneka, lingkungan berbeda yang kami selaraskan. Untuk melakukan ini, kami mengelola semua modul boneka dan manifes dalam subversi dan kemudian menyebarkan modul boneka ke dalam puppetmasters menggunakan manifest boneka biasa dan modul yang disebut vcsdeploy yang melakukan pemeriksaan:

http://www.practicalclouds.com/content/guide/pclouds-vcsdeploy-deploy-stuff

Ketika kami ingin menyinkronkan, kami menandai versi dan kemudian memperbarui nodes.pp untuk master boneka.

salam

Dave

pengguna1238985
sumber