小規模プロジェクトやサーバーのサーバー構成を管理するにはどうすればいいですか?

小規模プロジェクトやサーバーのサーバー構成を管理するにはどうすればいいですか?

私は最近リリースした Web アプリケーションを開発しています。現在、改善を続けており、本番サーバーと同様のステージング サーバーを作成したいと考えています。

Ansible、Puppet、Chef などのツールの存在は知っていますが、ドキュメントをざっと見たところ、私の単純な使用例では少々やりすぎのようです。もちろん、アプリケーションを完全に Docker 化するという解決策もあり、それは良いことです。

しかし、アプリケーションを Docker 化する以外に、実稼働サーバーを単純に再作成するには何をお勧めしますか?

必要なのは次のことだけです:

  • いくつかの依存関係をインストールします: PHP、MySQL、Nginx、Java、Elasticsearch
  • データベース、データベースユーザーの追加
  • ユーザーを追加する
  • SSHキーを設定する
  • SSH をキーファイルのみによる認証に変更する
  • ファイアウォールルールをいくつか追加する

答え1

実際、Puppet は小規模な環境向けにローカル設定を実装するのが非常に簡単で、そのために最適なツールの 1 つです。

このページには、非常に迅速かつ簡単なセットアップに関する情報が記載されています。

http://projects.puppetlabs.com/projects/1/wiki/simplest_puppet_install_pattern

答え2

免責事項 - ここには多くの意見が含まれています。

ここまでが済んだら、最初の質問は「このアプリケーションはどのくらい大きくなるのか?」です。答えが 10 台を超えるサーバーの場合、思い切って Puppet/Chef/Ansible ルートを採用することをお勧めします。10 台未満のサーバーの場合は、パッケージ マニフェストを確認し、2 台目のサーバーを構築する際にメモを取りながら手動で再現するだけです。

関連情報