今更ですが
エンジニアたるもの流行りものには敏感でなければ。というよりも、既にデファクトスタンダードになっているようなので、今更ではあるものの実際に使ってみて、どんなものかは把握しておかなければ……
というわけでAnsibleでWebサーバを立てるということをやっていきたいと思います。(超簡単でした)
Ansibleとは
構成管理ツール
インフラエンジニアで、仕事でサーバを立てる機会がある方ならば分かると思いますが、同じ環境がいくつも欲しい場合があるのです。それも素早く。
そんな時に、自動で同じ環境を構築出来るのがAnsibleというわけです。
よくAnsibleは冪等性が保証されるとか言われているあれがそれです。
もしかするとVMに詳しい方なら、dockerみたいなものと言われた方がピンとくるのかもしれません。
今からDockerfileを書くということです。
とにかく使ってみる
環境
- AWS(当然無料枠)
- CentOS7
手順
- ansibleインストール
- hosts設定
- playbook記述
- 実行
インストールから
# アップデート&インストール
# yum -y update; yum -y install ansible;
# yum list installed | grep ansible
ansibleがインストールされていればOKです。
hosts
今回はお試しなのでサーバ一台構築しておしまいですが、通常は複数のホストに対して、それぞれのミドルウェアを入れて結合していくのが普通です。
ansibleはそれが可能。
# vi /etc/ansible/hosts
[webserver]
localhost
ローカルホストの1台分のみ記述。
[ ]内の文字列はグループ名で、グループ毎に設定を適用することも可能。
playbook
これは構築手順書みたいなもの。
ansibleはこの手順書の通りにインストールやチューニングをしていく。
# vi /etc/ansible/webserver-ansible.yml
- hosts: localhost
connection: local
tasks:
- name: Install HTTPD
yum:
name: httpd
state: latest
- name: Run HTTPD
service:
name: httpd
state: started
enabled: yes
なんとなく分かるかもしれないけど、一応上から説明をしていくと、httpdの最新版(latest)をインストールし、httpdを起動し、ついでに起動実行も有効にしている。
これで準備は完了。
実行
# ansible-playbook -i hosts weberver-ansible.yml
# systemctl status httpd
エラーがなく問題なくapacheが起動していれば成功。
こんな簡単に構築出来るもんなんですね……凄い。