接続確認のエラーと対応Ansibleの入手¶Ansibleは、Pythonモジュールです。Pythonモジュールとして入手してインストールする方法と、CentOSのRPMパッケージとして入手してインストールする方法があります。ここでは、RPMパッケージとしてインストールする方法を記載します。Ansibleパッケージの入手とインストール¶epelリポジトリからansibleパッケージをインストールします。2.0がリリースされました。これからAnsibleを使い始めるのであれば、2.0から始めるのがよいかと思われます。epelリポジトリの設定¶epelリポジトリの設定が未であれば、epelリポジトリの設定を行うパッケージ(epel-release)をcentos-extraリポジトリ(標準で利用可能)からインストールします。今回、ansibleはepel-testintリポジトリにある最新版(2.0.0)をインストールすることとし、以下のコマンドでインストールします。M依存性関連でのインストールをします。CentOSの公式リポジトリにもEPELにも、その他のメジャーなRPMリポジトリにも見当たりません。そのため、pythonのパッケージ管理ツールpipを使ってインストールします。インターネットに接続できない環境で簡単にpywinrmを利用できるよう、pywinrmからRPMパッケージを作成します。pipのインストール¶pipは、EPELリポジトリにあるので、yumでインストールします。pywinrmpywinrmのRPMパッケージ作成¶pythonモジュールにsetup.pyが含まれていれば、bdist_rpmでRPMパッケージを生成することができます。RPMパッケージ名がpywinrmのようになります。CentOS系のRPMパッケージではPythonのモジュールはパッケージ名をpython-pywimrmのように接頭辞にpython-を付けています。CentOS系のパッケージ命名に合わせるため、bdist_rpmの--spec-onlyオプションでSPECファイルのみを生成し、それを修正してからrpmbuildします。pythonモジュールpywinrmをpipコマンドで入手します。xmltodict-0.9.2.tar.gz依存するPythonモジュールも一緒にダウンロードされました。この依存するisodateとxmltodictはともにEPELリポジトリにあるので、RPM化するのはpywinrmだけです。次に、ダウンロードしたpywinrmを展開し、bdist_rpmでSPECファイルのみを生成させます。distpywinrm.spec生成されたpywinrm.specファイルと、ダウンロードしたpywinrm-0.1.1.tar.gzを、rpmbuild作業場所へコピーします。buildRPMを生成します。~/rpmbuild/RPMS/noarchpython-pywinrm-0.1.1-1.noarch.rpmできたRPMを、Ansible制御マシンへコピーしてインストールします。Directoryのドメイン参加Windowsへドメインユーザーで認証する場合、パスワード認証ではなくKerberos認証が必要です。それには、CentOSのKerberos認証クライアントパッケージを入れて設定し、pythonモジュールのkerberosをインストールします。CentOSのKerberos認証設定¶Kerberos認証に必要なパッケージをインストールします。Directoryドメイン名に合わせて変更します。DNSサーバーのIPアドレスを記述)。pythonモジュールのkerberosインストール¶pythonモジュールのkerberosをインストールします。DirectoryドメインユーザーのKerberos認証を実行しておきます。08:00:10接続確認用にインベントリファイル(~/work/hosts)を作成します。[windows]neckar[windows:vars]ansible_user=foobar@bravo.localansible_connection=winrmansibleコマンドで接続確認(win_ping)します。インベントリファイルにansible_hostでIPアドレスを指定していましたが、Kerberos認証ではOS側でも名前解決が必要です。