ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

LinuxにAnsibleをインストールし使用する方法

編集済み 5 数か月前 によって ExtremeHow 編集チーム

自動化Ansible構成管理デブオプススクリプティングコマンドラインサーバー設定オーケストレーションプレイブック管理

LinuxにAnsibleをインストールし使用する方法

翻訳が更新されました 6 数か月前

大量のサーバーを管理しプロセスを自動化することは、システム管理者やDevOps専門家にとって一般的な作業です。Ansibleはこの側面で役立つ強力でシンプルなツールです。これはコードとしてのインフラストラクチャ、構成管理、およびタスクの自動化を可能にします。このガイドでは、LinuxにAnsibleをインストールして使用する方法を詳細な手順で説明します。Ansibleを始めるために必要な基本をカバーします。

Ansibleの紹介

Ansibleは、ITタスク(アプリケーション展開、オーケストレーション、構成管理など)に使用されるオープンソースの自動化ツールまたはプラットフォームです。プレイブックを使用してシステムを構成し、ソフトウェアを展開し、高度なワークフローをオーケストレーションします。セットアップが簡単で、エージェントを必要とせず、そのプレイブックにYAML(Yet Another Markup Language)を使用するため、初心者にも簡単に理解して効果的に使用できます。

事前準備

始める前に、以下のものを用意してください:

LinuxにAnsibleをインストールする

Ansibleのインストールプロセスは使用しているLinuxのディストリビューションによって若干異なります。いくつかの一般的な方法を見てみましょう:

UbuntuにAnsibleをインストールする

UbuntuにAnsibleをインストールするためには、次の手順に従ってください:

  1. まず、次のコマンドを使用してパッケージリポジトリを更新します:
  2. sudo apt update
  3. PPAを追加するには、ソフトウェアプロパティを更新してください:
  4. sudo apt install software-properties-common
  5. AnsibleのPPAリポジトリを追加します:
  6. sudo add-apt-repository --yes --update ppa:ansible/ansible
  7. 新しいAnsibleリポジトリからのパッケージを含めるためにリストをもう一度更新します:
  8. sudo apt update
  9. 最後にAnsibleをインストールします:
  10. sudo apt install ansible
  11. バージョンを確認してインストールを確認します:
  12. ansible --version

CentOS/RHELにAnsibleをインストールする

CentOSまたはRed Hat Enterprise Linux(RHEL)を使用している場合は、次の手順に従います:

  1. Enterprise Linux用の追加パッケージを含むEPELリポジトリを有効にします:
  2. sudo yum install epel-release
  3. yumを使用してAnsibleをインストールします:
  4. sudo yum install ansible
  5. バージョンを確認してインストールを確認します:
  6. ansible --version

FedoraにAnsibleをインストールする

Fedoraユーザーのためのプロセスは非常に似ています:

  1. dnfパッケージマネージャーを使用してAnsibleをインストールします:
  2. sudo dnf install ansible
  3. インストール後、バージョンを確認して正しく設定されていることを確認します:
  4. ansible --version

Ansibleの基本設定

Ansibleをインストールした後、次のステップは構成することです。AnsibleはSSHを使用してリモートサーバーと通信します。管理するホストマシンへのSSHアクセスを設定する必要があります。

SSHキーの設定

  1. SSHキーのペアを生成します(まだ行っていない場合):
  2. ssh-keygen
  3. SSH公開鍵をリモートホストにコピーします(<user>と<host>を実際のユーザーとサーバーアドレスに置き換えます):
  4. ssh-copy-id <user>@<host>
  5. SSH接続をテストします:
  6. ssh <user>@<host>

インベントリファイルの設定

Ansibleインベントリファイルは、Ansibleが管理するよう指示されたホストおよびホストグループをリストします。デフォルトでは、/etc/ansible/hostsにあります。

  1. ホストファイルを編集します:
  2. sudo nano /etc/ansible/hosts
  3. リモートホストを追加します(<hostname>と<IP>を自身の値に置き換えます):
  4. [webservers] <hostname> ansible_host=<IP> [dbservers] <hostname> ansible_host=<IP>
  5. ファイルを保存して終了します。

Ansible Playbooksの理解

Ansible playbooksは、Ansibleが従う一連のタスクを含むファイルです。これらはYAML形式で記述されており、読みやすく理解しやすいです。以下は基本的なAnsibleプレイブックの構造です:

--- 
- name: Ensure Apache is installed 
  hosts: webservers 
  tasks: 
    - name: Install Apache 
      apt: 
        name: apache2 
        state: present

上記の例では:

Ansible Modulesの使用

Ansibleモジュールは、Ansibleプレイブックを作成するためのビルディングブロックです。各モジュールは、Ansibleが一度に実行するスタンドアロンのスクリプトです。モジュールはハードウェアの管理、オペレーティングシステムの構成管理などに使用できます。

よく使われるモジュール

aptモジュールをプレイブックで使用する例:

- name: Install Apache 
  hosts: webservers 
  tasks: 
    - name: Install Apache package 
      apt: 
        name: apache2 
        state: latest

Ansible Playbookの実行

プレイブックを書いたら、サーバーで実行したいタスクを自動化するためにそれを実行する必要があります。プレイブックを実行するには:

  1. .ymlファイル拡張子でプレイブックを保存します。
  2. 次のコマンドを使用してプレイブックを実行します(playbook.ymlをプレイブックのファイル名に置き換えます):
  3. ansible-playbook playbook.yml
  4. エラーまたは正常な実行を確認するために出力を監視します。

プレイブックの実行例

以下の内容のsetup_web.ymlという名前のプレイブックを作成したとします:

- name: Set up web server 
  hosts: webservers 
  become: true 
  tasks: 
    - name: Install Apache 
      apt: 
        name: apache2 
        state: present 
    - name: Start Apache 
      service: 
        name: apache2 
        state: started

次のように実行します:

ansible-playbook setup_web.yml

実行後、AnsibleはApacheをインストールし、インベントリファイルのwebserverグループにリストされているすべてのホストでそのサービスを開始します。

Ansibleロールの管理

より複雑なシステムを管理するために、Ansibleロールはプレイブックを再利用可能なコンポーネントに整理することを可能にします。ロールにより、プレイブックを複数の小さいファイルに分割することができ、より容易にメンテナンスできます。ロールは通常、特定の構造でタスク、ハンドラー、テンプレート、変数、ファイルを含みます。

ロールの作成と使用

  1. コマンドラインツールを使用して新しいロールを作成します:
  2. ansible-galaxy init <rolename>
  3. これにより、タスク、ハンドラーなどのディレクトリを含むロールのディレクトリ構造が/rolesの下に作成されます。
  4. 作成された構造にタスクとプレイブックを追加します。
  5. プレイブックでロールを参照します:
  6. - hosts: webservers 
      roles: 
        - <rolename>

これにより、ロールで定義された機能が指定されたホストに適用されます。

一般的な問題のトラブルシューティング

Ansibleを使用する際に遭遇する可能性のある一般的な問題には:

結論

Ansibleは、サーバーおよびアプリケーションのプロビジョニング、構成、管理を自動化するための多目的ツールです。膨大な数のモジュールと理解しやすいYAMLで記述されたプレイブックを備えたAnsibleは、IT管理者のツールキットには欠かせないツールとなります。記載された手順に従うことで、プロフェッショナルはLinuxパッケージマネージャーを使用してAnsibleを簡単にインストールし、簡単に構成し、プレイブックとロールを使用してインフラストラクチャ全体のタスクを自動化できます。

記事の内容に誤りがある場合, あなたは


コメント