Wayang: Nama simpul sepertinya tergantung pada reverse dns?

20

Saya tampaknya mengalami sedikit masalah dalam memahami bagaimana cara agar ini bekerja. Saya punya server baru yang sedang saya bangun, duduk di belakang kantor NAT di tempat kerja, peta terbalik office.mydomain.com, tetapi saya ingin mesinnya dibuat ns2.mydomain.comuntuk boneka.

cuplikan nodes.pp:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits basenode {
  info('office.mydomain.com')
}

Dan 'puppet.conf' saya di klien:

[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert

Syslog saya di laporan server:

Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com

Bagaimana saya bisa membuatnya mengambil konfigurasi ns2.mydomain.comtanpa melakukan sesuatu seperti ini:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits 'ns2.mydomain.com' {
  info('office.mydomain.com')
}

UPDATE : Masalah ini tampaknya menyebabkan masalah lain juga. Sebagai contoh jika saya info("$fqdn")sementara mesin duduk di belakang office.mydomain.comfakta fqdn kosong, serta $operatingsystem. Hampir seperti fakta tidak ditemukan dengan benar. Apakah mungkin ada masalah NAT? Apakah ada saran untuk melacak penyebab masalah ini?

gnarf
sumber

Jawaban:

26

Aaah, deteksi nama host Wayang. Mimpi buruk apa ...

Secara default, nama apa yang akan digunakan untuk menemukan nodedefinisi yang digunakan didasarkan pada isi dari fakta fqdn. Apa yang sebenarnya dipetakan tergantung pada beberapa hal yang berbeda, dan ya, membalikkan DNS adalah salah satunya - dan itu lebih disukai daripada nama host mesin itu sendiri!

Namun, nama ini (biasanya) hanya berlaku pada waktu pembuatan sertifikat. Anda sebenarnya menyalahgunakan node_namevariabel - itu harus diatur ke salah satu dari 'cert' atau 'facter'. The fqdnparameter juga ditinggalkan.

Apa yang sebenarnya ingin Anda lakukan adalah mengatur certnameparameter pada klien ke nama simpul yang ingin Anda gunakan, dan kemudian setel node_nameke cert(atau biarkan saja, karena itu certadalah default). Ini akan mengambil nama simpul dari CN dari sertifikat yang disajikan klien, dan certnameparameter memastikan bahwa itu diatur ke sesuatu yang masuk akal daripada apa pun yang memutuskan untuk membuat sendiri. Sayangnya, karena Anda telah membuat sertifikat "salah" yang dibuat, Anda harus membuat ulang sertifikat tersebut ( rm -rf /var/lib/puppet/ssldi klien dan menjalankan kembali Wayang) setelah Anda menyiapkan konfigurasi, sehingga sertifikat yang tepat dapat dibuat dan digunakan.

Jika semua ini terdengar agak rumit, Anda benar - benar. Selamat datang di Wayang.

womble
sumber
Hai, di sana - jadi melihat puppetmaster dan boneka - keduanya telah node_name=cert, diperbarui cert_name=ns1.mydomain.comdan facter fqdnkembali ns1.mydomain.compada klien tapi saya masih berakhir dengan pesan kesalahan yang sama tentang office.mydomain.com.
gnarf
1
re: certname, Anda benar, saya salah mengingat dan tidak memeriksa dokumen seperti yang seharusnya. Mengenai kurangnya fiksasi, Anda perlu membuat ulang sertifikat klien; Saya telah memperbarui jawaban saya untuk membahasnya.
womble
1
Sebenarnya - file cert saya ns1.mydomain.com.pemdan CN-nya juga ns1 ... Itu "benar", kan? office.mydomain.comadalah apa yang ia gunakan sebagai nama simpulnya, dan tampaknya kapan pun ia mencoba mengambil fakta saat menguraikan, alih-alih menggunakan nama sertifikat sebagai nama simpul. Mungkin saya melewatkan sesuatu yang lain? Tak satu pun dari fakta-fakta saya tampaknya ditularkan melalui parser baik info($fqdn)hanya menunjukkan baris kosong dalam lingkup aku taruh di.
gnarf
Saya tidak tahu apa yang telah Anda lakukan, tetapi Anda berhasil menemukan sesuatu yang benar-benar bagus. Saya pikir Anda sendiri.
womble
Pembaruan lain: Saya berhasil mendapatkan semua hal "pra-pengaturan" dari belakang kantor lan dan menempatkan server nama baru secara langsung - segera setelah mulai menggunakan reverse DNS yang benar, semua fakta muncul dengan benar ...
gnarf
5

Saya tampaknya mendapat keberuntungan (walaupun masih ada beberapa test case yang ingin saya lihat) dalam mengedit /etc/hostsuntuk mendaftar fqdn yang diinginkan di bawah 127.0.0.1 sebagai opsi pertama. Tampaknya mendeteksinya dengan benar / menyampaikan fakta. Walaupun sepertinya saya masih perlu membuat simpul yang disebut office.mydomain.commewarisi simpul yang saya inginkan.

gnarf
sumber
Ini berhasil untuk saya. (harus menghapus direktori ssl seperti yang disebutkan di atas)
bwizzy
Ini juga bekerja dengan baik untuk saya, dan juga didukung oleh dokumentasi Puppet: puppetlabs.com/blog/resolving-dns-issues
DuffJ