その2Ansibleこんにちは!ライトウェルの山田(ペンネーム)博之です。Windows7のサポート終了まで1年を切りました。皆さんの会社ではWindows7の端末がどれくらい残っていますか?あと1年以内にアップデートを終えないといけないと思うと気が遠くなりますね。AnsibleによるWindows設定の自動化について、Ansible?なにそれ?美味しいの?と思っている方もいらっしゃるかと思いますので、まずはAnsibleの基本的なおさらいと実際に操作ができるところまでをお伝えしたいと思います。OSがインストールされていること・IPアドレスの設定が完了していること・アンチウイルスソフトなどで、ポート5986が制御されていないことWinRMの有効化AnsibleとWindowsはWinRMのポートを使用して、通信します。Windows側で必要なWinRMの設定をまとめたサンプルスクリプトがGithub上で提供されています。このサンプルスクリプトをダウンロードしたら、適当なフォルダにスクリプトを格納して実行します。ここではC:\tempに格納してます。・PowerShellのリモート実行の有効化これでWindows側の準備は完了です。Ansibleの環境準備OSの準備Linux系のOSを用意してください。ここでは、CentOS7.3を使用しております。python-pipのインストールAnsibleではpythonのライブラリを多く使用しており、pythonのパッケージをいくつか追加することがあるためpythonのパッケージを管理するpipというユーティリティを事前にyumでインストールします。python-pipは、CentOSのデフォルトのレポジトリにはないようです。代わりにepelレポジトリから導入することができます。yumでepelレポジトリを追加しましょう。epelが追加出来たら、epel上でpython-pipは”python2-pip”という名前で提供されていますので、yumでインストールします。お好きなほうでインストールして下さい。ansibleAnsibleのインストール後の確認インストールできたことを確認しましょう。~]#pythoneパッケージの追加AnsibleからWindowsを操作するには、pythonパッケージpywinrmの導入が必要になります。pywinrm以上、Ansible側の環境準備です。Ansible側の設定ここでAnsibleの構成要素をおさらいしましょう。構成要素は多数ありますが、代表的なものを6つあげます。今回はPlaybookとInventoryの2つを作成して、Windowsを操作してみましょう。Inventoryファイルの作成Ansibleから操作対象への接続情報として下記の様な形でIPアドレス、ユーザーパスワードなどを記載します。※#の右のコメントは実際には、入れないで下さい。ここでわわかりやすくするために記載しています。コメントを入れる場合は、前後の行に入れてください。HTTPSの証明書の検証しないここでPlaybookを。その前にAnsibleにはPlaybookを書かずにad-hocで実行が可能なansibleコマンドと言う便利なものがございます。“pong”}Inventoryに記載したホストについてSUCCESSになっていれば、接続成功です。余談ですが、ansibleコマンドの構文は下記になります。<Inventoryファイル名>例では。win_pingと呼ばれるwindowsのansibleとの接続確認の為のモジュールを使用してInventoryファイルで定義したwindowsというグループに対して接続確認を行っています。通常OSのpingコマンドとは異なり、IPアドレスの疎通だけではSUCCESSにはなりません。Inventoryに記載されたユーザーパスワード情報を使ってWinRMでの接続ができるかを確認しています。それでは接続確認ができたので以下のような簡単なPlaybookを作成してみましょう。Usersになります。failed=0最後の出力結果がfailedになっていなければ成功です。数百台と聞いて、ちょっと引いてます。簡単なPlaybookを作成してみました。今回は、もう少し発展させてみようと思います。その42019/07/29こんにちわ。ここからは、実際の処理内容について説明します。前回は、roleとvarsを使いました。ライトウェルで営業マネージャーをしております小林と申します。8月もあっという間に終わってしまいますが、まだまだ暑いですねー。クーラーがないと生きていけない樋口です。ライトウェルで営業マネージャーをしております小林でございます。