Kami memiliki lingkungan produksi yang dikonfigurasi dengan Puppet, dan ingin dapat membuat lingkungan yang serupa pada mesin pengembangan kami: campuran Red Hats, Ubuntus dan OSX. Seperti yang mungkin diharapkan, OSX adalah pria aneh di sini, dan sayangnya, saya mengalami banyak masalah untuk mendapatkan ini berfungsi.
Upaya pertama saya menggunakan macports
, menggunakan deklarasi berikut:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
tetapi ini, sayangnya, menghasilkan kesalahan berikut:
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"
Selanjutnya, saya pikir saya akan homebrew
mencoba. Tidak ada penyedia paket yang tersedia secara default, tetapi boneka-homebrew tampak menjanjikan. Di sini, saya mendapatkan lebih jauh, dan benar-benar berhasil menginstal agar berfungsi.
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"] ],
}
Di sini, saya tidak mendapatkan kesalahan. Tapi RabbitMQ juga tidak memulai (seperti halnya jika saya melakukan pemuatan manual 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
Apa yang saya lakukan salah?
Sunting : Sebagai catatan, kami sekarang melakukan ini dengan Vagrant VMs sebagai gantinya pada mesin OSX kami, tetapi solusi asli masih lebih disukai.
puppet apply manifest.pp
?sudo puppet apply manifest.pp
on Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Tidak ada apa-apa di sana, sayangnya.Jawaban:
Sayangnya, alat manajemen konfigurasi tidak bekerja dengan baik untuk mesin desktop. Jauh lebih baik menggunakan alat seperti Vagrant (seperti yang Anda miliki).
Vagrant adalah perangkat lunak virtualisasi open-source yang memungkinkan Anda untuk mereplikasi lingkungan melalui hypervisor. Di Mac saya, saya menggunakannya dengan Oracle's VirtualBox (kebanyakan untuk pengujian Chef). VirtualBox juga gratis. Maksud asli dari Vagrant adalah untuk memungkinkan pengembang untuk memiliki lingkungan yang konsisten untuk bekerja (yaitu: apa yang Anda cari tetapi tidak bagaimana Anda ingin itu berfungsi). Vagran dapat dikombinasikan dengan Wayang, lihat contoh-contoh ini .
sumber
Semacam pendekatan brute force:
sumber
Tidak yakin apakah ini masih merupakan masalah tetapi sepertinya ini adalah bug dengan penyedia launchd diperbaiki dalam 3.1.0. Bug: https://projects.puppetlabs.com/issues/16271
sumber