Tenemos un entorno de producción configurado con Puppet, y queremos poder configurar un entorno similar en nuestras máquinas de desarrollo: una mezcla de Red Hats, Ubuntus y OSX. Como era de esperar, OSX es el hombre extraño aquí, y lamentablemente, estoy teniendo muchos problemas para que esto funcione.
Mi primer intento fue usar macports
, usando la siguiente declaración:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
pero esto, lamentablemente, genera el siguiente error:
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"
A continuación, pensé que lo homebrew
intentaría. No hay un proveedor de paquetes disponible por defecto, pero puppet-homebrew parecía prometedor. Aquí, llegué mucho más lejos, y de hecho logré que la instalación funcionara.
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"] ],
}
Aquí no recibo ningún error. Pero RabbitMQ tampoco se inicia (como lo hace si hago una carga manual 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
¿Qué estoy haciendo mal?
Editar : Para el registro, ahora estamos haciendo esto con máquinas virtuales de Vagrant en nuestras máquinas OSX, pero la solución nativa aún sería preferible.
puppet apply manifest.pp
?sudo puppet apply manifest.pp
en Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Nada allí tampoco, lamentablemente.Respuestas:
Desafortunadamente, las herramientas de administración de configuración realmente no funcionan bien para máquinas de escritorio. Es mucho mejor usar una herramienta como Vagrant (como la que tiene).
Vagrant es un software de virtualización de código abierto que le permite replicar entornos a través de hipervisores. En mi Mac, lo uso con VirtualBox de Oracle (principalmente para pruebas de Chef). VirtualBox también es gratis. La intención original de Vagrant era permitir a los desarrolladores tener entornos consistentes para trabajar (es decir: lo que estaba buscando pero no cómo quería que funcionara). Vagrant se puede combinar con Puppet, mira estos ejemplos .
fuente
Una especie de enfoque de fuerza bruta:
fuente
No estoy seguro de si esto sigue siendo un problema, pero parece que fue un error con el proveedor de launchd corregido en 3.1.0. Error: https://projects.puppetlabs.com/issues/16271
fuente