Ini berkaitan dengan lingkungan multi-penyewa seperti perusahaan hosting kecil.
Apakah Wayang (atau sejenisnya) merupakan teknologi yang cocok untuk menjaga perubahan massa dasar tetapi kritis? Sebagai contoh:
- Memperbarui resolvers DNS (resolv.conf)
- Pengaturan kunci SSH
- Memperbarui konfigurasi NTP
- Mengkonfigurasi snmpd
- Menyebarkan skrip pemantauan seperti ekstensi SNMP Perl atau skrip Nagios
Kekhawatiran saya adalah seputar keamanan dan invasi:
- Saya tidak ingin server dapat melihat konfigurasi apa pun yang seharusnya tidak terjadi
- Saya khawatir bahwa master Wayang mungkin rentan terhadap serangan oleh server yang dikompromikan
- Saya tidak ingin Wayang melakukan perubahan yang seharusnya tidak terjadi, atau mengembalikan perubahan manual yang dilakukan di server.
Saya harus mengatasinya dengan mengatakan saya tidak pernah menggunakan Puppet dalam produksi, hanya bermain-main cepat di laboratorium percobaan, jadi mungkin saya memikirkan hal ini dengan cara yang salah!
Ya, ini tentu saja mungkin. Memutuskan apakah Anda harus melakukannya atau tidak, itu terserah Anda.
Mengenai pertanyaan Anda:
1) cukup adil. Lalu lintas berbasis ssl, jadi manajemen sertifikat penting. Juga jangan percaya 'fakta' apa pun yang disediakan klien terkait dengan identitasnya, karena ini dapat diubah oleh klien. Anda ingin mengandalkan sertifikat ssl klien untuk memberikan otentikasi siapa servernya. Sejujurnya jika Anda menggunakan hal-hal seperti hiera dengan benar dan menghindari if-block berdasarkan hostname yang besar dalam kode Anda (yang memang harus Anda lakukan), Anda akan baik-baik saja.
2) Seharusnya tidak, dengan asumsi Anda menyimpannya. Dikonfigurasi dengan benar, hanya ada vektor kecil untuk dalang yang akan diserang oleh klien. Yang mengatakan, efek jika itu bisa dikompromikan besar, jadi berhati-hatilah untuk menguncinya.
3) Itu benar-benar masalah pengujian dan penyebaran. Jika Anda memiliki kode boneka padat, itu tidak akan mengacaukan file Anda. Memang butuh sedikit waktu untuk mendapatkan yang diurutkan, tetapi untuk dasar-dasar (seperti yang Anda butuhkan) tidak lama.
sumber
Ya, bisa digunakan dengan cara ini. Saya menggunakannya untuk mendukung sistem klien eksternal.
Jika Anda menggunakan boneka, Anda tidak boleh mengaktifkan tanda tangan kemudian. Autosign memungkinkan host untuk secara otomatis meminta sertifikat. Konfigurasi dan izin Anda hampir pasti akan diikat langsung ke CN dalam sertifikat. Anda tidak ingin komputer acak online dan dapat mengklaim bahwa mereka sebenarnya adalah sistem dengan semua rahasia keamanan tinggi.
Jika Anda benar-benar paranoid, Anda dapat menyesuaikan pengaturan server file boneka untuk membuat share yang hanya dapat diakses oleh beberapa sistem. Akses server file didasarkan pada sertifikat.
Ada beberapa pendekatan berbeda untuk mengizinkan perubahan lokal.
Salah satu metode yang sering saya gunakan adalah di bawah ini. Pada dasarnya jika Anda meneruskan daftar ke
source
, maka boneka tersebut mencoba setiap item dalam daftar. Jadi saya menambahkan item pertama dalam daftar untuk menunjuk pada file lokal.Pilihan lain adalah memanfaatkan symlink. Jika seseorang ingin menggunakan versi boneka, mereka terhubung ke versi boneka dari sebuah file. Jika mereka ingin mempertahankan konfigurasi mereka secara lokal, maka mereka tidak membuat symlink.
Kemungkinan lainnya adalah menggunakan augeas untuk membuat perubahan level-garis alih-alih mengubah seluruh file. Jadilah sangat konservatif tentang apa yang Anda ubah.
sumber
3> Tidak ada pembatalan otomatis di Wayang atau alat semacam itu. Anda harus menulis kode eksplisit untuk membatalkan. Selain itu, Anda dapat meneliti fitur Lingkungan boneka, memiliki lab Pengujian tempat kode baru diuji (bisa berupa VM), dan menggunakan ulasan kode.
sumber
/var/lib/chef
secara default (kecuali jika sumber daya dikonfigurasikan untuk tidak meninggalkan cadangan, misalnya untuk data sensitif), dan dengandoc
formatter Anda melihat perbedaan pada output terminal.Untuk file konfigurasi yang dibuat menggunakan jenis File Puppets ini dapat dicapai dengan mengatur:
Saya menggunakannya untuk menghasilkan beberapa file konfigurasi pertama kali aplikasi dikerahkan ke server, tetapi kemudian setiap edit ke file konfigurasi itu tidak akan ditimpa oleh Wayang.
Namun ini bertentangan dengan filosofi Wayang untuk menjadi skrip penyebaran idempoten.
Mungkin lebih baik jika Anda bisa, memiliki file admin-editable terpisah yang tidak dikelola oleh wayang yang termasuk dari file yang dikelola oleh wayang.
sumber
Wayang bekerja paling baik untuk banyak server dengan konfigurasi yang identik. Misalnya Anda menulis semua konfigurasi server web bersama yang disediakan oleh perusahaan Anda, lalu buat N instance server itu. Setelah itu melakukan perubahan pada semua instance sekaligus (mis. Anda mengetahui bahwa perlu mengubah AllowOverride untuk semua host virtual apache) akan sangat mudah. Anda juga dapat menyimpan semua informasi konfigurasi di satu tempat dan memilikinya di bawah kontrol versi. Dalam kasus sempurna Anda akan dapat menangani kegagalan perangkat keras dengan membuang host yang rusak, menggantinya dengan yang baru, mengatur nama host yang sama dan menandatangani sertifikat yang diperlukan. Segala sesuatu yang lain bisa dilakukan oleh Wayang.
Tetapi jika Anda berakhir dengan hampir tidak ada konfigurasi berbagi antara dua host, menggunakan boneka mungkin kurang produktif daripada melakukan konfigurasi secara manual. Juga mengelola setengah dari konfigurasi server dengan boneka dan setengah lainnya secara manual mungkin tidak masuk akal.
Ringkasan : Jika Anda dapat membuat konfigurasi seragam dan terstruktur untuk host yang akan Anda kelola, Puppet adalah teman terbaik Anda, tetapi jika Anda harus menangani setiap layanan (host, virtual host, database) khusus Puppet tidak akan menambahkan banyak nilai.
sumber