AnsibleをMSYS2で使う

Pocket

前回、VagrantとDockerで環境構築をしたので、Ansibleを使ってみることにしました。

Vagrantで作ったゲストOSに対してAnsibleで環境設定をするには、大きく分けると次の3つの方法があります。

  1. Vagrantfileの中ではプロビジョニングを使わず、ゲストOSを立ち上げるだけにして、ansible単独でゲストOSを操作する方法
  2. Vagrantfileの中でconfig.vm.provision 'ansible_local'として、Vagrantのansible_localというプロビジョニングを使う方法
  3. Vagrantfileの中でconfig.vm.provision 'ansible'として、Vagrantのプロビジョニングを使う方法

1番の方法は、WindowsホストではAnsibleからサポートされていません。

2番の方法は、AnsibleをゲストOSにインストールして、ゲストOS内でAnsibleを動かします。よって、Windowsホストでも使えます。

3番の方法は、WindowsホストではVagrantからは公式にはサポートされていません。そもそも1番の方法でansibleコマンドが動かないと、Vagrantでは動きようがありません。

このように、Windowsをホストにする場合、ansible_localしか方法はないのかと思いました。

実際、MSYS2のpipでパッケージを入れてみても、ansibleコマンドはエラーが出て動きません。

でも、Cygwinで動かしている人がいて、何とかならないかなとやってみることにしました。

最近はMSYS2をメインに使っています。そこでMSYS2で検索してみると、Ansibleを動かした人がいました。

[ansible] MSYS2 で ansible を使えるようにする手順

この通りやったらansibleが動き出しました。ありがとうございます。

ポイントは、32bitバージョンのMSYS2(msys2-i686-20161025.exe)を使うことです。64bitバージョンでは動きませんでした。

(2017/05/31)訂正
MSYS2のバージョンが問題ではなかったです。インストールするパッケージがmsysのpython2である必要がありました。

pacman -S python2

です。mingw-w64-x86_64-python2とかではだめでした。スタートメニューから起動するコンソールがMSYS2 MinGW 64bitやMSYS2 MinGW 32bitだと、MinGWのpythonがインストールしてある時はそちらが優先的に使われてしまうので気をつけてください。

インストールが終わったら、SSHでゲストOSにアクセスできることを確認して、ansibleが使えるようになります。

次回は、SSHについて書きます。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください