Abbiamo un ambiente di produzione configurato con Puppet e vogliamo essere in grado di impostare un ambiente simile sui nostri computer di sviluppo: un mix di Red Hats, Ubuntus e OSX. Come ci si potrebbe aspettare, OSX è l'uomo strano qui fuori e, purtroppo, ho molti problemi a farlo funzionare.
Il mio primo tentativo è stato utilizzando macports
, usando la seguente dichiarazione:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
ma questo, purtroppo, genera il seguente errore:
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"
Successivamente, ho pensato di homebrew
provare. Non esiste un provider di pacchetti disponibile per impostazione predefinita, ma il burattino-homebrew sembrava promettente. Qui, sono andato molto più lontano e in realtà sono riuscito a far funzionare l'installazione.
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"] ],
}
Qui, non ricevo alcun errore. Ma RabbitMQ non si avvia neanche (come succede se eseguo un caricamento manuale con 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
Che cosa sto facendo di sbagliato?
Modifica : per la cronaca, ora lo stiamo facendo con le macchine virtuali Vagrant invece sulle nostre macchine OSX, ma la soluzione nativa sarebbe comunque preferita.
sudo puppet apply manifest.pp
on Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Niente di tutto ciò, purtroppo.
puppet apply manifest.pp
?