Wir haben eine mit Puppet konfigurierte Produktionsumgebung und möchten eine ähnliche Umgebung auf unseren Entwicklungsmaschinen einrichten können: eine Mischung aus Red Hats, Ubuntus und OSX. Wie zu erwarten ist, ist OSX der seltsame Mann hier draußen, und leider habe ich große Probleme, dies zum Laufen zu bringen.
Mein erster Versuch war macports
mit der folgenden Deklaration:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
Dies erzeugt jedoch leider den folgenden Fehler:
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"
Als nächstes dachte ich, ich würde es homebrew
versuchen. Standardmäßig ist kein Paketanbieter verfügbar, aber Puppet-Homebrew schien vielversprechend. Hier bin ich viel weiter gekommen und habe es tatsächlich geschafft, die Installation zum Laufen zu bringen.
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"] ],
}
Hier bekomme ich keinen Fehler. Aber RabbitMQ startet auch nicht (wie beim manuellen Laden mit 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
Was mache ich falsch?
Bearbeiten : Um es festzuhalten, wir machen dies jetzt mit Vagrant-VMs auf unseren OSX-Rechnern, aber die native Lösung wäre immer noch vorzuziehen.
sudo puppet apply manifest.pp
auf Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Leider gibt es auch nichts.
puppet apply manifest.pp
?