Puppet: ชื่อโหนดดูเหมือนจะขึ้นอยู่กับ reverse DNS


20

ดูเหมือนว่าฉันจะพบปัญหาเล็กน้อยเกี่ยวกับการทำความเข้าใจวิธีการใช้งานสิ่งนี้ ฉันมีเซิร์ฟเวอร์ใหม่ที่ฉันกำลังสร้างนั่งอยู่ด้านหลังสำนักงาน NAT ในที่ทำงานมันเป็นแผนที่ DNS ย้อนกลับoffice.mydomain.comแต่ฉันต้องการให้เครื่องเป็นns2.mydomain.comหุ่นเชิด

ตัวอย่าง nodes.pp:

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

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

และ 'puppet.conf' ของฉันที่ไคลเอนต์:

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

syslog ของฉันในรายงานเซิร์ฟเวอร์:

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

ฉันจะทำให้มันคว้าการกำหนดค่าns2.mydomain.comโดยไม่ทำอะไรเช่นนี้:

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

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

ปรับปรุง : ปัญหานี้ดูเหมือนว่าจะก่อให้เกิดปัญหาอื่น ๆ เช่นกัน ตัวอย่างเช่นถ้าผมinfo("$fqdn")ในขณะที่เครื่องกำลังนั่งอยู่เบื้องหลังoffice.mydomain.comความเป็นจริง FQDN $operatingsystemว่างเปล่าเช่นเดียวกับ มันเกือบจะเหมือนข้อเท็จจริงที่ไม่ถูกค้นพบอย่างถูกต้อง อาจมีปัญหา NAT หรือไม่ มีคำแนะนำสำหรับการติดตามสาเหตุของปัญหานี้หรือไม่

คำตอบ:


26

Aaah, การตรวจสอบชื่อโฮสต์หุ่นกระบอก ฝันร้าย ...

โดยค่าเริ่มต้นชื่อใดที่จะใช้ในการค้นหาnodeความหมายที่จะใช้จะขึ้นอยู่กับเนื้อหาของข้อเท็จจริง fqdn สิ่งที่แมปไปขึ้นอยู่กับสิ่งที่แตกต่างกันและใช่ DNS ย้อนกลับเป็นหนึ่งในนั้น - และเป็นที่ต้องการมากกว่าชื่อโฮสต์ของเครื่อง!

อย่างไรก็ตามชื่อนี้ (ปกติ) จะใช้เฉพาะในเวลาที่สร้างใบรับรอง คุณกำลังใช้node_nameตัวแปรในทางที่ผิด- ควรตั้งเป็น 'cert' หรือ 'facter' อย่างใดอย่างหนึ่ง fqdnพารามิเตอร์ยังจะเลิก

สิ่งที่คุณต้องการทำจริง ๆคือตั้งค่าcertnameพารามิเตอร์บนไคลเอนต์เป็นชื่อโหนดที่คุณต้องการใช้จากนั้นตั้งค่าnode_nameเป็นcert(หรือปล่อยทิ้งไว้เนื่องจากcertเป็นค่าเริ่มต้น) สิ่งนี้จะใช้ชื่อโหนดจาก CN ของใบรับรองที่ลูกค้านำเสนอและcertnameพารามิเตอร์ตรวจสอบให้แน่ใจว่ามีการตั้งค่าเป็นสิ่งที่เหมาะสมมากกว่าสิ่งที่ Facter ตัดสินใจที่จะเกิดขึ้นด้วยตัวเอง น่าเสียดายเนื่องจากคุณได้สร้าง certs ที่ "ผิด" แล้วคุณจะต้องสร้าง certs เหล่านั้นใหม่ ( rm -rf /var/lib/puppet/sslบนไคลเอนต์และเรียกใช้ Puppet อีกครั้ง) หลังจากที่คุณตั้งค่า config แล้วเพื่อสร้างและใช้งาน certs ที่ถูกต้อง

หากสิ่งนี้ฟังดูซับซ้อนเล็กน้อยคุณพูดถูก - ใช่ ยินดีต้อนรับสู่หุ่นกระบอก


เฮ้มี - เพื่อมองหาที่ puppetmaster และหุ่นเชิด - ทั้งสองมีnode_name=certการปรับปรุงcert_name=ns1.mydomain.comและfacter fqdnผลตอบแทนns1.mydomain.comที่ลูกค้า office.mydomain.comแต่ฉันยังคงสิ้นสุดกับข้อความผิดพลาดเหมือนกันเกี่ยวกับ
แคระ

1
Re: ชื่อรับรองคุณพูดถูกผิดฉันไม่ได้ตรวจสอบเอกสารอย่างที่ควรจะเป็น เกี่ยวกับการขาดการตรึงคุณจำเป็นต้องสร้างใบรับรองลูกค้าใหม่ ฉันได้อัปเดตคำตอบเพื่อให้ครอบคลุมแล้ว
womble

1
ที่จริง - ไฟล์ใบรับรองของฉันคือns1.mydomain.com.pemและ CN ก็เป็น ns1 ... นั่นคือ "ถูกต้อง" ใช่มั้ย office.mydomain.comคือสิ่งที่มันใช้เป็นชื่อโหนดและเห็นได้ชัดว่าเมื่อใดก็ตามที่พยายามดึงข้อเท็จจริงเมื่อวิเคราะห์คำแทนที่จะใช้ชื่อใบรับรองเป็นชื่อโหนด บางทีฉันหายไปอย่างอื่น? ไม่มีข้อเท็จจริงของฉันดูเหมือนจะถูกส่งผ่านไปยังแยกวิเคราะห์อย่างใดอย่างหนึ่งinfo($fqdn)ก็แสดงให้เห็นบรรทัดว่างอยู่ในขอบเขตที่ผมวางไว้ใน.
gnarf

ฉันไม่รู้ว่าคุณทำอะไรไปแล้ว แต่คุณจัดการกับสิ่งที่ดีขึ้นมาได้ ฉันคิดว่าคุณเอง
womble

การอัปเดตอื่น: ฉันจัดการเพื่อรับทุกสิ่ง "การตั้งค่าล่วงหน้า" จากด้านหลังสำนักงาน lan และทำให้ nameserver ใหม่มีชีวิต - ทันทีที่มันเริ่มใช้ DNS ย้อนกลับที่ถูกต้องข้อเท็จจริงทั้งหมดปรากฏอย่างถูกต้อง ...
gnarf

5

ฉันดูเหมือนจะโชคดี (แม้ว่ายังมีบางกรณีทดสอบที่ฉันต้องการเห็น) ในการแก้ไข/etc/hostsรายการ fqdn ที่ต้องการภายใต้ 127.0.0.1 เป็นตัวเลือกแรก ดูเหมือนว่ามันจะถูกตรวจจับได้อย่างถูกต้อง / ผ่านข้อเท็จจริงแล้ว แม้ว่าดูเหมือนว่าฉันยังต้องสร้างโหนดที่เรียกoffice.mydomain.comว่าสืบทอดโหนดที่ฉันต้องการ


สิ่งนี้ใช้ได้สำหรับฉัน (มีการลบไดเรกทอรี SSL ดังกล่าวข้างต้น)
bwizzy

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