ตั้งค่าสภาพแวดล้อมพร็อกซีในการดาวน์โหลด Puppet exec
ตั้งค่าสภาพแวดล้อมบนรีซอร์ส exec ที่รัน Wget พร้อมตัวป้องกันไฟล์ที่เสร็จสมบูรณ์สำหรับการดาวน์โหลด
รีซอร์ส exec ของ Puppet มีแอตทริบิวต์ environment วางค่าพร็อกซีไว้บนรีซอร์สที่เรียกตัวดาวน์โหลด:
file { '/var/cache/myapp':
ensure => directory,
}
exec { 'fetch-artifact':
provider => shell,
command => '/usr/bin/wget --tries=1 --timeout=20 -O /var/cache/myapp/artifact.part https://downloads.example.net/artifact-v1.bin && /usr/bin/mv /var/cache/myapp/artifact.part /var/cache/myapp/artifact-v1.bin',
environment => [
'http_proxy=http://proxy.example.net:8080',
'https_proxy=http://proxy.example.net:8080',
],
creates => '/var/cache/myapp/artifact-v1.bin',
require => File['/var/cache/myapp'],
}
ตัวอย่างถือว่า Wget และ mv อยู่ที่เส้นทางเหล่านั้น การถ่ายโอนที่ล้มเหลวจะทิ้งชื่อเส้นทางชั่วคราวไว้ ชื่อเส้นทางสุดท้ายจะถูกติดตั้งหลัง Wget สำเร็จเท่านั้น จากนั้นตัวป้องกัน creates จะข้ามการทำงานครั้งต่อๆ ไปตราบเท่าที่ไฟล์เวอร์ชันที่เสร็จสมบูรณ์ยังมีอยู่
อาร์เรย์สภาพแวดล้อมให้ค่าเมื่อ Puppet รันคำสั่งนี้ รายการ HTTP จากรายการพร็อกซี HTTPสามารถให้ URL พร็อกซีสำหรับการดาวน์โหลดอาร์ติแฟกต์สาธารณะที่ได้รับอนุญาตเมื่อ Wget ไม่มีข้อมูลรับรองพร็อกซีที่กำหนดค่าหรือเก็บไว้ การส่งออกที่ทำโดยรีซอร์ส exec อื่นมีผลเฉพาะในกระบวนการอื่นนั้นและทายาทของมัน การเรียงลำดับรีซอร์สสองตัวไม่ได้ทำให้สภาพแวดล้อมเชลล์ของตัวแรกคงอยู่ในตัวที่สอง
เก็บสภาพแวดล้อมของรีซอร์สนี้ไว้กับรีซอร์ส การดำเนินการ Puppet อื่นๆ สามารถใช้เส้นทางที่กำหนดค่าไว้ของตนเองโดยไม่เปลี่ยนไฟล์เริ่มต้นของ Wget ทั้งเครื่อง