Armoris日記 Ansible編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

Ansible を利用して手軽に検証環境構築

今回使用する Ansible とはコマンド一つで手軽に環境構築が可能な構成管理ツールの一つです。
ここでは Ansible を実際に使用して、コマンド一つで手軽に WordPress の最新環境を構築する方法を紹介します。

検証環境の紹介

検証用に用意した環境は以下の通りです。

  • Ansible用 IP : 172.16.10.24 f:id:Armoris:20200806113819p:plain

  • WordPress用 IP : 172.16.10.25 f:id:Armoris:20200806113834p:plain

Ansible-server と WordPress-server をそれぞれ VirtualBoxで作成しています。
また、今回は Ansible 用のサーバーから WordPress 用のサーバーに公開鍵認証で SSH ができるようにしています。

Ansible をセットアップ

Ansible の導入は非常に簡単です。Ansible では Python を使用するため pip を使ってインストールすることができます。
現在では Python 2.x のサポートが終了しているため、Python3 の環境に合わせてインストールを行います。
用意した Ubuntu20.04 では Python 3.8.2 がインストールされていました。

インストール

まずは Ansible をインストールするために pip3 をインストールします。

$ sudo apt update
$ sudo apt install python3-pip

pip3 がインストールされたか確認します。

$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

pip3 がインストールできたらいよいよ Ansible をインストールします。

$ pip3 install ansible

Ansible がインストールできたか確認します。

$ ansible --version
ansible 2.9.11
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.8/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.8.2 (default, Jul 16 2020, 14:00:26) [GCC 9.3.0]

Ansible を使う

インストールまで完了したら Ansible の動作確認をします。 まずは各種ファイルを入れるためのディレクトリを作成します。

$ mkdir wordpress
$ cd wordpress

次に環境構築をしたいサーバーの情報をファイルに書き込みます。 ipアドレスやユーザー名等は環境に合わせて変更してください。

$ echo "[server]
172.16.10.25 ansible_ssh_user=wordpress ansible_ssh_private_key_file=~/.ssh/id_rsa ansible_python_interpreter=/usr/bin/python3" > host

ここまでの設定ができたら環境構築用のサーバーと Ansible を通して疎通確認を行います。
SUCCESS と表示されれば成功です。

$ ansible -i host server -m ping
172.16.10.25 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

WordPress の環境構築

疎通確認まで成功したらいよいよ Ansible を使用して WordPress の環境を構築していきます。
まずは設定事項が書かれた yml を用意します。今回は私が普段使用しているものを例として掲載します。
これを wordpress.yml として保存します。

ファイルを作成できたら最後に以下のコマンドを実行します。

$ ansible-playbook -i host wordpress.yml -vvv

大量のログが流れた後、最後に以下の画像のように表示されます。 f:id:Armoris:20200806134604p:plain

その後 WordPress サーバーにブラウザからアクセスします。以下の画像のようにインストールページが表示されれば成功です。
f:id:Armoris:20200806135443p:plain

最後に

今回は Ansible を実行するサーバーと環境構築をするサーバーの2つを用意して行いましたが、Ansible はローカルに対しても実行可能です。
他にも Ansible には便利な機能が多くあります。興味がありましたらぜひ調べてみてください。
また、Ansible は自分で yml ファイルを書くことでいろいろな環境構築をコマンド一つで出来るようになります。さらに yml ファイルがあれば同じ環境をすぐに作成、共有することができるため、環境構築の作業が非常に楽になるのではないでしょうか。

今後は Ansible を使用して環境構築を効率化していきましょう!