Kukla ve fırlatma hizmetleri?


15

Kukla ile yapılandırılmış bir üretim ortamımız var ve geliştirme makinelerimizde benzer bir ortam kurmak istiyoruz: Red Hats, Ubuntus ve OSX karışımı. Tahmin edilebileceği gibi, OSX buradaki garip bir adam ve ne yazık ki, bunun işe yaramasıyla ilgili çok sorun yaşıyorum.

İlk denemem macportsşu beyanı kullanarak kullanmaktı:

package { 'rabbitmq-server':
    ensure   => installed,
    provider => macports,
}

ancak bu ne yazık ki aşağıdaki hatayı oluşturur:

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"

Sıradaki, homebrewdenemek istediğimi düşündüm . Varsayılan olarak hiçbir paket sağlayıcısı yoktur, ancak kukla-homebrew umut verici görünüyordu. Burada çok daha uzağa gittim ve aslında kurulumu işe koymayı başardım.

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"] ],
}

Burada herhangi bir hata almıyorum. Ancak RabbitMQ da başlamaz (ile manuel yük yaptığımda olduğu gibi 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

Neyi yanlış yapıyorum?

Düzenleme : Kayıt için, şimdi bunu OSX makinelerimizde Vagrant VM'lerle yapıyoruz, ancak yerel çözüm yine de tercih edilecektir.


Hangi kukla sürümünü kullanıyorsunuz? Yukarıdaki tezahürleri deniyor musunuz puppet apply manifest.pp?
chutz

Hata ayıklama 'gerçek' hata içermiyor gibi görünüyor. İlgili girişler olup olmadığını /private/var/log/system.log adresini ziyaret edebilir misiniz?
John Siu

@chutz: sudo puppet apply manifest.ppKukla 3.0.1 üzerinde çalışıyor, Facter 1.6.16 @JohnSiu: Ne yazık ki orada da hiçbir şey yok.
Joel Westberg

Hiçbir şekilde yanlış gittiğini sanmıyorum. Ancak, programlama yaklaşımını bir kez daha kontrol etmeniz gerektiğini düşünüyorum.
Toby

Kuklanın fırlatma plistini yükleyip yüklemediğini biliyor musunuz? Değilse, yeniden başlatmayı beklemeniz veya kurulumdan sonra bir başlatctl yükleme plist adımını zorlamanız gerekir. Plist'in üzerinde yüklü çalışma bayrağı bulunduğundan emin olun. Hizmet adı ile launchctl listesinin plist ve çıktısını gönderebilir misiniz?
Alex

Yanıtlar:


1

Ne yazık ki, yapılandırma yönetimi araçları masaüstü makineleri için gerçekten iyi çalışmıyor. Vagrant gibi bir araç kullanmak çok daha iyidir (sizin gibi).

Vagrant, hipervizörler aracılığıyla ortamları çoğaltmanıza izin veren açık kaynaklı bir sanallaştırma yazılımıdır. Mac bilgisayarımda Oracle'ın VirtualBox ile kullanıyorum (çoğunlukla Şef testi için). VirtualBox da ücretsizdir. Vagrant'ın asıl amacı, geliştiricilerin çalışmak için tutarlı ortamlara sahip olmasını sağlamaktı (yani: ne aradığınızı, ancak nasıl çalışmasını istediğinizi değil). Vagrant, Kukla ile birleştirilebilir, bu örneklere göz atın .


0

Bir çeşit kaba kuvvet yaklaşımı:

class rabbitmqosx {    
    exec { "rabbitmqosx":
           command =>  "/path/to/rabbitmq",
           unless => [ 
                       "/bin/ps |grep -c rabbitmq" 
                     ]
         }

node fancymac { include "rabbitmqosx }

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.