構成管理ツール「Ansible」を使ってみよう!

はじめまして!情報科学専門学校 荒川です。
ICTSC5運営委員では、主にインフラチームとしてL1周りを担当しております。

突然ですが!

150台強の仮想サーバを少ない人数で管理しようとしたとき、
今時手作業でやろうとかは思わないですよね・・・

  1. パッケージインストール
  2. ホスト名の設定
  3. 各インスタンスのパスワードを変える

たったこの3ステップを全サーバに手作業で適用させようするならば

fw3HA6j7ZeoSgdn <やってられるかこんな作業!

まあ、こうなりますよね・・・

そこで出てくるのが

構成管理ツール

その中でも今日は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

これで簡単に指定した複数のサーバで特定の処理を実行させることが可能になります!

20080331002943<ね?簡単でしょ?

まだまだ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/