Membalut segalanya atau tidak?

10

Perhatikan: ada banyak pertanyaan teoretis.

Baru-baru ini saya membaca tentang Wayang (dan sistem serupa), yang - seperti yang saya yakini - dapat membuat pekerjaan saya lebih mudah. Tetapi saya mencoba - dan sayangnya tidak bisa - untuk memahami apa yang bisa saya "dalang". Saya bisa membayangkan "awan" atau cluster HA, di mana konfigurasi yang sama pada lebih banyak server. Tapi bagaimana dengan workstation? Saya punya satu pc (centos dengan kvm), satu notebook (fedora) dan server pribadi, dapatkah (atau harus) boneka itu dibuat-buat? Apa kelebihan (dis)? Atau di perusahaan kami, kami memiliki ratusan server (terutama dengan centos), tetapi masing-masingnya sedikit berbeda. Tidak dapat memutuskan apakah lebih baik memiliki banyak konfigurasi di satu tempat .. (Dis) keuntungan? Saya akan senang atas semua pendapat atau tautan Anda dengan topik ini.

stderr
sumber
Saya akan menyarankan untuk tidak mencoba "Melatih" salah satu sistem Windows Anda. Oh, dan bacalah FAQ kami tentang pertanyaan apa yang harus Anda tanyakan di sini.
HopelessN00b
7
Jumlah hal-hal yang Anda boneka, dan berapa banyak barang-barang boneka yang mereka miliki harus berbanding lurus dengan jumlah yang Anda pedulikan tentang tugas yang sedang dilakukan untuk Anda. Mulai dari yang kecil, cukup susun konfigurasi ntp, atau rsyslog. Kemudian membangun dari sana jika dan sesuai kebutuhan Anda, ketika Anda perlu.
Sirex
1
Karena Anda sudah memiliki banyak server di tempat saya, saran saya adalah Anda mulai sederhana dengan bit yang umum pada setiap sistem tunggal, kemudian mulai masuk ke hal-hal rinci yang lebih spesifik karena Anda punya waktu.
Zoredache
1
Dukungan Windows telah meningkat secara dramatis dalam versi terbaru Wayang. Saya mengelola ratusan node Windows dengan Wayang. Wayang pada node POSIX jauh lebih mudah dan kuat, tetapi menggunakan Wayang untuk setidaknya beberapa hal di Windows bisa sangat berguna.
czervik

Jawaban:

16

Sejauh mana Anda dapat membuat boneka seluruh lingkungan tergantung pada beberapa variabel:

  • Kesediaan staf otomatisasi untuk menulis otomatisasi untuk setiap orang. sedikit. benda.
  • Pengondisian budaya yang memungkinkan "Aku hanya akan mengubah satu hal ini, ini hanya sekali saja" untuk berubah menjadi "Aku hanya akan mengubah satu hal ini dalam manifes wayang ini, dan menerapkannya sekarang; itu hanya satu kali . "
  • Tingkat heterogenitas dalam suatu lingkungan.

Sangat mungkin untuk membuat boneka setiap hal yang dapat dipalsukan, tetapi untuk sampai ke sana membutuhkan budaya yang tepat dan dukungan dari semua orang yang dapat menyentuh perangkat yang dapat membantu boneka. Beberapa perangkat pada dasarnya sulit dikelola dengan cara itu, hal-hal seperti workstation, dan boneka lebih baik sebagai alat pementasan daripada mesin manajemen konfigurasi.

Wayang itu luar biasa ketika Anda mengelola armada semua VM melakukan hal yang sama. Kemenangan total, dan tidak banyak usaha untuk sampai ke sana.

Di ujung lain spektrum Anda memiliki apa yang saya miliki di pekerjaan terakhir saya, yaitu 200+ server yang menyediakan 130 layanan dan hanya sekelompok kecil dari mereka yang melakukannya dengan lebih dari satu mesin. Benar- benar ada perusahaan (dan universitas) yang melakukan hal-hal semacam itu, tetapi ini banyak usaha dan membutuhkan banyak dukungan. Ini mengharuskan langkah pertama proses penyebaran mesin baru Anda bukan "Instal OS", tetapi "buat manifes".

Pada akhirnya ini merupakan upaya vs efisiensi budaya yang harus Anda pecahkan di antara semua staf TI Anda.

sysadmin1138
sumber
13

PUPET SEMUA HAL

Apa pun yang hampir sama di semua sistem (atau sebagian dari mereka), atau bahwa Anda dapat mendasarkan sebuah template dari fakta yang bisa Anda peroleh facteradalah permainan yang adil.

Hal-hal yang benar-benar unik Anda mungkin tidak perlu repot, dan hanya harus melayani konfigurasi dari filebucket.

Apa yang termasuk dalam kategori mana pun adalah keputusan yang tidak dapat kami buat tanpa mengetahui lingkungan Anda secara intim, jadi itu bagi Anda untuk mencari tahu.

Michael Hampton
sumber
6

Saya pikir orang lain telah membahas mengapa jadi saya akan coba bagaimana. Saya pikir dengan memahami bagaimana seseorang dapat menggunakan Wayang untuk melakukan apa yang Anda inginkan, itu akan membuat keputusan menjadi lebih jelas.

Lakukan casing dasar terlebih dahulu

