構成管理ツール「Ansible」を使ってみよう!
はじめまして!情報科学専門学校 荒川です。
ICTSC5運営委員では、主にインフラチームとしてL1周りを担当しております。
突然ですが!
150台強の仮想サーバを少ない人数で管理しようとしたとき、
今時手作業でやろうとかは思わないですよね・・・
- パッケージインストール
- ホスト名の設定
- 各インスタンスのパスワードを変える
たったこの3ステップを全サーバに手作業で適用させようするならば
<やってられるかこんな作業!
まあ、こうなりますよね・・・
そこで出てくるのが
構成管理ツール
その中でも今日はAnsibleの紹介。
そもそもAnsibleとは?
- 管理対象のサーバーに特別なソフトウェア(エージェント)をインストール不要!
SSH で対象サーバに接続さえ出来ればいい - クライアント側になにもいらない
- モジュールは「どんな」言語でも書ける
- 誰が何回実行しても、同じ結果になる ←ココ重要
設定ファイルを用意せずとも、簡単に指定した複数のサーバーで特定の処理を実行させることが可能です。
早速使ってみました。
Vagrantで起動したCentOSにAnsibleをインストールしてみました。
CentOSは7.2.1511を、Ansibleは1.9.4を使用しました。
EPEL リポジトリのインストール
# yum install -y epel-release
yum install コマンドでインストール
# yum install -y ansible
Ansibleでは、設定ファイルをYAML形式というシンプルなフォーマットで記述することが出来ます。
例: Apache と PHP をインストールする
webapp.yml
- hosts: webserver
user: vagrant
sudo: yes
tasks: - name: install apache
action: yum pkg=httpd state=installed - name: install php
action: yum pkg=php state=installed
実行
$ ansible-playbook webapp.yml
これで簡単に指定した複数のサーバで特定の処理を実行させることが可能になります!
<ね?簡単でしょ?
まだまだAnsibleの使い方はたくさんあるので、詳しくは参考サイトを見てください。
参考サイト
http://knowledge.sakura.ad.jp/tech/3124/
http://tdoc.info/blog/2013/04/20/ansible.html
http://apatheia.info/blog/2013/04/06/about-ansible/