Ansibleを使用してローカルWebサーバーを構成する
メニューを表示するにはスワイプしてください
リモートUbuntuサーバーに接続し、Ansibleを使用して管理する方法について学習します。設定ファイルを作成し、定型作業を自動化できるようにします。例として、パッケージインデックスの更新とGitのインストールを行います。これは、サーバーを開発やDevOpsタスクに備えるための最初のステップです。
Windowsを使用している場合は、これらのコマンドをwslで実行してください。macOSまたはLinuxの場合は、ターミナルをそのまま使用できます。
Ansibleのインストール
開始する前に、Ansibleがマシンにインストールされていることを確認してください:
sudo apt update
sudo apt install ansible -y
最初のコマンド sudo apt update は、システムのパッケージリストを更新し、利用可能な最新のソフトウェアバージョンを認識できるようにします。次に、sudo apt install ansible -y で Ansible をマシンにインストールし、インストール確認を自動的に行うため、「yes」 と入力する必要がありません。
設定ファイルの作成
まず、Ansible が接続するサーバーのリストを設定する必要があります。そのために、hosts.ini というインベントリファイルを作成します。
次の内容を貼り付けます。
hosts.ini
[ubuntu_container] — Ansible が管理するホストグループ。
localhost — ホストアドレス(この場合、Docker コンテナを実行しているローカルマシン)。
ansible_port=2222 — 接続用の SSH ポート。
ansible_user=root および ansible_password=root — SSH ログイン用の認証情報。
ansible_connection=ssh — Ansible に SSH を使用してコマンドを実行するよう指示。
hosts.ini ファイルは、Ansible にどこへ接続し、どのパラメータを使用するかを指定。これがなければ、プレイブックはサーバーを特定できず、タスクを実行できない。
Playbook setup.yml
次に、自動化スクリプト(プレイブック)setup.ymlの作成:
貼り付け:
setup.yml
setup.yml ファイルは、サーバー上で Ansible が実行するタスクを定義。
-
name: Configure Ubuntu container— プレイブックのタイトル; -
hosts: ubuntu_container—hosts.iniのホストグループ; -
become: true— スーパーユーザー(root)としてコマンドを実行; -
tasks— 順番に実行されるアクションのリスト。
この例では、パッケージインデックスの更新と Git のインストールを実行。
Ansible の設定
最後に、Ansible 自体の設定。ansible.cfg ファイルは Ansible の動作をカスタマイズ。ansible.cfg を作成:
以下を貼り付け:
ansible.cfg
この場合、SSH ホストキーの確認を無効にします。通常、Ansible は安全な接続を確保するためにサーバーのフィンガープリントを検証しますが、このチュートリアルでは一時的な Docker コンテナ を使用しているため、簡略化のために無効化しています。
接続のテスト
すべての構成ファイルを作成したら、正しく設定されているかを確認することが重要です。これにより、Ansible がリモートの Ubuntu サーバーに接続し、期待通りにタスクを実行できることを保証します。
このコマンドを実行すると、Ansible は hosts.ini で指定された認証情報とポートを使用して、SSH 経由で Ubuntu コンテナへの接続を試みます。すべてが正しく設定されていれば、次のような表示がされます。
接続確認が成功したので、実際にプレイブックを実行する段階です。これで、すべてが正しく動作することが確認できます。
このコマンドが実行されると、Ansible はリモートの Ubuntu サーバーに SSH で接続し、become: true を使用して権限を昇格し、すべてのタスクを順番に実行します。この例では、最初にパッケージインデックスを更新してシステムが最新のソフトウェアバージョンを認識できるようにし、その後 Git をインストールします。
プレイブックの実行が完了したら、Ubuntu サーバーに Git がインストールされていることを確認できます。まず、SSH を使ってサーバーに接続します:
次に、インストールされた Git バージョン を確認します:
すべてが正しく動作していれば、Git バージョン が表示され、プレイブック が正常に実行されたことが確認できます。
1. Ansible における hosts.ini ファイルの目的は何か。
2. プレイブックで become: true が使われる理由は何か。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください