事前設定されたUnixサーバーを迅速に起動する技術

事前設定されたUnixサーバーを迅速に起動する技術

私は次のことができるようにしたいです。

  1. 手動介入なしで最短時間内に必要に応じて構成されたUnixサーバーを起動します。
  2. 定期的にスクリプトを実行して、構成の変更が完了したことを確認し、誤った設定を変更することをお勧めします(たとえば、更新中に構成ファイルが置き換えられることがあるため)。

これを達成するには、どのスキルを選択する必要がありますか? (特定のソフトウェア推奨事項について議論する前に、これを行うさまざまな基本的な方法を理解してください。)

これは私が手動で行うことです(VirtualBoxからローカルに、またはVPSからリモートで)。角かっこは例の一部にすぎません。

  1. 設定ポイント( visudo, adduser)
  2. パッケージのインストール( sshd, php, nginx, mysql, ufw)
  3. インストールスクリプトの実行(mysql_secure_installation
  4. 構成コマンドの実行(ufw allow
  5. 構成ファイルの編集( php.ini, sshd_config)
  6. データベースの入力( cat db.sql | mysql)
  7. nginxネットワークファイルを埋める(rsync local remote:
  8. nginxを起動

今日の設定ファイルを確認する場合は、手動で確認する以外に良い戦略がないので、本当に難しいです。

Puppetなどについて聞いたことがありますが、正直なところ、その構文は少し恐れています。スキルを決めて学ぶのに時間を費やす前に、私はオプションを完全に見るのが好きです。

答え1

あなたが探しているのはServer Farmer(http://serverfarmer.org/) - Ansibleに似たアーキテクチャを持っていますが、もっとシンプルでほとんどBashで書かれています。

すべての主要クラウドプラットフォーム(AWS、Azure、Google Cloud、Hetzner、Alibaba Cloud、e24cloud、Rackspace、およびOpenStackベースのハイブリッドクラウド)から新しいインスタンスを作成することから、ネイティブホスト構成を介してアプリケーションプログラムをデプロイするまでのLinuxインスタンスのライフサイクル全体を処理します。 。

唯一の例外は、ファイアウォールの場合は.NETの代わりにiptablesを直接使用することですufw

次の2つのリポジトリをフォークして設定を調整することで起動できます。

答え2

さまざまなオプションがあります。

- 同じことをするために人形を使っています。

- Puppet、Ansible、Saltstack、Chefなどを使用できます。

- ドッカーコンテナを使用し、ドッカーファイルを使用して必要な設定を実行できます。

- クラウドで事前設定された仮想マシン(openstack、aws)を使用し、必要に応じてそれらを起動してデータボリュームを接続できます。

答え3

Linodeなどの一部のプロバイダでは、必要に応じてシステムによって作成されたすべてのVPSに展開できる独自のイメージを作成できます。もちろん、独自のVirtualBox / VMWareテンプレートを作成して使用、複製、エクスポート、および他の人と共有することもできます。

しかし、固定観念から離れて考えてみると…ローカルVM、VPS、またはベアメタルハードウェアで動作できること -

仮想マシンを設定して各パッケージをインストールした後、構成する前に、パッケージの構成ディレクトリ(/etc/apache2など)にgitリポジトリを作成します。リポジトリの設定、git commit、git pushを実行します。必要に応じてすべてのパッケージに対してこれを繰り返します。私のVPSでは、おそらくデフォルトのLAMP設定を実行し、dovecot + postfixなどを実行して、各サービスの組み合わせに独自のgitリポジトリがあるようにします。

controlその後、そのファイルを使用して偽のDebianパッケージを作成すると、通常インストールするequivs-buildすべてのもの(dovecot、postfix、apacheなど)にのみ依存するパッケージがあります。繰り返しますが、それを分割し、gitリポジトリを持つ各サービスの組み合わせへの依存関係を含む一致するパッケージ.debファイルを生成することを考えてみましょう。

だから新しいマシンに...

基本インストールを実行します。偽のパッケージをインストールし、依存関係(一般ソフトウェア)のインポートを適切に処理し、デフォルト設定でインストールします。次に、変更された構成を含むさまざまなリポジトリーのコピーをプルダウンし、構成ファイルを適切な場所に配置します。

関連情報