Ansible をコンピュータにインストールする方法

AnsibleBeginner
オンラインで実践に進む

はじめに

このチュートリアルでは、コンピュータに Ansible をインストールし、Ansible プレイブックを使い始める手順を案内します。Ansible は、インフラストラクチャをより効率的に管理するのに役立つ、人気のオープンソース IT オートメーションツールです。このチュートリアルを完了するまでに、動作する Ansible 環境を構築し、IT タスクの自動化を開始できるようになります。

Ansible の概要

Ansible は、オープンソースの、エージェントレスな IT オートメーションツールであり、インフラストラクチャ・コード (IaC) の管理を可能にします。シンプルでパワフル、かつスケーラブルな設計で、サーバのプロビジョニングや設定管理からアプリケーションのデプロイメントとオーケストレーションまで、様々な IT タスクの自動化に最適なツールです。

Ansible とは?

Ansible は、宣言型の言語を使用してシステムの目標状態を記述する、設定管理およびデプロイメントツールです。リモートホスト(通常は SSH を介して)に接続し、それらのホスト上でタスクを実行して、目標状態に到達させることで動作します。Ansible は、リモートホストに特別なソフトウェアやエージェントをインストールする必要がないため、軽量で柔軟なソリューションです。

Ansible の主な機能

  1. エージェントレスアーキテクチャ: Ansible は、リモートホストに特別なソフトウェアやエージェントをインストールする必要がないため、設定や使用が容易です。
  2. 宣言型言語: Ansible は、YAML という宣言型言語を使用してシステムの目標状態を記述します。これにより、Ansible プレイブックの読み書きが容易になります。
  3. イデンプテント性: Ansible のタスクはイデンプテントに設計されており、意図しない変更を引き起こすことなく、複数回実行できます。
  4. モジュール設計: Ansible はモジュール設計を採用しており、ファイルやサービスの管理からクラウドプロバイダとの連携まで、様々なタスクを実行できる豊富な組み込みモジュールがあります。
  5. スケーラビリティ: Ansible は多数のホストを管理できるため、IT オートメーションのスケーラブルなソリューションです。

Ansible のユースケース

Ansible は、以下の様々な IT オートメーションタスクに使用できます。

  • サーバプロビジョニング: 新しいサーバの設定、つまりオペレーティングシステムのインストール、ネットワーク設定の構成、ソフトウェアのインストールを自動化します。
  • 設定管理: すべてのサーバが同じように設定され、システムの目標状態が維持されるようにします。
  • アプリケーションデプロイメント: 複数のサーバへのアプリケーションのデプロイメントを自動化します。依存関係や設定の管理も含まれます。
  • オーケストレーション: ソフトウェアアップデートのロールアウトやデータベースマイグレーションなど、複数のホストにまたがる複数のタスクの実行を調整します。
  • セキュリティとコンプライアンス: セキュリティポリシーを適用し、システムが業界標準に準拠していることを確認します。

Ansible を使用することで、組織は IT 運用効率と信頼性を向上させ、人的エラーのリスクを軽減し、IT スタッフがより戦略的なイニシアチブに集中できるようになります。

Ansible のシステムへのインストール

前提条件

Ansible をインストールする前に、システムに以下のものがインストールされている必要があります。

  • Python 3 (バージョン 3.5 以降)
  • pip (Python パッケージマネージャー)

Ubuntu 22.04 への Ansible インストール

  1. パッケージインデックスを更新します。
sudo apt update
  1. 必要な依存関係をインストールします。
sudo apt install software-properties-common
  1. Ansible リポジトリをシステムのソースリストに追加します。
sudo add-apt-repository --yes --update ppa:ansible/ansible
  1. Ansible をインストールします。
sudo apt install ansible
  1. インストールを確認します。
ansible --version

システムにインストールされた Ansible のバージョンが表示されます。

Ansible の設定

Ansible の設定ファイルは /etc/ansible/ansible.cfg に保存されます。このファイルで、デフォルトのインベントリファイル、リモートユーザー、SSH 接続設定など、様々なオプションをカスタマイズできます。

