Ansibleを使おう

TOC

  • 構成管理ツールとは?
    • Ansibleとは?

構成管理ツールとは?

サーバーを作成した時など、マニュアル的に実行している処理、手順があると思います。

例えば・・・ - ユーザーを作って - apache入れて - sshの設定して - ディレクトリ作って などなど。

マニュアルを見ながら進めていけば、1度や2度なら問題は起こらないかもしれませんが、それが10回20回・・・となった場合、毎回同じような結果になるといえるでしょうか? (マニュアルをブラッシュアップしろよというツッコミはここでは無視)

そういうときは構成管理ツールを使いましょう。 構成管理ツールを使うと以下のことができるようになります。

  • セットアップの自動化(構成管理)
  • デプロイメント
  • これらの手順を共有できる などなど。

面倒な作業を自動化できるだけでなく、手順をコード化することができます。 しかもそれをチーム内で共有すれば、誰が何度やっても同じ結果が返ってくるようになります。

Ansibleとは?

構成管理ツールには代表的な物がいくつかあります。

  • Puppet
  • Chef
  • Ansible
  • Rex

この中で最近人気のある Ansible を使っています。

Ansible

Ansibleには主に以下の特徴があります。 - エージェントレス - 豊富なモジュール - 冪等性 - シンプルな記述

エージェントレス

  • サーバー側に特別なインストール不要
  • ローカルにpython2.4+,サーバーにpython2.6+がインストールサれていれば動く

サーバーに勝手にいろいろインストールできないという場合でも、pythonさえあれば動作します。

豊富なモジュール

以下に一例を挙げます。 - yum - git - ファイルのダウンロード - slackに通知を送る などなど。 All Modules — Ansible Documentation

標準でできることが多いので、YAML形式で設定を書いていけばいろいろな機能を使うことができます。

冪等性

Ansibleの特徴に冪等性(べきとうせい)があります。 冪等性とは「ある操作を何度行っても、毎度同じ結果が返ってくる」ということです。

すでに実行したことがある処理を再度実行した場合でも、実行し直すのではなく、状態を見て、適宜スキップしてくれます。

シンプルな記述

Ansibleの設定ファイルは一般的なYAML形式で書かれており、非常にシンプルです。

  - name: apacheのインストール 
    apt: pkg=apache2 state=latest 

  - name: MySQLのインストール 
    apt: pkg=mysql-server-5.6 state=present

このように非常にシンプル。

Ansibleを使えば、サーバーの構築はもちろん、Macの環境構築、CMSのセットアップなど多くのことを自動化出来ます。

今回はざっくりとした概要だけで、具体的な使い方は別の記事で紹介したいと思います。