web-dev-qa-db-ja.com

VMでの開発のためのPuppet&Puppetmaster

私は開発のために常に新しいVMをスピンアップしている状況にあります。クローンを作成できるベースイメージがありますが、すぐに古くなり、多くのVMに変更を追加する方法がありません。

仮想マシンの最初の起動時に実行されるpuppetスクリプトをセットアップしたいのですが、puppetによって直接実行されるsite.ppを作成するためのガイドがたくさんありますが、これには、セットアップする必要のある単一のファイルが含まれます。ノード。私がやりたいのは、すべてのVMが同じポイントを呼び出して最新の状態に保ち、ファイルサーバーなどを使用して包括的なパッケージセットを作成できるように、puppetmasterで開発セットアップを行うことです。

これで私が目にする問題は、vmsを識別するためにホスト名に依存できない/したくないということです。vm名が再利用される可能性があるため、pkiの履歴を保持する必要はありません。

Puppetはpuppetmasterと一緒に使用でき、基本的にすべてのpkiを無視できますか?ファクトまたはその他の手段でVMを登録できるような環境を作成できますか? puppet agent type = test1などを実行したいと思います。

一般に、ノードのセキュリティを特に気にせず、ノードが頻繁に出入りすることを期待している集中ソースを介してpuppetを使用するにはどうすればよいですか?

6
jamielennox

VMは開発用であるため、 Vagrant を確認することをお勧めします。 Vagrantは、すぐに使用できるPuppetをサポートしています。

DHCPを介してプロビジョニングされるようにVMをセットアップし、構成に追加します(必要に応じて、VMにランダムな名前または連続した名前を付けることができますが、展開を容易にするためにドメイン部分を保持します)。

option domain-name "my.domain.com";

puppetmasterを設定して、必要なモジュールを提供します。

node /.*my.domain.com/ inherits default {
}

そして、そのドメインの自動署名を有効にします。

$ cat autosign.conf 
# Domains you want SSL certificates autosigned for
#*.my.domain.com

そして、「多くのVMに変更を追加する」に関しては、それがpuppetの目的です。他の種類のオンデマンド操作が必要な場合は、 Marionette Collective を参照してください。

2
dawud

puppetはクライアント/サーバーの方法で動作できますが、必須ではありません。現在のマシンのpuppetをローカルで呼び出すことができます。これははるかに簡単です(もちろん、スケーラビリティは劣ります)。

私の場合、新しいVMを起動するときに、sftp(ssh)を使用してpuppetの完全な構成をコピーし、puppetをローカルで呼び出します。ここでの説明(fr) http://offirmo.net/wiki/index.php?title=Amor%C3%A7age_d%27un_serveur_Ubuntu_avec_puppet

cd ~/puppet
Sudo puppet apply --debug --detailed-exitcodes --verbose manifests/site.pp --modulepath=modules --ignorecache --no-usecacheonfailure

更新が必要な場合、私のpuppet構成はgitリポジトリ( https://github.com/Offirmo/offirmo-puppet )にあり、gitpullで最新のものを取得して再度適用できます。

この方法があなたの場合に優れているかどうかを判断するのはあなた次第です。

1
Offirmo