基本的な ansible.cfg ファイルの例を次に示します。

[defaults]
inventory = ./hosts
remote_user = ubuntu

この例では、インベントリファイルは ./hosts に設定されています。つまり、Ansible は現在のディレクトリにあるインベントリファイルを探します。remote_userubuntu に設定されており、Ubuntu 22.04 インスタンスのデフォルトユーザーです。

インストールの確認

Ansible が正しくインストールおよび設定されていることを確認するには、次のコマンドを実行します。

ansible all -m ping

このコマンドは、インベントリ内のすべてのホストに ping を送り、Ansible がそれらに接続できることを確認します。インストールが成功すると、次の様な応答が表示されます。

all_hosts | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Ansible がインストールおよび設定されたので、IT タスクの自動化を開始できます。

Ansible Playbook の基礎

Ansible Playbook の理解

Ansible Playbook は、YAML ベースの設定ファイルで、インフラストラクチャの目標状態を定義します。サーバのプロビジョニングからアプリケーションのデプロイメントまで、幅広い IT タスクの自動化を可能にする、Ansible の機能の中核です。

典型的な Ansible Playbook は、1 つ以上の「プレイ」で構成されます。プレイは、一連のホスト上で実行されるアクションを定義します。各プレイは、Ansible がターゲットホスト上で実行する個々の手順である、1 つ以上の「タスク」を含めることができます。

最初の Ansible Playbook の作成

Ubuntu 22.04 ホストのセットに Apache Web サーバをインストールするシンプルな Ansible Playbook を作成してみましょう。

  1. 作業ディレクトリに apache.yml という名前の新規ファイルを作成します。
touch apache.yml
  1. テキストエディタでファイルを開き、以下の内容を追加します。
- hosts: all
  become: true
  tasks:
    - name: Install Apache
      apt:
        name: apache2
        state: present
    - name: Start Apache
      service:
        name: apache2
        state: started
        enabled: true

この Playbook では:

  • hosts: all は、インベントリ内のすべてのホスト上でタスクを実行することを指定します。
  • become: true は、Ansible が昇格された権限 (例:sudo) を使用してタスクを実行することを示します。
  • apt モジュールは、Apache Web サーバパッケージをインストールするために使用されます。
  • service モジュールは、Apache サービスを起動し、システム起動時に自動的に起動するように設定するために使用されます。
  1. ファイルを保存し、Playbook を実行します。
ansible-playbook apache.yml

Ansible はターゲットホストに接続し、Playbook に定義されたタスクを実行し、結果を報告します。

Ansible モジュールの探索

Ansible には、幅広いタスクを実行できる多数の組み込みモジュールが用意されています。利用可能なモジュールは、Ansible モジュールインデックス で確認できます。

よく使用されるモジュールの一部を次に示します。

  • file: ファイルとディレクトリの管理
  • user: ユーザーアカウントの管理
  • cron: cron ジョブの管理
  • systemd: システムサービスの管理
  • aws_ec2: AWS リソースの管理
  • azure_rm_virtualmachine: Azure 仮想マシンの管理

これらのモジュールを Playbook に組み込むことで、幅広い IT タスクを自動化し、インフラストラクチャの管理を効率化できます。

まとめ

この Ansible Playbook の概要では、Apache Web サーバをインストールするためのシンプルな Playbook の作成と実行方法を学びました。また、Ansible Playbook の構造と、IT タスクの自動化に使用できるさまざまなモジュールについても説明しました。この知識があれば、より複雑な Playbook を構築して、インフラストラクチャとアプリケーションを管理し始めることができます。

まとめ

このチュートリアルでは、コンピュータに Ansible をインストールし、Ansible playbook を使い始める方法を学びました。Ansible は、インフラストラクチャ管理プロセスを効率化するための強力な IT オートメーションツールです。Ansible を使用すると、ソフトウェアのデプロイメントから設定管理まで、幅広いタスクを自動化でき、IT 運用をより効率的で信頼性高くすることができます。