Ansible を使用して Windows Update を実行する


目的

SIDfmVM には、ホストの Windows Update を実行するための Ansible Playbook を生成する機能があります。 このドキュメントでは、その機能で生成した Ansible Playbook を使用し、Windows Update を実行する手順を示します。

前提条件

Playbook を生成する

インベントリを作成する (初回または必要に応じて)

インベントリとは、Ansible の操作対象となるホストやそれらのグループを列挙したファイルのことです。 このインベントリに定義されたホストやホストグループは、Ansible の Playbook やアドホックコマンドを実行する際に参照されます。 インベントリにはホストやホストグループに関する変数 (ホスト変数/グループ変数) を設定したり、ホストへの接続に使用するユーザを指定することも可能です。

SIDfmVM において生成した Playbook を実行するために、インベントリに対象となるホストを追加します。

  1. Ansible コントロールノードに Ansible を使用するユーザでログインします。

  2. インベントリファイルを作成あるいは編集します。

    ※ Ansible を dnf/yum/apt コマンドを使用してパッケージからインストールした場合、/etc/ansible/hosts にインベントリファイルが作成されます。 しかしながら、プロダクション環境とテスト環境でインベントリファイルを分けることなどを考慮して、新たにインベントリファイルを作成することをお勧めします。

    エディタで hosts という名前のファイルを作成してください。既に hosts を作成している場合は、既存のファイルを開いてください。

    $ vi hosts
  3. グループを作成します。(設定する際には適切な値を設定してください。)

    [windows_servers]
  4. グループ変数を定義し、Windows ホストへ接続情報を追加します。(設定する際には適切な値を設定してください。)

    [HTTPS 経由でのパスワード認証の場合]

    [windows_servers:vars]
    ansible_user: auser
    ansible_password: 'YourPasswd'
    ansible_port: 5986
    ansible_connection: winrm
    ansible_winrm_server_cert_validation: ignore
  5. グループにホストを追加します。

    ここに追加するホスト名は、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:
    (以下略)
  6. 保存後、閉じます。

    編集後の 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 を実行する

  1. Ansible コントロールノードに Ansible を使用するユーザでログインします。

  2. 生成した Playbook を Ansible コントロールノードにコピーします。

  3. Playbook を実行します。

    $ ansible-playbook -i hosts ansible_playbook_for_windows_update_on_winserver0.yml

    状態が Failed になった場合は、何らかの原因で処理に失敗しています。 「Ansible をインストールする - トラブルシューティング」 を参照の上、原因を修正し、再度 Playbook を実行してください。

注意事項

プロダクション環境に対して Playbook を実行する前に必ずテスト環境でお試しください

SIDfmVM から生成された Ansible Playbook は、適用された更新プログラムやそれらを利用するアプリケーションが正常に動作することを保証するものではありません。

Playbook によるプログラムの更新に伴い、アプリケーションやサービスが正常に動作しなくな。 このため、プロダクション環境に対して Playbook を実行する前に、必ずテスト環境で試行し、Playbook 実行後の挙動をご確認ください。