Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Ansibleを使用してローカルWebサーバーを構成する | DevOpsにおけるインフラストラクチャの自動化
DevOps入門

bookAnsibleを使用してローカルWebサーバーを構成する

メニューを表示するにはスワイプしてください

リモートUbuntuサーバーに接続し、Ansibleを使用して管理する方法について学習します。設定ファイルを作成し、定型作業を自動化できるようにします。例として、パッケージインデックスの更新とGitのインストールを行います。これは、サーバーを開発DevOpsタスクに備えるための最初のステップです。

Note
注意

Windowsを使用している場合は、これらのコマンドをwslで実行してください。macOSまたはLinuxの場合は、ターミナルをそのまま使用できます。

Ansibleのインストール

開始する前に、Ansibleがマシンにインストールされていることを確認してください:

sudo apt update
sudo apt install ansible -y

最初のコマンド sudo apt update は、システムのパッケージリストを更新し、利用可能な最新のソフトウェアバージョンを認識できるようにします。次に、sudo apt install ansible -yAnsible をマシンにインストールし、インストール確認を自動的に行うため、「yes」 と入力する必要がありません。

設定ファイルの作成

まず、Ansible が接続するサーバーのリストを設定する必要があります。そのために、hosts.ini というインベントリファイルを作成します。

次の内容を貼り付けます。

hosts.ini

hosts.ini

copy

[ubuntu_container]Ansible が管理するホストグループ。

localhost — ホストアドレス(この場合、Docker コンテナを実行しているローカルマシン)。

ansible_port=2222 — 接続用の SSH ポート。

ansible_user=root および ansible_password=rootSSH ログイン用の認証情報。

ansible_connection=sshAnsibleSSH を使用してコマンドを実行するよう指示。

hosts.ini ファイルは、Ansible にどこへ接続し、どのパラメータを使用するかを指定。これがなければ、プレイブックはサーバーを特定できず、タスクを実行できない。

Playbook setup.yml

次に、自動化スクリプト(プレイブック)setup.ymlの作成:

貼り付け:

setup.yml

setup.yml

copy

setup.yml ファイルは、サーバー上で Ansible が実行するタスクを定義。

  • name: Configure Ubuntu container — プレイブックのタイトル;

  • hosts: ubuntu_containerhosts.ini のホストグループ;

  • become: true — スーパーユーザー(root)としてコマンドを実行;

  • tasks — 順番に実行されるアクションのリスト。

この例では、パッケージインデックスの更新と Git のインストールを実行。

Ansible の設定

最後に、Ansible 自体の設定。ansible.cfg ファイルは Ansible の動作をカスタマイズ。ansible.cfg を作成:

以下を貼り付け:

ansible.cfg

ansible.cfg

copy

この場合、SSH ホストキーの確認を無効にします。通常、Ansible は安全な接続を確保するためにサーバーのフィンガープリントを検証しますが、このチュートリアルでは一時的な Docker コンテナ を使用しているため、簡略化のために無効化しています。

接続のテスト

すべての構成ファイルを作成したら、正しく設定されているかを確認することが重要です。これにより、Ansible がリモートの Ubuntu サーバーに接続し、期待通りにタスクを実行できることを保証します。

このコマンドを実行すると、Ansiblehosts.ini で指定された認証情報とポートを使用して、SSH 経由で Ubuntu コンテナへの接続を試みます。すべてが正しく設定されていれば、次のような表示がされます。

接続確認が成功したので、実際にプレイブックを実行する段階です。これで、すべてが正しく動作することが確認できます。

このコマンドが実行されると、Ansible はリモートの Ubuntu サーバーに SSH で接続し、become: true を使用して権限を昇格し、すべてのタスクを順番に実行します。この例では、最初にパッケージインデックスを更新してシステムが最新のソフトウェアバージョンを認識できるようにし、その後 Git をインストールします。

プレイブックの実行が完了したら、Ubuntu サーバーに Git がインストールされていることを確認できます。まず、SSH を使ってサーバーに接続します:

次に、インストールされた Git バージョン を確認します:

すべてが正しく動作していれば、Git バージョン が表示され、プレイブック が正常に実行されたことが確認できます。

1. Ansible における hosts.ini ファイルの目的は何か。

2. プレイブックで become: true が使われる理由は何か。

question mark

Ansible における hosts.ini ファイルの目的は何か。

正しい答えを選んでください

question mark

プレイブックで become: true が使われる理由は何か。

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  6

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  6
some-alt