เรามีสภาพแวดล้อมการผลิตที่กำหนดค่าด้วย Puppet และต้องการที่จะสามารถตั้งค่าสภาพแวดล้อมที่คล้ายกันในเครื่องพัฒนาของเรา: การผสมผสานระหว่าง Red Hats, Ubuntus และ OSX อย่างที่คาดไว้ OSX เป็นคนแปลก ๆ ที่นี่และน่าเศร้าที่ฉันมีปัญหามากมายกับการทำให้เรื่องนี้ทำงานได้
ความพยายามครั้งแรกของฉันคือการใช้macports
โดยใช้การประกาศต่อไปนี้:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
แต่สิ่งนี้น่าเศร้าที่สร้างข้อผิดพลาดต่อไปนี้:
Error: /Stage[main]/Rabbitmq/Package[rabbitmq-server]: Could not evaluate: Execution of '/opt/local/bin/port -q installed rabbitmq-server' returned 1: usage: cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-s] [-d delim] [file ...]
while executing
"exec dscl -q . -read /Users/$env(SUDO_USER) NFSHomeDirectory | cut -d ' ' -f 2"
(procedure "mportinit" line 95)
invoked from within
"mportinit ui_options global_options global_variations"
ต่อไปฉันคิดว่าฉันจะhomebrew
ลอง โดยค่าเริ่มต้นจะไม่มีผู้ให้บริการแพ็คเกจ แต่หุ่นเชิด - โฮมบรูว์ดูเหมือนจะมีแนวโน้ม ที่นี่ฉันไปไกลกว่านั้นมากและจริง ๆ แล้วจัดการเพื่อให้การติดตั้งใช้งานได้
package { 'rabbitmq':
ensure => installed,
provider => brew,
}
file { "plist":
path => "/Library/LaunchDaemons/homebrew.mxcl.rabbitmq.plist",
source => "/usr/local/opt/rabbitmq/homebrew.mxcl.rabbitmq.plist",
ensure => present,
owner => root,
group => wheel,
mode => 0644,
}
service { "homebrew.mxcl.rabbitmq":
enable => true,
ensure => running,
provider => "launchd",
require => [ File["/Library/LaunchDaemons/homebrew.mxcl.rabbitmq.plist"] ],
}
ที่นี่ฉันไม่ได้รับข้อผิดพลาดใด ๆ แต่ RabbitMQ ก็ไม่ได้เริ่มต้นด้วย (เช่นถ้าฉันโหลดด้วยตัวเองlaunchctl
)
[... snip ...]
Debug: Executing '/bin/launchctl list'
Debug: Executing '/usr/bin/plutil -convert xml1 -o /dev/stdout
/Library/LaunchDaemons/homebrew.mxcl.rabbitmq.plist'
Debug: Executing '/usr/bin/plutil -convert xml1 -o /dev/stdout
/var/db/launchd.db/com.apple.launchd/overrides.plist'
Debug: /Schedule[weekly]: Skipping device resources because running on a host
Debug: /Schedule[puppet]: Skipping device resources because running on a host
Debug: Finishing transaction 2248294820
Debug: Storing state
Debug: Stored state in 0.01 seconds
Finished catalog run in 25.90 seconds
ผมทำอะไรผิดหรือเปล่า?
แก้ไข : สำหรับเร็กคอร์ดตอนนี้เรากำลังทำสิ่งนี้กับ Vagrant VMs แทนบนเครื่อง OSX ของเรา แต่วิธีดั้งเดิมยังคงเป็นที่ต้องการ
sudo puppet apply manifest.pp
บน Puppet 3.0.1, Facter 1.6.16 @JohnSiu: ไม่มีอะไรที่น่าเศร้าเลย
puppet apply manifest.pp
หรือไม่