cygwin+vagrant(virtualbox)+ansibleの動作確認メモ

virtual boxとvagrantのインストール

まず、virtual boxとvagrantのバイナリを公式サイトからDLしてインストールする。 特にハマリポイントはなし。

cygwinからvagrantを操作

vagrantの実行パスが環境変数に追加されており、cygwinのために 何も設定をすることなく普通にcygwinターミナルからvagrantコマンド実行可能。

ansibleのインストール

以下を参考に。

まず、以下をcygwinのsetup.exeを使ってインストール。

次に、setuptoolsのeasy_installコマンドを使ってpipをインストール。 単純に、easy_install pipとすると以下の様な感じでなぜかエラーになるので注意。

$ easy_install-2.7 pip
Couldn't find a setup script in /c/Users/kj".

以下の様にして直接tar ballをインターネットからDLする。

$ easy_install https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz

そして、pipを使ってansibleをインストール

$ pip ansible

ansibleの動作確認

下記を参考に。

vagrantでhost01という名前のVMを起動しているとき、以下のようにすることでansibleでhost01へアクセス、操作ができる。

  • host01へのssh接続情報を.ssh/configに保存。
$ vagrant ssh-config >> ~/.ssh/config
$ sed -i 's/Host default/Host host01/' ~/.ssh/config
  • ansibleでアクセスするhostの一覧を列挙。ここではhost01のみ列挙。
$ cat << EOS > hosts
host01

EOS
  • ansibleコマンドの入力省力化。 cygwinの場合、ssh_argsとしてControlMster=noを設定しないとうまくsshできない。
$ cat << EOS > ansible.cfg
[defaults]
hostfile = hosts

[ssh_connection]
ssh_args = -o ControlMaster=no

EOS

動作確認。

$ ansible host01 -m ping
host01 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
$ ansible host01 -a 'uname -a'
host01 | SUCCESS | rc=0 >>
Linux ubuntu 4.2.0-30-generic #36-Ubuntu SMP Fri Feb 26 00:58:07 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

以上。