ปัญหาชื่อโฮสต์ของหุ่นเชิด


10

ฉันค้นหาทางออนไลน์และเห็นว่ามีคนไม่กี่คนที่มีปัญหานี้ในรายการ / กระดานอื่น ๆ เมื่อฉันรัน sudo puppetd - รอ 60 วินาที - ทดสอบเป็นครั้งที่ 2 หลังจากลงนามใบรับรองบนเซิร์ฟเวอร์หลักฉันได้รับข้อผิดพลาดนี้ -

notice: Got signed certificate
warning: Certificate validation failed; considering using the certname configuration option
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate

ฉันไม่แน่ใจว่าฉันเข้าใจปัญหาหรือวิธีแก้ไข นั่นคือเหตุผลที่ฉันถาม

ฉันกำลังตั้งค่าหุ่นกระบอกบนเซิร์ฟเวอร์สองเครื่องบน LAN ของฉัน puppetmaster มีชื่อว่า 'puppet' และเซิร์ฟเวอร์อื่น ๆ มีชื่อว่า 'puppetclient' ฉันวางหุ่นกระบอกลงใน / etc / hosts บน puppetclient

ชื่อโฮสต์ที่ทำงาน -f จะแสดงหุ่นเชิดและหุ่นกระบอกบนเซิร์ฟเวอร์ที่เกี่ยวข้อง ฉันไม่แน่ใจว่าจะลองอะไรอีก ไม่มีใครมีความเข้าใจใด ๆ ?

คำตอบ:


9

ดูเหมือนว่าใบรับรอง puppetmaster นั้นถูกสร้างขึ้นเมื่อโฮสต์มีชื่ออย่างอื่นที่ไม่ใช่ "puppet" สร้างใบรับรองใหม่และคุณควรจะดี

ชื่อที่เก็บไว้ในใบรับรองจะต้องตรงกับสิ่งที่คุณกำหนดค่าไคลเอนต์ของคุณเพื่อเชื่อมต่อ (แน่นอน) ตัวอย่างเช่นหากคุณกำหนดค่าไคลเอนต์ให้เชื่อมต่อกับ "puppet.domain.com" คุณจะได้รับข้อผิดพลาดหากใบรับรองชื่อ "puppet" และในทางกลับกัน


ฉันมีสิ่งนี้เกิดขึ้นกับฉันไม่กี่ชั่วโมงที่ผ่านมา ต้องการชื่อโดเมนแบบเต็ม
Pete TerMaat

ผนวก. local บนไคลเอนต์ทำเคล็ดลับ แม้ว่าชื่อโฮสต์ -f จะไม่แสดงก็ตาม ขอบคุณ!

1
บางทีอาจจะมีวิธีที่ดีกว่า แต่สำหรับฉันฉันได้สร้างใบรับรอง CA rm -rf /var/lib/puppet/sslใหม่อีกครั้งจากนั้นเริ่มต้น puppetmaster อีกครั้ง
Peter Sankauskas

6

หากคุณต้องการใช้ DNS CNAME สำหรับ puppetmaster ของคุณคุณสามารถเริ่ม puppetmaster ได้โดยใช้:

puppetmaster --certname cname.domain.org

ซึ่งจะทำให้ puppetmaster ใช้cname.domain.orgแทนชื่อโดเมนที่ผ่านการรับรองโดยสมบูรณ์



1

คุณสามารถถาม facter (facter fqdn) ชื่อโฮสต์คืออะไรและดูว่าสิ่งนั้นสอดคล้องกับสิ่งที่คุณคาดหวังหรือไม่ นอกจากนี้ให้ดูที่ (โดยค่าเริ่มต้น) / var / lib / puppet / ssl / และดูว่า certs มีลักษณะอย่างไรหากไม่มีชื่อโฮสต์ที่ถูกต้องซึ่งอาจเป็นปัญหาของคุณ เนื่องจากหุ่นกระบอกทำหน้าที่สื่อสารกันผ่าน HTTPS มันจึงค่อนข้างอ่อนไหวต่อความละเอียดและการตั้งชื่อโฮสต์


1

ก่อนการติดตั้ง Puppet บนไคลเอนต์และเซิร์ฟเวอร์ที่คุณกำหนดให้ตรวจสอบไฟล์ /etc/resolv.conf และตรวจสอบว่ารายการโดเมนแรกในบรรทัด "ค้นหา" เป็นโดเมนที่คุณต้องการให้ Puppet ทำงาน ตัวอย่างเช่น:

ค้นหา my.puppetdomain.com my.public.domain.com

เนมเซิร์ฟเวอร์ 192.168.1.1 เนมเซิร์ฟเวอร์ xxx.xxx.1.1

ในระหว่างขั้นตอนการติดตั้ง Puppet เซิร์ฟเวอร์ Puppet จะสร้างใบรับรองตามรายการค้นหาแรกใน /etc/resolv.conf ฉันพบสิ่งนี้ด้วยวิธีที่ยากลำบาก หากคุณเห็นข้อผิดพลาดเกี่ยวกับใบรับรองบนโหนดหุ่นเชิดให้ทำตามขั้นตอนต่อไปนี้:

1) แก้ไข /etc/resolv.conf และตรวจสอบว่าโดเมนแรกที่แสดงในบรรทัด "ค้นหา" สะท้อนถึงโดเมนที่คุณต้องการให้ Puppet ทำงาน

2) ถอนการติดตั้ง puppet (ปล่อยให้ไดเร็กทอรี / etc / puppet เหมือนเดิม)

3) rm -rf / var / lib / puppet

4) ติดตั้ง Puppet ใหม่ (จะเป็นการสร้างไดเรกทอรีใหม่ / var / lib / puppet)

5) ถ้าทำสิ่งนี้บนเซิร์ฟเวอร์ Puppet ให้รัน/ usr / sbin / puppetmasterd --mkusers (หรือมิฉะนั้นให้รัน/ usr / local / sbin / puppetmasterd --mkusers ) สิ่งนี้จะสร้างไฟล์ที่จำเป็นทั้งหมดภายใน / var / lib / puppet รวมถึงใบรับรองภายในใหม่โดยใช้ชื่อโดเมนที่ถูกต้อง

6) หากดำเนินการสิ่งนี้บนไคลเอนต์ Puppet ให้เริ่ม Puppet ในโหมด verbose โดยเปิดใช้งานแฟล็ก --waitforcert: puppetd -server .puppetdomain.com --waitforcert 60 --test ขั้นตอนนี้จะส่งการร้องขอใบรับรองไปยังเซิร์ฟเวอร์ Puppet

7) บนเซิร์ฟเวอร์ Puppet, รายการใบรับรองรอ:

puppetca - รายการ

คุณควรเห็นชื่อโฮสต์ของ Puppet client ที่ทำการร้องขอ:

puppetclient1.puppetdomain.com

8) จากเซิร์ฟเวอร์ Puppet ลงนามใบรับรองของ Puppet client ที่อยู่ในรายการ:

puppetca - ลงชื่อ puppetclient1.puppetdomain.com

จากนั้นคุณก็ทำ

HTH ....


0

หุ่นเชิดและหุ่นเชิดทั้งคู่แก้ปัญหาใน DNS หรือไม่? หากไม่ใช่คุณสามารถแก้ไขไฟล์ / etc / hosts เพื่อจับคู่ IP และชื่อโฮสต์ IIRC คุณควรทำสิ่งนี้กับลูกค้าเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.