web-dev-qa-db-ja.com

デーモンを起動せずにpuppetまたはchefを使用する方法はありますか?

デーモンなどを起動せずに人形やシェフのレシピを使用する方法はありますか?面倒な作業を一切せずに、ファイルを解釈して適用できるようにしたいと思います。

そうでない場合は、フットプリントなしでランプスタックなどの任意のものをセットアップするために使用できる代替製品はありますか?

6
Adrian

単一のマニフェストをローカルに適用するだけの場合は、puppet <file>.ppを実行できます。とはいえ、管理するサーバーの数が少ない場合は、1つのpuppetmasterdが大きな不便になることはありません。

4
rodjek

Chefは、実行中のデーモンプロセスやサーバーを必要としない「solo」モードで使用できます。クックブックのリモートURIを指すことができるので、設定のためだけにファイルを全体に配布する必要はありません。

ルートアクセスを必要としないソフトウェアプログラムをインストール/構成する場合(つまり、ホームディレクトリにインストールする場合、1024を超えるポート)、chef-soloを使用するためにルートアクセスも必要ありません。ソロで使用するために作成したレシピはChefクライアント/サーバー環境でも使用できるため、これはChefの使用を開始する最も簡単な方法でもあり、簡単にスケールアップできます。

詳細については、chef wikiの Chef Soloページ を参照してください。

3
jtimberman

rodjekのように、コマンドpuppetを使用して単一のマニフェストを実行できます。しかし、puppetmasterdにコンパイルプロセスを処理させないことで、モジュールの編成と自動読み込みに関連する優れた魔法を大量に排除することになります。マニフェストを手動で配布する必要があることは言うまでもありません。

あなたの質問から、あなたはサーバーよりもクライアントのフットプリントについてもっと心配しているように思えます。デーモンモードでpuppetdを実行する必要はなく、私も含めて、オプション--onetime --no-daemonizeを使用してcronから定期的に呼び出すことを好む人もいることに注意してください。これを何度でも呼び出すか、呼び出さないかを選択できます。

3
Dan Carley

Gitを使用する:ただし、サーバーにはgitが必要です。サーバーではなく、クライアントです。

人形でマニフェストを作成します。

マニフェストをターゲットのgitリポジトリにプッシュします。

フックを使用して、マニフェストでpuppetコマンドを実行します。 (マニフェストがプッシュされたときに、ターゲットホストで実行します)

繰り返す。

ここでの秘訣は、上記のように、コマンドラインツールを使用してマニフェストを実行できることです。ねえ、あなたのラップトップから、またはいくつかからそれを実行しませんか?デーモンはありませんが、puppetsのコマンドラインクライアントとgitをインストールするには、最初にアクセスする必要があります。

3
chiggsy

はい!あなたが実行します sh# puppet apply yourmanifest.pp

1
user81920

Puppetd(クライアントデーモン)を実行しないことを意味するが、puppetmasterを持っていてもかまわない場合、それは私が行うことです:

クライアントに接続し、各クライアントで--testモードでpuppetdを実行するだけです。テストモードは--onetime --no-daemonizeよりも高速であると言われています。 /etc/puppet/puppet.confでオプションを構成することもできます

# aofficelinux2 is the puppetmaster server name
Sudo /usr/sbin/puppetd --server aofficelinux2.visionten.locala --waitforcert 60 --test –-verbose

また、必要に応じて、リポジトリをpuppetmasterにrsyncし、puppetクライアントをリモートで起動するスクリプトを使用してリモートで実行します。

# aofficelinux5 is the puppet client servername
rsync_puppet_to_aofficelinux2
ssh -t aofficelinux5 Sudo /usr/sbin/puppetd --server aofficelinux2.visionten.locala --waitforcert 60 --test –-verbose
1
Alex F

Ansible はまさにこの哲学を念頭に置いて構築されたように私には思えます:

  • サーバーデーモンやクライアントデーモンはありません。既存のSSHdを使用する
  • クライアントボックスに追加のソフトウェアは必要ありません

基本的に、構成の説明をローカルで管理し(たとえば、gitリポジトリで)、sshを介してサーバーを再構成するために必要なコマンドをプッシュします。私のお茶、まさに:)

0
metakermit

Chef Soloを実行する最も簡単な方法は、littlechefを使用することです: https://github.com/tobami/littlechef

0
Bryan Larsen