Modul Wayang Anda untuk Apache seharusnya tidak melakukan banyak hal secara default. Instal Apache, konfigurasikan ke standar minimum, dan mulai layanan. Jadikan ini bekerja pada semua distro yang Anda butuhkan untuk didukung.

Tambahkan fleksibilitas kedua

Kami perlu menambahkan vhosts. Anda akan berakhir dengan sistem yang dapat menjatuhkan file atau menghapusnya dari serangkaian conf.d atau vhosts.d / direktori sesuai dengan yang Anda butuhkan. Hal yang sama dengan mengaktifkan atau mengkonfigurasi modul.

Gunakan kelas peran atau hostgroup untuk mengikat blok bangunan Anda bersama-sama

Saya pikir cara terbaik untuk menggunakan Wayang adalah untuk memastikan itu aditif. Dengan menggunakan contoh di atas kita harus memiliki modul yang berfungsi

  1. Instal Apache
  2. Setel konfigurasi dasar
  3. Tambahkan vhosts ke apache
  4. Konfigurasikan pengaturan tambahan apa pun
  5. Mulai Apache

Alih-alih membebani modul Apache default kami untuk melakukan apa yang kita butuhkan untuk host atau grup tertentu yang harus kita tangani ini adalah kelas peran atau hostgroup.

class role::web_cust1 {
  include apache
  apache::vhost {'www.domain.com': }
  apache::vhost {'www.domain2.com': priority => '99', }
  include php
  include php-fpm
  include mysql
}

Lagi aditif.

Letakkan case khusus di Hiera

Saya penggemar berat Hiera Puppet, menganggapnya sebagai database untuk Wayang, menyimpan bit khusus. Jika host atau hostgroup tertentu membutuhkan pengaturan khusus, pertama-tama masukkan default waras ke dalam modul sehingga pengguna normal tidak perlu mengetahuinya. Kemudian masukkan data untuk host atau grup host khusus tersebut sehingga Hiera dapat menggunakannya untuk meneruskannya ke Puppet sesuai kebutuhan.

Kasing penggunaan saya adalah Dengarkan port. Beberapa server memiliki Varnish atau haproxy di depannya. Secara default modul Puppet memiliki Apache menggunakan port 80, tetapi jika Hiera menemukan data, ia akan menimpa default itu.

Kashani
sumber
Saya telah menggunakan hierarki modul peran dan berfungsi dengan baik. Itu membuatnya lebih mudah untuk membangun lingkungan di mana Anda mungkin memiliki banyak server yang memainkan banyak peran (mis. Beberapa peran :: server web mungkin juga peran :: penyimpanan).
Andy Shinn
5

Saat ini saya dalam transisi antara sistem Puppetize yang hampir mirip dengan Puppetize everything dan saya yakin bahwa jangka panjang, Puppetize everything adalah pendekatan yang lebih baik.

Jika versi Anda mengontrol manifes Wayang Anda (kami semua melakukan ini, kan), Anda mendapatkan semua manfaat dari kontrol versi untuk infrastruktur Anda. Tim Anda menjadi insinyur operasi. Ini sama pentingnya untuk sistem khusus, satu kali seperti peternakan sapi homogen. Anda mendapatkan log tentang siapa yang mengubah sesuatu, ketika mereka mengubahnya, apa perubahan yang sebenarnya, dan kemampuan untuk mengembalikan perubahan itu.

Secara pribadi, saya juga menemukan bahwa memaksa diri saya untuk membuat setiap perubahan melalui Wayang membuat saya berpikir lebih hati-hati tentang perubahan itu. Saat saya menulis manifes, saya lebih memperhatikan setiap perubahan daripada biasanya saya meretas di baris perintah.

Modul Wayang Anda juga akan menjadi lebih baik. Apakah Anda memiliki lebih dari satu modul Nginx? Mungkin itu berarti modul Nginx Anda tidak terlalu bagus, dan Anda perlu membuatnya cukup fleksibel untuk menangani semua kebutuhan khusus Anda. Setidaknya abstraksi kesamaannya menjadi modul inti Nginx yang Anda perluas untuk modul "khusus".

Selanjutnya, seberapa yakin Anda bahwa Anda dapat mengembalikan semua server kebutuhan khusus Anda ke keadaan saat ini (sehubungan dengan konfigurasi) ketika bencana terjadi? Jika setiap perubahan yang diperlukan untuk mendapatkan server Ubuntu pabrik ke wiki internal Anda adalah Puppetized, Anda dapat dengan mudah membangun kembali kondisi wiki Anda saat ini, memori Tomcat kemarin yang di-tweak oleh Bob disertakan.

Akhirnya, ini bisa sangat sulit. Mengelola banyak server yang sangat berbeda dapat menyebabkan beberapa kode Wayang hacktastic jika Anda tidak meluangkan waktu untuk melakukan hal-hal yang benar. Jika Anda tidak menggunakan Puppet Enterprise, pertimbangkan hiera dan / atau ENC seperti Foreman untuk membantu memisahkan data Anda dari manifes Anda. Setiap hari Puppetize sesuatu yang lain. Memiliki drive rekan kerja saat Anda menjelaskan bagaimana ini bekerja di Wayang. Setiap perubahan akan semakin mudah.

czervik
sumber