Puppetおよびlaunchdサービス?


15

Puppetで構成された実稼働環境があり、開発マシンで同様の環境(Red Hat、Ubuntu、OSXの混合)をセットアップできるようにしたいと考えています。予想されるように、OSXはここにいる奇妙な人であり、悲しいことに、これを機能させるのに苦労しています。

私の最初の試みはmacports、次の宣言を使用してを使用することでした:

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

しかし、悲しいことに、これは次のエラーを生成します。

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"

次にhomebrew、試してみようと思いました。デフォルトで利用可能なパッケージプロバイダーはありませんが、puppet-homebrewは有望と思われました。ここで、私はさらに遠くになり、実際にインストールを機能させることができました。

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

ここでは、エラーは表示されません。しかし、RabbitMQも起動しません(手動でロードを実行した場合のように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

何が間違っていますか?

編集:記録のために、OSXマシンではなくVagrant VMを使用してこれを行っていますが、ネイティブソリューションが優先されます。


どのバージョンのパペットを実行していますか?上記のマニフェストを試していますpuppet apply manifest.ppか?
チャッツ

デバッグには「実際の」エラーは含まれていないようです。関連するエントリがある場合、/ private / var / log / system.logをチェックできますか?
ジョンシウ

@chutz:sudo puppet apply manifest.ppPuppet 3.0.1、Facter 1.6.16で実行しています@JohnSiu:悲しいことに、何もありません。
ジョエルウェストバーグ

私はあなたが何らかの形で間違っているとは思わない。ただし、プログラミングのアプローチをもう一度確認する必要があると思います。
トビー

パペットが起動されたplistをロードしているかどうか知っていますか?そうでない場合は、再起動するまで待つか、インストール後にlaunchctl load plistステップを強制する必要があります。plistに実行フラグが設定されていることを確認してください。pctlおよびlaunchctl listの出力をサービス名とともに投稿できますか。
アレックス

回答:


1

残念ながら、構成管理ツールはデスクトップマシンでは実際にはうまく機能しません。Vagrantのようなツールを使用することをお勧めします(お持ちのとおり)。

Vagrantは、ハイパーバイザーを介して環境を複製できるオープンソースの仮想化ソフトウェアです。私のMacでは、OracleのVirtualBoxで使用しています(主にChefテスト用)。VirtualBoxも無料です。Vagrantの本来の目的は、開発者が一貫した環境で作業できるようにすることでした(つまり、探していたものであり、どのように動作させたいかではありません)。VagrantはPuppetと組み合わせることができます。これらの例をご覧ください。


0

一種のブルートフォースアプローチ:

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

node fancymac { include "rabbitmqosx }

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.