Migrasi klien boneka ke kepala boneka baru

8

Bagaimana saya bisa memigrasi klien boneka kami yang ada ke server puppetmaster baru? Saya lebih suka tidak secara manual pergi ke setiap kotak klien dan menghasilkan sertifikat baru.

Ketika mencoba yang jelas - rsync semua file dari / etc / puppet dan / var / lib / puppet ke server baru - kami mendapat kesalahan sertifikat

/etc/init.d/puppetmaster start 
* Starting puppet master                
Could not run: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key

Saya dapat mengatasinya dengan menyalin /var/lib/ssl/certsdan /var/lib/ssl/private_keyfile dari old_hostnameke new_hostname, yang pada dasarnya adalah apa yang disarankan dalam migrasi klien wayang ke master wayang baru (server master wayang lama hilang, hanya menggunakan cadangan)

Sayangnya, klien saya masih tahu ada sesuatu yang salah, dan beri saya kesalahan berikut:

sudo puppetd --test --server newservername.example.net --noop 
info: Retrieving plugin
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': hostname was not match with the server certificate
err: /File[/var/lib/puppet/lib]: Could not evaluate: hostname was not match with the server certificate Could not retrieve file metadata for puppet://newservername.example.net/plugins: hostname was not match with the server certificate
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

Jadi saya menduga sertifikat klien masih tahu nama host yang terkait dengannya, dan tidak senang dengan peralihan.

Apakah ada cara untuk menggunakan boneka (menunjuk ke boneka wayang) untuk menyebarkan sertifikat baru, atau entah bagaimana mengotomatiskan proses penandatanganan?

RINGKASAN: Dua solusi disajikan: 1) nyalakan autosignmaster, sehingga melewatkan sertifikasi sepenuhnya, atau 2) atur CNAME lama untuk menunjuk ke master baru, karena sertifikat terikat pada nama host master. Saya memilih # 2 karena tanda otomatis terasa seperti mematikan keamanan (walaupun untuk waktu yang terbatas).

mrisher
sumber

Jawaban:

3

Apakah Anda ingin menjaga agar kedua boneka tetap berjalan dan berlari untuk sementara waktu, dan memigrasikan klien sedikit demi sedikit?

Jika demikian, Anda terjebak menyentuh setiap sistem klien, apa pun yang terjadi; apakah itu menunjuk ke master baru, atau menambahkan entri file hosts, atau semacamnya. Jika itu masalahnya, maka Anda mungkin baru saja memulai master baru dan menandatangani ulang setiap klien (ini lebih baik daripada hack file host untuk mengatasi masalah validasi).

Jika tidak (jika Anda berencana untuk mengambil server lama dan memotong semuanya sekaligus), maka ambil saja nama host server lama dengan server baru; sertifikat akan diakui valid jika klien terhubung ke server baru dengan nama lama (nama yang ada di sertifikat).

Shane Madden
sumber
Ya, pertanyaannya adalah apakah mungkin untuk secara otomatis menandatangani kembali setiap klien. Saya pikir Anda telah menjawabnya dengan menunjukkan bahwa sertifikat terikat dengan nama host yang digunakan klien untuk mencapai server tertentu, jadi jika saya menggunakan kembali nama host, saya akan dapat menggunakan kembali sertifikat. Terima kasih!
mrisher
Nah, sederhana puppetca --sign --allakan melakukan trik untuk sertifikat klien; server satu adalah yang memberi Anda masalah dengan kesalahan ketidakcocokan.
Shane Madden
3

Anda cukup menggunakan $ssldirpuppetmaster lama dan menggunakannya di puppetmaster baru.

Selain itu, mungkin saja untuk menggunakan skrip yang akan:

  • (Tidak terkait dengan skrip klien: mungkin mengaktifkan tanda tangan otomatis di server boneka baru)
  • jalankan sedikit kemudian
  • hentikan klien boneka
  • bersihkan ssldir klien
  • memodifikasi puppet.conf pada klien untuk menunjuk ke server baru
  • buat file kunci untuk memastikan itu tidak menyebabkan loop konfigurasi ulang tanpa akhir
  • mulai boneka lagi

Jelek tapi selama modul migrasi hanya di server lama dan pastikan tidak ada modul migrasi hanya di server baru, itu adalah satu hal yang harus dilakukan dan hanya perlu dilakukan ...

Martin M.
sumber
Hai: autosignTriknya bagus, tetapi tampaknya berisiko. Tanpa itu, apakah solusi ini benar-benar mengatasi masalah ketidakcocokan sertifikat klien?
mrisher
Ya, autosign hanyalah cara malas untuk tidak harus berurusan dengan ribuan klien yang akan baru di dalang. Konsepnya sama, perbedaannya adalah bahwa klien yang bermigrasi ke master baru tidak akan melakukan pekerjaan apa pun kecuali mereka masuk
Martin M.