Score:1

การกำหนดค่ารายการหุ่นเชิดสำหรับการตรวจสอบอิมเมจนักเทียบท่า

ธง cn

ฉันค่อนข้างใหม่สำหรับ devops/ci/cd โปรดอดทนกับฉัน

ขณะนี้ ฉันกำลังได้รับการกำหนดค่ารายการหุ่นเชิดสำหรับการตรวจสอบอิมเมจนักเทียบท่า ให้ฉันลองจัดวาง:

ฉันมีเซิร์ฟเวอร์ต้นแบบหุ่นกระบอกพร้อมการกำหนดค่าต่อไปนี้:

  • รุ่น Puppetmaster: 5.5.10-4ubuntu3
  • ทั้งสองเซิร์ฟเวอร์เป็น linux 20.04
  • ทั้งหมดโฮสต์บน AWS

/etc/puppet/code/environments/production/manifests/site.pp

ค่าเริ่มต้นของโหนด {
    รวม 'นักเทียบท่า'
    นักเทียบท่า::ภาพ { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }
}

ทุกครั้งที่ฉันลองใช้คำสั่งการตรวจสอบใหม่ใน .pp ฉันจะรีสตาร์ทเซิร์ฟเวอร์ต้นแบบหุ่นด้วยคำสั่งต่อไปนี้: sudo systemctl รีสตาร์ทหุ่นเชิด

ฉันได้ติดตั้งโมดูลชื่อ garethr-docker บนเซิร์ฟเวอร์ทั้งสองของฉัน – เอเจนต์และมาสเตอร์

บนเซิร์ฟเวอร์สเลฟ / เอเจนต์ ฉันมีอิมเมจนักเทียบท่าอิมเมจนี้และทำงานอยู่: jorgemauriciodev/ubuntu-dockerfile-dev-v1.dll สำหรับขั้นตอนแรก ฉันแค่ต้องการตรวจสอบว่ามีอิมเมจอยู่ในเซิร์ฟเวอร์ทาสของฉันหรือไม่ ในภายหลัง ฉันจะหาวิธีเพื่อให้แน่ใจว่ามันทำงานหรือสร้างด้วย Dockerfile

บนเซิร์ฟเวอร์สเลฟ / เอเจนต์ ฉันรัน: ตัวแทนหุ่นกระบอก sudo âtest

และฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อกจากเซิร์ฟเวอร์ระยะไกล: ข้อผิดพลาด 500 บนเซิร์ฟเวอร์: ข้อผิดพลาดของเซิร์ฟเวอร์: ข้อผิดพลาดในการประเมิน: เกิดข้อผิดพลาดขณะประเมินการเรียกใช้ฟังก์ชัน ไม่พบคลาส ::docker สำหรับ ip-123-123-123-123.us-east- 2.compute.internal (ไฟล์: /etc/puppet/code/environments/production/manifests/site.pp, บรรทัด: 2, คอลัมน์: 5) บนโหนด ip-123-123-123-123.us-east-2 .compute.internal คำเตือน: ไม่ใช้แคชในแค็ตตาล็อกที่ล้มเหลว ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อก; วิ่งข้าม

ใครมีความคิดเกี่ยวกับสิ่งที่ฉันผิดพลาดเกี่ยวกับไฟล์ Manifest ของหุ่นกระบอก

แก้ไข 1:

ฉันทำการเปลี่ยนแปลงบางอย่างที่แนะนำ ตอนนี้ไฟล์ของฉันมีชื่ออื่นและเปลี่ยนเนื้อหา: /etc/puppet/code/environments/production/manifests/init.pp

รวม 'นักเทียบท่า'
คลาส { 'นักเทียบท่า':
  รุ่น => 'ล่าสุด',
}
นักเทียบท่า::ภาพ { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }

ยังคงส่งคืนข้อความแสดงข้อผิดพลาดเดิมให้ฉัน

นี่คือข้อความเต็ม:

