ฉันค่อนข้างใหม่สำหรับ 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
คำเตือน: ไม่ใช้แคชในแค็ตตาล็อกที่ล้มเหลว
ข้อผิดพลาด: ไม่สามารถดึงแคตตาล็อก; วิ่งข้าม
นอกจากข้อความนี้แล้ว มันยังส่งคำเตือนเหล่านั้นกลับมาให้ฉันด้วย แต่รายการนั้นใหญ่กว่ามาก อย่างไรก็ตาม ฉันไม่คิดว่ามันน่าเป็นห่วงในตอนนี้