Ansibleは、ITインフラストラクチャの自動化ツールで、複数のサーバーやシステムを効率的に管理するために使用されます。Ubuntu 18.04でAnsibleをインストールし、設定する手順を以下に示します。
1. 依存関係のインストール
最初に、Ubuntu 18.04にAnsibleをインストールするために必要な依存関係をインストールします。これには、software-properties-common
パッケージが必要です。このパッケージは、PPA(Personal Package Archive)を管理するためのツールです。
bashsudo apt update sudo apt install -y software-properties-common
2. Ansibleリポジトリの追加
Ansibleは、公式のUbuntuリポジトリに含まれていますが、最新バージョンを使用するためには、Ansibleの公式PPAを追加する必要があります。以下のコマンドでPPAを追加します。
bashsudo add-apt-repository ppa:ansible/ansible sudo apt update
3. Ansibleのインストール
リポジトリを追加した後、次にAnsibleをインストールします。以下のコマンドでインストールが可能です。
bashsudo apt install -y ansible
インストールが完了したら、Ansibleのバージョンを確認して、正しくインストールされたかを確認します。
bashansible --version
4. インベントリファイルの作成
Ansibleのインベントリファイルは、管理するサーバーの情報を格納するファイルです。Ubuntuでは、通常/etc/ansible/hosts
にインベントリファイルが作成されます。このファイルを編集して、管理対象のホストを追加します。
bashsudo nano /etc/ansible/hosts
以下のように、管理対象のホストを記述します。
ini[web]
192.168.1.10
192.168.1.11
[db]
192.168.1.20
5. Ansibleの基本的なコマンド
Ansibleが正しくインストールされたかを確認するために、次のコマンドを実行してみましょう。これは、インベントリファイルに登録されたホストに対して、pingを実行するコマンドです。
bashansible all -m ping
もしすべてのホストが正常に応答すれば、Ansibleは正常にセットアップされています。
6. SSHキーの設定(必要に応じて)
Ansibleは、SSHを使ってリモートホストに接続します。もしパスワードなしで接続するためには、SSHキーを設定する必要があります。以下の手順で、SSHキーを生成し、リモートホストにコピーします。
- ローカルマシンでSSHキーを生成します。
bashssh-keygen -t rsa -b 2048
- 生成した公開鍵をリモートホストにコピーします。
bashssh-copy-id user@remote_host
これにより、パスワードなしでリモートホストにアクセスできるようになります。
7. Ansible Playbookの作成と実行
Ansibleの最も強力な機能は、Playbookを使った自動化です。Playbookは、YAML形式で書かれた一連のタスクを定義するファイルです。以下は、簡単なPlaybookの例です。
yaml---
- name: Install nginx on web servers
hosts: web
become: yes
tasks:
- name: Install nginx
apt:
name: nginx
state: present
- name: Start nginx service
service:
name: nginx
state: started
このPlaybookは、web
グループに属するサーバーにnginxをインストールし、サービスを起動します。Playbookを実行するには、以下のコマンドを使用します。
bashansible-playbook -i /etc/ansible/hosts playbook.yml
8. Ansibleの設定ファイルのカスタマイズ
Ansibleは、設定ファイルを変更することで、より高度な設定を行うことができます。設定ファイルは、/etc/ansible/ansible.cfg
にあります。このファイルを編集することで、デフォルトの設定を変更することができます。
例えば、デフォルトのインベントリファイルの場所を変更するには、ansible.cfg
ファイルで以下の設定を行います。
ini[defaults]
inventory = /path/to/your/inventory
9. Ansibleの高度な機能
Ansibleには、さらに多くの高度な機能があります。例えば、Ansible Galaxyを利用して、既存のロールをインストールして使用することができます。Galaxyは、Ansibleのためのロールやコレクションのリポジトリです。
以下のコマンドで、Ansible Galaxyからロールをインストールすることができます。
bashansible-galaxy install geerlingguy.apache
インストール後、Playbookでそのロールを使用することができます。
まとめ
以上が、Ubuntu 18.04にAnsibleをインストールし、基本的な設定を行う手順です。Ansibleを使うことで、サーバーの管理や自動化が効率的に行えるようになります。さらに、Playbookを活用すれば、複雑なインフラの管理も簡単に行えるようになります。