/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: คำเตือน: เลิกใช้แล้ว Object#=~ ถูกเรียกบน Puppet::Transaction::Report; มันจะคืนค่าศูนย์เสมอ
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: คำเตือน: เลิกใช้แล้ว Object#=~ ถูกเรียกบน Puppet::Transaction::Report; มันจะคืนค่าศูนย์เสมอ
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
ข้อมูล: การใช้สภาพแวดล้อมที่กำหนดค่า 'การผลิต'
ข้อมูล: กำลังดึงข้อมูลปลั๊กอิน
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: คำเตือน: เลิกใช้แล้ว Object#=~ ถูกเรียกบน Puppet::Transaction::Report; มันจะคืนค่าศูนย์เสมอ
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: คำเตือน: URI.unescape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
ข้อมูล: กำลังเรียกปลั๊กอิน
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: คำเตือน: เลิกใช้แล้ว Object#=~ ถูกเรียกบน Puppet::Transaction::Report; มันจะคืนค่าศูนย์เสมอ
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: คำเตือน: URI.unescape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
ข้อมูล: กำลังดึงโลแคล
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: คำเตือน: เลิกใช้แล้ว Object#=~ ถูกเรียกบน Puppet::Transaction::Report; มันจะคืนค่าศูนย์เสมอ
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: คำเตือน: URI.unescape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อกจากเซิร์ฟเวอร์ระยะไกล: ข้อผิดพลาด 500 บนเซิร์ฟเวอร์: ข้อผิดพลาดของเซิร์ฟเวอร์: ข้อผิดพลาดในการประเมิน: เกิดข้อผิดพลาดขณะประเมินการเรียกใช้ฟังก์ชัน ไม่พบคลาส ::docker สำหรับ ip-172-31-21-116.us-east- 2.compute.internal (ไฟล์: /etc/puppet/code/environments/production/manifests/init.pp, บรรทัด: 1, คอลัมน์: 1) บนโหนด ip-172-31-21-116.us-east-2 .compute.internal
คำเตือน: ไม่ใช้แคชในแค็ตตาล็อกที่ล้มเหลว
ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อก; วิ่งข้าม
/usr/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:126: คำเตือน: $SAFE จะกลายเป็นตัวแปรส่วนกลางปกติใน Ruby 3.0
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย
/usr/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:126: คำเตือน: $SAFE จะกลายเป็นตัวแปรส่วนกลางปกติใน Ruby 3.0

แก้ไข 2:

ฉันติดตั้งโมดูลเพิ่มเติมบนเซิร์ฟเวอร์หลักและเซิร์ฟเวอร์สเลฟ/เอเจนต์ด้วยคำสั่งนี้:

โมดูลหุ่นเชิด sudo ติดตั้ง puppetlabs-docker --version 4.1.2

และมันยังคงส่งข้อความแสดงข้อผิดพลาดกลับมาให้ฉัน แต่ตอนนี้ดูเหมือนว่าจะเป็นข้อความอื่น ดังนั้นอาจเป็นปัญหาเกี่ยวกับไวยากรณ์ในขณะนี้

นี่คือส่วนสำคัญของข้อความ

ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อกจากเซิร์ฟเวอร์ระยะไกล: ข้อผิดพลาด 500 บนเซิร์ฟเวอร์: ข้อผิดพลาดของเซิร์ฟเวอร์: ข้อผิดพลาดในการประเมิน: ข้อผิดพลาดขณะประเมิน Resource Statement, การประกาศซ้ำ: มีการประกาศคลาส [Docker] แล้ว; ประกาศใหม่ไม่ได้ (ไฟล์: /etc/puppet/code/environments/production/manifests/init.pp บรรทัด: 3) (ไฟล์: /etc/puppet/code/environments/production/manifests/init.pp บรรทัด: 3 คอลัมน์: 1) บนโหนด ip-123-123-123-123.us-east-2.compute.internal
คำเตือน: ไม่ใช้แคชในแค็ตตาล็อกที่ล้มเหลว
ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อก; วิ่งข้าม

นอกจากข้อความนี้แล้ว มันยังส่งคำเตือนเหล่านั้นกลับมาให้ฉันด้วย แต่รายการนั้นใหญ่กว่ามาก อย่างไรก็ตาม ฉันไม่คิดว่ามันน่าเป็นห่วงในตอนนี้

Score:0
ธง ng

ข้อผิดพลาด 500 ในหุ่นหมายถึงโค้ดที่เขียนไม่ดี คุณช่วยแชร์การกำหนดค่าทั้งหมด (init.pp) ได้ไหม แล้วฉันจะบอกคุณจากตรงนั้น

คลาส { 'นักเทียบท่า':
  รุ่น => 'ล่าสุด',
}

นักเทียบท่า::ภาพ { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }

ข้อมูลเพิ่มเติมมีอยู่ที่นี่: https://forge.puppet.com/modules/puppetlabs/docker

