web-dev-qa-db-ja.com

puppetのようなツールでgitのような機能を取得できますか?

私は自分のvps構成を追跡し、ワンクリック(または多かれ少なかれ)でそれらを展開する便利な方法を考えています。

私は、パペットが最も人気があると思われるさまざまな構成展開ツールを読んで調べてきましたが、正方形に戻っただけです。

Puppetが提供する機能は私を魅了し、おそらくそれを使用するでしょうが、簡単なことを簡単に行う方法を見つけることができないようです。

/ etc内の構成ファイルを維持および変更する必要があります。本当に削除したいのはssh-> vimまたはnano、またはsftpです...フォルダー全体を開発マシンに置き、パワーを楽しみたいです。そしてそれらを編集するための崇高なテキストの速度、そしてgit commit、git Push、->いくつかのことを再起動してhoplaを実行し、更新されました。

人形のパラダイムでは、次のようになります。

file {'/tmp/test1':
  ensure  => file,
  content => "Hi.\n",
}

Gitがこの種のデプロイメントに非常に適したツールではない(そして、関連するすべてのリスクを完全に確信しているわけではない)という最初の懸念が、私を人形/シェフについて読むように導きました...

では、この問題にどのように取り組み、/ etc構成をオフラインで編集するためにgit/git-deploy/etckeeperを使用する本番システムはありますか?

2
user68729

puppetのようなツールは、構成を正しい状態にするように設計されています。 gitのようなツールは、ファイルのバージョンを追跡するように設計されています。これらのタスクは両方とも構成管理と呼ばれ、混乱を招く可能性があります。以下では、バージョン管理を使用してgitなどのツールを参照し、宣言型構成管理を使用してpuppetなどのツールを参照します。構成管理ツールによってインストールされているコンポーネントのバージョンを追跡する必要はないと想定します。これは、バグを再現するときに重要になる可能性があります。構成管理ツールはバージョンを追跡でき、バージョン管理ツールを使用してインベントリを保存できます。

宣言型構成管理を使用すると、目的の構成とその構成方法を指定できます。目的の構成を定義し、ツールを起動すると、指定されたアクションを実行して、目的のコンポーネントをインストールおよび構成します。この構成を維持するには、バージョン管理ツールを使用することをお勧めします。

編集:自動構成を実行する場合、構成値の入力を求めないモードでパッケージマネージャーを実行することが重要です。 (Ubuntu/Debianは、プレシードファイルを使用してデフォルトの構成値をオーバーライドできます。)パッケージマネージャーが/etcのファイルを更新する場合、変更を評価する必要があり、宣言型構成を調整する必要がある場合があります。 (Ubuntu/Debianは、ファイル名に.dpkg-old.dpkg-newなどの拡張子を追加することで置換を追跡します。)O/Sバージョンをアップグレードした後、変更をスキャンします。これにより、多くの構成ファイルの変更が生成されることがよくあります。

/etcの構成ファイルを更新するために使用できるさまざまな方法があります。私が使用した3つは次のとおりです。-プラットフォームの構成ツールを使用してファイルを更新します(Ubuntu/Debianにはこのための事前構成メカニズムがあります)。 -宣言型構成管理ツールを使用して構成ファイルを編集します。および-中央リポジトリから構成ファイルをコピーします。

各システムには、ホスト固有の少数の構成ファイルがあります。これらには、ホストの命名、静的ネットワーク構成などに関連するファイルが含まれます。ファイルを編集して更新すると、宣言型の構成管理ツールでは修正されないローカルな変更を追加することができます。

バージョン管理ツールは、ファイルの変更に応じてファイルの内容を追跡します。通常、手動のコミットアクションが必要なため、管理対象ファイルが管理対象バージョンと大幅に同期しなくなる可能性があります。変更を追跡するには、規律が必要です。

アトミックな変更を確実にするために使用するアプローチは、バージョン管理ツールを使用して、宣言型構成管理ツールの構成を提供することです。 -自分の作業ディレクトリで構成を編集します。変更が完了したら、変更を確認してコミットします。 -マスターサーバーは、構成を更新することによってプロセスを開始します。 (大規模なインストールでは、2つ以上のブランチとマスターサーバーがあり、テストのために変更をサーバーの小さなセットにプッシュできます。)-クライアントは、マスターサーバーから構成の変更をプルします。 -宣言型構成管理ツールは、実行中の構成をそれらの構成と比較し、必要な変更を適用します。

3
BillThor