編集済み 2 数週間前 によって ExtremeHow 編集チーム
Ansible自動化ウブントゥ構成管理リナックスインストールオペレーティングシステムツールシステムセットアップ
翻訳が更新されました 4 数日前
ITインフラストラクチャ管理におけるタスクの自動化は、効率と信頼性のために重要です。Ansibleは、自動化、構成管理、およびアプリケーションデプロイメントに使用される強力なオープンソースツールです。これは、多数のサーバーを簡単に管理しつつ、環境を再現可能で一貫性のあるものに保つことができます。このガイドでは、UbuntuにAnsibleをセットアップして使用する手順を説明します。この包括的なチュートリアルでは、インストール、インベントリファイルの設定、プレイブックの作成と実行、Ansibleの基本概念の理解についてカバーします。
Ansibleはそのシンプルさと使いやすさで知られています。ターゲットノードへのエージェントインストールが不要で、管理対象のサーバーで実行するソフトウェアが無いためです。AnsibleはSSHを介してサーバーと通信し、Unix系システムおよびWindowsプラットフォームの両方を管理できます。Ansibleを使用する主な利点は、シンプルで強力かつ柔軟な構成管理とオーケストレーション機能を提供することです。
UbuntuにAnsibleをセットアップするのは簡単なプロセスです。インストール前に、次のコマンドを端末で実行してシステムを最新の状態にしておきましょう。
sudo apt update sudo apt upgrade
次に、次のコマンドを実行してAnsibleをインストールします。
sudo apt install ansible
インストールが完了したら、Ansibleのバージョンを確認して検証します。
ansible --version
現在インストールされているバージョンの出力が表示され、インストールが成功したことを確認できます。
Ansibleには、管理したいサーバーのリストを含むインベントリファイルが必要です。デフォルトでは、このファイルは/etc/ansible/hosts
にあります。ホストは、後でプレイブックで参照できるように、わかりやすい名前でグループ化された個々のIPアドレスまたはホスト名を使用して定義できます。
次に、シンプルなインベントリファイル設定の例を示します。
[webservers] 192.168.1.10 192.168.1.11 [dbservers] dbserver.example.com
この例では、webserversおよびdbserversという2つのサーバーグループを定義しています。各グループには、関連するマシンのIPまたはドメイン名が含まれています。グループを使用すると、複数のサーバーで同時にタスクを実行できます。
複雑なプレイブックを作成する前に、Ansibleを使用してサーバー上でアドホックコマンドを実行できます。これは特に迅速なタスクに役立ちます。アドホックコマンドを実行するための構文は次のとおりです。
ansible <group> -m <module> -a "<command>"
たとえば、すべてのWebサーバーでディスク容量を確認する必要がある場合:
ansible webservers -m shell -a "df -h"
これは“webservers”グループのシェルモジュールを呼び出し、「df -h」コマンドを実行します。アンサブルコマンドを実行するユーザーが、インベントリファイルにリストされているホストにSSHアクセスできることを確認してください。
アドホックコマンドは便利ですが、プレイブックはAnsibleの輝く部分です。プレイブックとは、指定したホストで実行する一連のシリアル化されたタスクを含むYAMLファイルです。
シンプルなAnsibleプレイブックの例は次のようになります。
- hosts: webservers become: yes tasks: - name: Install Apache apt: name: apache2 state: present
このプレイブックは、Ansibleに「webservers」グループのすべてのホストに接続し、デフォルトのsudoメソッドを使用して特権を昇格し(become: yes)、それぞれのホストにApache Webサーバーパッケージをインストールするよう指示します。
Ansibleは変数を使用して動的な構成を可能にします。変数は、プレイブックレベル、ホストレベル、またはグループレベルで定義できます。変数を直接プレイブック内で宣言できます。
- hosts: webservers vars: http_port: 80 tasks: - name: Ensure Apache is installed apt: name: apache2 state: present - name: Ensure Apache is started service: name: apache2 state: started
Ansibleはデフォルトでシステムに関するファクトを収集します。これらの収集した値を使用して、プレイブック内で意思決定を行うことができます。特定のホストから収集したファクトを表示するには、次のコマンドを実行します。
ansible <hostname> -m setup
Ansibleでは、パッケージが更新されたときにサービスを再起動するなどのアクションをトリガーする場合にのみ役立つタスクがあります。ここでハンドラーと通知が登場します。
- hosts: webservers tasks: - name: Install apache2 apt: name: apache2 state: latest notify: - restart apache handlers: - name: restart apache service: name: apache2 state: restarted
上記のプレイブックは、「install apache2」タスクが何かを変更する(Apacheのインストールまたはアップグレードなど)場合にのみApacheサービスを再起動します。ハンドラーは通知された場合、常にプレイブックの実行の最後に実行されます。
Ansibleの柔軟性により、論理的な意思決定を行うことができます。条件文を使用して、特定の状況下でのみタスクを実行するように準備できます。条件文はJinja2テンプレートを使用して式を評価します。
- hosts: webservers tasks: - name: Install Apache 2 apt: name: apache2 state: latest when: ansible_os_family == "Debian"
この例では、タスクがApacheをインストールするのは、ノードのオペレーティングシステムファミリーがDebianである場合にのみ実行されます。ループを使用すると異なるアイテムでタスクを複数回実行できます。
- hosts: webservers tasks: - name: Install needed packages apt: name: "{{ item }}" state: present loop: - "apache2" - "vim" - "git"
このタスクはリストを反復処理し、リストされた各パッケージ(Apache、Vim、およびGit)をインストールします。
モジュールと機能の豊富なエコシステムを持つAnsibleは、ITインフラストラクチャを自動化および管理するための強力なフレームワークを提供します。このガイドに従って、UbuntuでAnsibleをセットアップし、基本的なプレイブックとアドホックコマンドを実行する方法を理解する必要があります。ここで議論されたツールと概念は基礎に過ぎず、Ansibleの機能はここでカバーされているものをはるかに超えています。Ansibleを使用する経験を積むことで、その能力が幅広いインフラストラクチャの課題に対応できるほど強力であることを実感し、信頼性の高い自動化を通じて効率が向上します。
記事の内容に誤りがある場合, あなたは