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.
puppet apply manifest.pp
?sudo puppet apply manifest.pp
auf Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Leider gibt es auch nichts.Antworten:
Leider funktionieren Konfigurationsmanagement-Tools auf Desktop-Computern nicht wirklich gut. Es ist viel besser, ein Tool wie Vagrant zu verwenden (wie Sie es getan haben).
Vagrant ist eine Open-Source-Virtualisierungssoftware, mit der Sie Umgebungen über Hypervisoren replizieren können. Auf meinem Mac verwende ich es mit der VirtualBox von Oracle (hauptsächlich für Chef-Tests). VirtualBox ist ebenfalls kostenlos. Die ursprüngliche Absicht von Vagrant war es, Entwicklern die Möglichkeit zu geben, in konsistenten Umgebungen zu arbeiten (dh was Sie gesucht haben, aber nicht, wie Sie es wollten). Vagrant kann mit Puppet kombiniert werden. Schauen Sie sich diese Beispiele an .
quelle
Eine Art Brute-Force-Ansatz:
quelle
Ich bin mir nicht sicher, ob dies immer noch ein Problem ist, aber es sieht so aus, als wäre dies ein Fehler mit dem in 3.1.0 behobenen launchd-Anbieter. Fehler: https://projects.puppetlabs.com/issues/16271
quelle