Ansible を使用して Windows Update を実行する
目的
SIDfmVM には、ホストの Windows Update を実行するための Ansible Playbook を生成する機能があります。 このドキュメントでは、その機能で生成した Ansible Playbook を使用し、Windows Update を実行する手順を示します。
前提条件
-
Ansible のコントロールノードが構成済みであること
未構成の場合は Ansible をインストール してください。
-
Microsoft 社から公式にサポートされている Windows OS であること
※ Linux ホストについては Ansible を使用して rpm/deb パッケージを更新する をご参照ください。
-
ホストは Ansible から操作可能であること
設定方法の詳細につきましては Ansible で Windows ホストを操作できるように設定する をご覧ください。
Playbook を生成する
インベントリを作成する (初回または必要に応じて)
インベントリとは、Ansible の操作対象となるホストやそれらのグループを列挙したファイルのことです。 このインベントリに定義されたホストやホストグループは、Ansible の Playbook やアドホックコマンドを実行する際に参照されます。 インベントリにはホストやホストグループに関する変数 (ホスト変数/グループ変数) を設定したり、ホストへの接続に使用するユーザを指定することも可能です。
SIDfmVM において生成した Playbook を実行するために、インベントリに対象となるホストを追加します。
-
Ansible コントロールノードに Ansible を使用するユーザでログインします。
-
インベントリファイルを作成あるいは編集します。
※ Ansible を dnf/yum/apt コマンドを使用してパッケージからインストールした場合、
/etc/ansible/hosts
にインベントリファイルが作成されます。 しかしながら、プロダクション環境とテスト環境でインベントリファイルを分けることなどを考慮して、新たにインベントリファイルを作成することをお勧めします。エディタで hosts という名前のファイルを作成してください。既に hosts を作成している場合は、既存のファイルを開いてください。
$ vi hosts
-
グループを作成します。(設定する際には適切な値を設定してください。)
[windows_servers]
-
グループ変数を定義し、Windows ホストへ接続情報を追加します。(設定する際には適切な値を設定してください。)
[HTTPS 経由でのパスワード認証の場合]
[windows_servers:vars]
ansible_user: auser
ansible_password: 'YourPasswd'
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
-
グループにホストを追加します。
ここに追加するホスト名は、Playbook の
hosts:
項目と一致させてください。 逆に、お客様にとって都合のよい値をインベントリにホストとして登録し、生成した Playbook のhosts:
項目をそれに合わせる形でも問題ございません。hosts ファイル:
[windows_servers]
winserver0.example.com
生成した Playbook (Windows):
- name: Windows Updates
hosts: winserver0.example.com
tasks:
- name: windows updates
win_updates:
category_names:
(以下略)
-
保存後、閉じます。
編集後の hosts ファイル:
[windows_servers]
winserver0.example.com
[windows_servers:vars]
ansible_user: auser
ansible_password: 'YourPasswd'
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
Playbook を実行する
-
Ansible コントロールノードに Ansible を使用するユーザでログインします。
-
生成した Playbook を Ansible コントロールノードにコピーします。
-
Playbook を実行します。
$ ansible-playbook -i hosts ansible_playbook_for_windows_update_on_winserver0.yml
状態が
Failed
になった場合は、何らかの原因で処理に失敗しています。 「Ansible をインストールする - トラブルシューティング」 を参照の上、原因を修正し、再度 Playbook を実行してください。
注意事項
プロダクション環境に対して Playbook を実行する前に必ずテスト環境でお試しください
SIDfmVM から生成された Ansible Playbook は、適用された更新プログラムやそれらを利用するアプリケーションが正常に動作することを保証するものではありません。
Playbook によるプログラムの更新に伴い、アプリケーションやサービスが正常に動作しなくな。 このため、プロダクション環境に対して Playbook を実行する前に、必ずテスト環境で試行し、Playbook 実行後の挙動をご確認ください。