18.04サーバーを初めて作成するとき、基本的なセットアップの一部として早期に実行する必要があるいくつかの構成手順があります。これにより、サーバーのセキュリティと使いやすさが向上し、その後のアクションの強固な基盤として機能します。これらの手順を手動で完了できますが、プロセスを自動化することで時間を節約し、人的エラーを減らすことができます。コンテナ化されたアプリケーションとマイクロサービスの普及により、サーバー自動化はシステム管理において重要な役割を果たしています。新しいサーバーの標準手順を確立する方法でもあります。[Ansible]を使用して、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04に含まれる手順を自動化する方法について説明します。[初期サーバー設定ガイド]。Ansibleは、リモートシステムのプロビジョニングと構成を自動化するために使用できる最新の構成管理ツールです。飛行前チェックこのガイドで説明しているプレイブックで提供される自動セットアップを実行するには、次のものが必要です。Nodeとして設定したこと。チュートリアルhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-18-04のステップ1に従うことができます[UbuntuでAnsibleをインストールおよび構成する方法18.04]この設定を取得します。18.04サーバーへのルートアクセスアンシブルによって。modules]を実行することが重要です。次の2つのセクションでは、Ansibleインベントリを設定してサーバーを含める方法と、アドホックAnsibleコマンドを実行して接続と有効な資格情報をテストする方法について説明します。インベントリファイル_inventoryファイル_には、Ansibleで管理するホストに関する情報が含まれています。インベントリファイルには1〜数百のサーバーを含めることができ、ホストはグループとサブグループに編成できます。インベントリファイルは、プレイブックおよびテンプレート内で使用するために、特定のホストおよびグループにのみ有効な変数を設定するためにもよく使用されます。+`変数のように、いくつかの変数もプレイブックの実行方法に影響を与える可能性があります。+`ファイルを開きます。/etc/ansible/hostsAnsibleインストールで提供されるデフォルトのインベントリファイルには、インベントリをセットアップするためのリファレンスとして使用できるいくつかの例が含まれています。いう名前のグループに3つの異なるサーバーを定義します。+`ホストパラメーターを設定します。3実行可能ファイルを使用するようにします。インベントリファイルのセットアップを完了するには、強調表示されたIPをサーバーのIPアドレスに置き換えます。+」を押してファイルを保存して閉じます。インベントリファイルの準備ができたので、ノードへの接続をテストします接続性のテストインベントリファイルを設定してサーバーを含めたら、Ansibleがこれらのサーバーに接続してSSH経由でコマンドを実行できるかどうかを確認します。*アカウントを使用します。これは、通常、新しく作成されたサーバーでデフォルトで使用可能な唯一のアカウントであるためです。+`権限を持つ新しい非ルートユーザーを作成します。これは、リモートサーバーとの以降の対話で使用する必要があります。Nodeから、次を実行します。+ホストがPythonを使用してAnsibleモジュールを実行できる場合。+」を指定して、接続ユーザーのパスワードの入力を求めます。-k次のような出力が得られるはずです。"pong"}SSH経由でこれらのサーバーに初めて接続する場合は、Ansible経由で接続しているホストの信頼性を確認するよう求められます。Enter」を押して確認します。ホストから「ピンポン」応答が返ってきたら、そのサーバーでAnsibleコマンドとプレイブックを実行する準備ができていることを意味します。18.04初期サーバーセットアップガイド]で概説されている手順を手動で実行する代わりに使用できます。18.04でのSSHキーのセットアップ]のガイド。このプレイブックを実行すると、次のアクションが実行されます。+`変数で指定されます。+`ファイルに追加します。*ユーザーのパスワードベースの認証は無効になっています。+」によりインストールされます。UFWファイアウォールは、SSH接続のみを許可し、拒否するように構成されていますその他のリクエスト。18.04サーバーの初期セットアップを参照してください。+」アカウントを使用してサーバーにログインできるようになります。Nodeにダウンロードします。これは、ローカルマシン、またはAnsibleをインストールしてインベントリをセットアップしたリモートサーバーのいずれかです。+`という名前のファイルにダウンロードされます。選択したコマンドラインエディタでファイルを開くと、プレイブックの内容を調べることができます。*という名前のセクションが表示されます。:作成する非rootユーザーアカウントの名前とsudo権限を付与します。この例では*を使用していますが、任意のユーザー名を使用できます。`アカウントの認証キー。+`にある現在のローカルユーザーの公開キーを指します。+`内の変数の更新が完了したら、ファイルを保存して閉じます。これで、1つ以上のサーバーでこのプレイブックを実行する準備が整いました。」サーバーで実行されるように設定されています。`フラグを使用して、サーバーのサブセットまたは単一のサーバーのみがプレイブックの影響を受けるようにすることができます。+」でのみプレイブックを実行するには、次のコマンドを使用できます。initial_server_setup.yml次のような出力が得られます。failed=0プレイブックの実行が終了すると、次の方法でサーバーにログインできるようになります。+`変数で定義されたユーザーと、サーバーのホスト名またはIPアドレスで置き換えることを忘れないでください。+`変数でカスタム公開キーを設定した場合、対応する秘密キーの場所を指定する追加のパラメーターを提供する必要があります。-iサーバーにログインした後、UFWファイアウォールのアクティブなルールをチェックして、適切に構成されていることを確認できます。status次のような出力が得られるはずです。(v6)これは、UFWファイアウォールが正常に有効化されたことを意味します。これがプレイブックの最後のタスクであるため、プレイブックがこのサーバーで完全に実行されたことを確認します。repository]にあります。[コミュニティGitHub組織]。[click生のコンテンツを直接表示するにはこちら]。便宜上、完全な内容もここに含まれています。incomingこのプレイブックを自由に修正したり、独自のワークフロー内の個々のニーズに最適な新しいタスクを含めたりしてください。結論サーバーの初期セットアップを自動化することで時間を節約できます。サーバーが標準構成に従っていることを確認し、必要に応じて改善およびカスタマイズできます。最新のアプリケーションの分散された性質と、異なるステージング環境間での一貫性の必要性により、このような自動化が必要になります。このガイドでは、Ansibleを使用して、sudoアクセスを持つ非ルートユーザーの作成、UFWの有効化、リモートルートログインの無効化など、新しいサーバーで実行する必要のある初期タスクを自動化する方法を示しました。Playbookの作成]。