2014年8月10日日曜日

AnsibleでCentOS5をセットアップする(準備)

デプロイツール、オーケストレーションツールとして分類されるAnsibleを利用して
仕事でも利用しているCentOS5のサーバをセットアップしたいと思います。

Ansibleの呼び方が最初「あんしぶる」と思っていたのですが「あんしぼぉ」のようです。
恥ずかしい。

必要なもの

ローカル
CentOS6のepelリポジトリを利用してインストールする方法が手っ取り早かったので
vagrantも利用してCentOS6を用意しました。
Windows上で扱うのは出来るかどうかわからなかったので、仮想マシンを用意しました。
// epel repository追加
rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
// Ansibleインストール
yum -y install ansible
サーバ
AnsibleはPythonが必要なのですが、基本的には標準でインストールされています。
インストールされているバージョンが2.5以上なら問題ないようですが、CentOS5の場合は
2.4のためpython-simplejsonが必要です。
Ansibleでの実行結果がJSON形式で返ってきますが、2.4ではJSONを扱う?
パッケージが無いようなのでインストールする必要があります。

Ansibleでサーバをセットアップする前に

SSHでサーバにアクセスできる必要があります。
Ansibleで対象のサーバを操作する場合はインベントリファイル(inventory-file)と呼ばれる
ファイルに設定した内容しか操作対象にされません。
// インベントリファイルは実行時に指定することが出来るのでファイルを作成します
echo [サーバのIPアドレス] > hosts
// Python2.4がインストールされている場合はpython-simplejsonをインストール
// rawモジュールでpython-simplejsonをインストール
// -i:インベントリファイルの指定
// -k:このオプションを指定するとSSH接続するときのパスワードを求められます
// (サーバ側でパスワードなしのSSH接続の設定を行っていない場合このオプションをつけないとサーバへの認証が失敗するので、今回はこのオプションを付けました)
// -u:サーバ接続時のユーザの指定
// -m:実行するAnsibleのモジュールの指定
// -a:モジュールの引数の指定
// (""で括らないと失敗してしまいました)
ansible -i hosts [サーバのIPアドレス] -k -u [サーバのユーザ名] -m raw -a "yum -y install python-simplejson"
疲れてしまいましたので今回はこのあたりで。