Jorge Mauricio avatar
cn flag
ตกลง. นั่นคือไฟล์เต็ม เอาล่ะ ฉันจะเปลี่ยนชื่อไฟล์และตรวจสอบว่าถูกต้อง ควรอยู่ในแนวทางที่วางไว้หรือไม่?
Zhivko Zhelev avatar
ng flag
โดยปกติจะเป็น ```/etc/puppetlabs/code/environments/production/manifests/init.pp```
Zhivko Zhelev avatar
ng flag
โปรดดูที่คำตอบ นี่คือวิธีเขียน ลองคัดลอก/วาง และไฟล์ไม่จำเป็นต้องเป็น ```init.pp``` ในกรณีของคุณ ขออภัยด้วย
Jorge Mauricio avatar
cn flag
ขอบคุณสำหรับความช่วยเหลือ ฉันทำตามที่คุณโพสต์ทุกประการ รีสตาร์ทเซิร์ฟเวอร์ต้นแบบหุ่นกระบอก รัน sudo puppet agent --test และยังคงได้รับข้อผิดพลาดเดิม ฉันไม่แน่ใจว่าฉันติดตั้งโมดูล garethr-docker ถูกต้องหรือไม่ ฉันใช้ CMD นี้: โมดูลหุ่นกระบอก sudo ติดตั้ง garethr-docker ฉันควรติดตั้งบน master o slave หรือไม่ และมีวิธีตรวจสอบว่าฉันติดตั้งถูกต้องหรือไม่? หรือมีอะไรขาดหายไปอีก?
Zhivko Zhelev avatar
ng flag
ควรใช้ ```r10k``` ซึ่งเป็นเครื่องมือจัดการแพ็คเกจในตัวในหุ่นเชิด ลอง ```sudo puppetrun --noop``` บนไคลเอ็นต์และโปรดให้ผลลัพธ์ ฉันไม่รู้ว่าคุณตั้งค่าสภาพแวดล้อมหุ่นกระบอกอย่างไร และไม่ใช่เรื่องง่ายที่จะตอบตรงๆ
Jorge Mauricio avatar
cn flag
ฉันเข้าใจ. ฉันรู้ว่าฉันเกือบจะถึงแล้ว เพราะฉันทดสอบไฟล์ manifest .pp ด้วยคำสั่งอื่นๆ ที่ได้ผล ตัวอย่างเช่น: ``` ไฟล์ {'/tmp/it_works.txt': มั่นใจ => ปัจจุบัน โหมด => '0644', เนื้อหา => "ใช้ได้กับ ${ipaddress_eth0}!\n", }``` - ทำงานและยัง ``` บริการ { 'นักเทียบท่า': ให้แน่ใจว่า => ทำงาน, }``` - ทำงาน เมื่อฉันรันคำสั่งที่คุณเพิ่งส่งมาให้ฉันตอนนี้ (sudo puppet run --noop) มันจะส่งข้อความนี้: /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย ข้อผิดพลาด: คำสั่งย่อย Unknown Puppet 'run' ดู 'ความช่วยเหลือเกี่ยวกับหุ่นเชิด' สำหรับความช่วยเหลือเกี่ยวกับหุ่นเชิดที่มีอยู่
Jorge Mauricio avatar
cn flag
คิดว่าฉันควรจะเรียกใช้สิ่งนี้ใช่ไหม: sudo หุ่นกระบอกตัวแทน --noop หากเป็นกรณีนี้ นี่คือสิ่งที่ปรากฏสำหรับฉัน: /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: คำเตือน: URI.escape ล้าสมัย /usr/lib/ruby/vendor_ruby/puppet/util.rb:315: คำเตือน: เลิกใช้แล้ว Object#=~ ถูกเรียกบน Puppet::Transaction::Report; มันจะคืนค่าศูนย์เสมอ (ยาวไป 3 บรรทัด)
Zhivko Zhelev avatar
ng flag
ตกลง โปรดเรียกใช้สิ่งนี้บนเซิร์ฟเวอร์และตัวแทน ```โมดูลหุ่นกระบอก ติดตั้งหุ่นกระบอก-นักเทียบท่า --เวอร์ชัน 4.1.2``` และลองอีกครั้งด้วย ```หุ่นกระบอกตัวแทน --test```
Jorge Mauricio avatar
cn flag
ตกลง. ฉันคิดว่าเรากำลังพัฒนา ขอบคุณสำหรับความช่วยเหลือฉันติดตั้งโมดูลเพิ่มเติมทั้งบนมาสเตอร์และเอเจนต์ เริ่มบริการต้นแบบหุ่นกระบอกใหม่และรัน ``` sudo puppet agent --test``` อีกครั้ง ให้ข้อความเตือนที่ใหญ่กว่าและข้อความแสดงข้อผิดพลาดอื่นแก่ฉัน ดูเหมือนว่าตอนนี้อาจเป็นปัญหาเกี่ยวกับไวยากรณ์ ฉันได้แก้ไขคำถามและใส่คำเตือนข้อผิดพลาดใหม่แล้ว
Zhivko Zhelev avatar
ng flag
ลบ ``` รวม 'นักเทียบท่า' ``` และคุณน่าจะไปได้ดี :) บรรทัดนี้เหมือนกับ ``` class { 'docker':``` ทั้งสองจะรวมไว้ เฉพาะบรรทัดแรกคุณไม่ได้ทำอะไรเลย
Jorge Mauricio avatar
cn flag
ทำงาน! ขอบคุณล้าน!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา