วิธีการตั้งค่าเส้นทางเมื่อใช้โมดูลหุ่นเชิดเดียว?


12

ฉันพยายามเรียกใช้โมดูลเดียวเช่นนี้

puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'

อย่างไรก็ตามฉันได้รับข้อผิดพลาดชนิดนี้แสดงว่าไม่ได้ตั้งค่าพา ธ

Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.

ฉันไม่ต้องการระบุเส้นทางอย่างชัดเจนในทุกตำแหน่งดังกล่าวและทำงานได้ดีเมื่อทำงานเป็นส่วนหนึ่งของการเรียกใช้หุ่นกระบอกแบบเต็ม ฉันจะระบุพา ธ เมื่อใช้งานโมดูลเดียวได้อย่างไร


1
คุณช่วยตอบคำตอบที่เหมาะสมได้ไหม?
kenorb

คำตอบ:


15

คำสั่งในExecทรัพยากรจะต้องมีคุณสมบัติครบถ้วน (เช่น/usr/bin/testแทนtest) หรือต้องตั้งค่าpathแอตทริบิวต์ของExecทรัพยากรนั้น

หากคุณสามารถแก้ไขรายการหุ่นกระบอกคุณสามารถเพิ่มคำจำกัดความต่อไปนี้เพื่อตั้งค่าpathแอตทริบิวต์เริ่มต้นสำหรับExecทรัพยากรทั้งหมดไปที่/bin:

Exec { path => "/bin" }

ในฐานะที่เป็นวิธีแก้ปัญหาสกปรก (มากกว่าหรือน้อยกว่า) คุณสามารถตั้งค่าเริ่มต้นpathสำหรับExecทรัพยากรใด ๆในบรรทัดคำสั่ง:

$ puppet apply --verbose -e 'Exec { path => "/bin" }' your_manifest.pp

พอยน์เตอร์เอกสาร:


2

นั่น .. ไม่ควรทำงานเป็นส่วนหนึ่งของการวิ่งเต็ม มันต้องการเส้นทางแบบเต็มไปยังปฏิบัติการในunlessคำสั่ง บางทีคุณอาจมีเส้นทางที่ตั้งอยู่ในไฟล์ทั่วโลกที่เป็นส่วนหนึ่งของการทำงานเต็มรูปแบบของคุณ?

ลองunless => '/usr/bin/[ -e "${logfile}" ]'แทน


1

ฉันเห็นด้วยกับ Shane ว่าอาจมีการกำหนดเส้นทางเริ่มต้นในรายการที่มีขอบเขตทั่วโลก คุณสามารถทำเช่นเดียวกัน แต่คุณไม่สามารถผ่านมันเป็นอาร์กิวเมนต์ดังนั้นใช้ stdin:

$ puppet apply -v --modulepath=moduleshere --noop <<EOF
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin" }
include myclass
EOF

หรือใส่ Exec และรวมถึงสายเข้าและการใช้งานแล้วexample.pppuppet apply -v ... example.pp


1

คุณต้องใช้เส้นทางที่ผ่านการรับรองโดยสมบูรณ์

ตัวอย่างเช่น:

exec { "sample":
  command => "/usr/bin/test",
}

หรือ:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.