Temos um ambiente de produção configurado com o Puppet e queremos poder configurar um ambiente semelhante em nossas máquinas de desenvolvimento: uma mistura de Red Hats, Ubuntus e OSX. Como era de se esperar, o OSX é o homem estranho por aqui e, infelizmente, estou tendo muitos problemas para fazer isso funcionar.
Minha primeira tentativa foi usando macports
, usando a seguinte declaração:
package { 'rabbitmq-server':
ensure => installed,
provider => macports,
}
mas isso, infelizmente, gera o seguinte erro:
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"
Em seguida, pensei em homebrew
tentar. Por padrão, não há nenhum provedor de pacotes disponível, mas o boneco-homebrew parecia promissor. Aqui, fui muito mais longe e consegui fazer com que a instalação funcionasse.
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"] ],
}
Aqui, não recebo nenhum erro. Mas o RabbitMQ também não inicia (como acontece se eu carregar manualmente 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
O que estou fazendo de errado?
Edit : Para o registro, agora estamos fazendo isso com VMs Vagrant em nossas máquinas OSX, mas a solução nativa ainda seria a preferida.
puppet apply manifest.pp
?sudo puppet apply manifest.pp
no Puppet 3.0.1, Facter 1.6.16 @JohnSiu: Nada também, infelizmente.Respostas:
Infelizmente, as ferramentas de gerenciamento de configuração não funcionam realmente bem em máquinas de desktop. É muito melhor usar uma ferramenta como o Vagrant (como você tem).
O Vagrant é um software de virtualização de código aberto que permite replicar ambientes por meio de hipervisores. No meu Mac, eu o uso com o VirtualBox da Oracle (principalmente para testes de Chef). O VirtualBox também é gratuito. A intenção original do Vagrant era permitir que os desenvolvedores tivessem ambientes consistentes para trabalhar (ou seja: o que você estava procurando, mas não como queria que ele funcionasse). O Vagrant pode ser combinado com o Puppet, veja estes exemplos .
fonte
Uma espécie de abordagem de força bruta:
fonte
Não tenho certeza se isso ainda é um problema, mas parece que houve um erro com o provedor launchd corrigido no 3.1.0. Bug: https://projects.puppetlabs.com/issues/16271
fonte