Nous avons un environnement de production configuré avec Puppet, et voulons pouvoir mettre en place un environnement similaire sur nos machines de développement: un mélange de Red Hats, Ubuntus et OSX. Comme on pouvait s'y attendre, OSX est l'homme étrange ici, et malheureusement, j'ai beaucoup de mal à faire fonctionner cela.
Ma première tentative a été d'utiliser macports
, en utilisant la déclaration suivante:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
mais cela, malheureusement, génère l'erreur suivante:
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"
Ensuite, j'ai pensé que homebrew
j'essaierais. Aucun fournisseur de package n'est disponible par défaut, mais marionnette-homebrew semblait prometteur. Ici, je suis allé beaucoup plus loin et j'ai réussi à faire fonctionner l'installation.
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"] ],
}
Ici, je ne reçois aucune erreur. Mais RabbitMQ ne démarre pas non plus (comme il le fait si je fais un chargement manuel avec 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
Qu'est-ce que je fais mal?
Edit : Pour mémoire, nous faisons maintenant cela avec les machines virtuelles Vagrant sur nos machines OSX, mais la solution native serait toujours préférée.
sudo puppet apply manifest.pp
sur Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Rien là non plus, malheureusement.
puppet apply manifest.pp
?