Tronde.ansible_role_rhel_patchmanagement

RHELパッチ管理

Red Hat Enterprise Linuxサーバーのパッチ管理です。

使用例

私たちの環境では、各部門がアプリケーションを実行するためにRHELサーバーを展開しています。

この役割は、毎月1回、対象ノードにRed Hatのアドバイザリーをインストールする仕組みを提供するために作成されました。システム管理者は、RHSA、RHBA、またはRHEAなど、インストールするアドバイザリーを選択できます。

特別な使用例では、最低限のセキュリティを確保するためにRHSAのみをインストールします。インストールは毎月強制的に行われます。アドバイザリーは「パッチセット」にまとめられています。これにより、パッチサイクルのすべての段階で同じアドバイザリーが使用されることが保証されます。

Ansibleインベントリでは、ノードは次のいずれかのグループにまとめられ、パッチインストールのスケジュールを定義します:

  • [rhel-patch-phase1] - 月の第2火曜日
  • [rhel-patch-phase2] - 月の第3火曜日
  • [rhel-patch-phase3] - 月の第4火曜日
  • [rhel-patch-phase4] - 月の第4水曜日

対象ノードでパッケージが更新された場合、ホストはその後再起動します。

生産システムが最も重要なので、アドバイザリーのインストールによる障害リスクとサービスのダウンタイムを減らすために、これらは2つの別々のグループ(phase3とphase4)に分けられています。

もちろん、どのホストをどのフェーズに配置するか、パッチサイクルを実行する日を選択することができます。必要に応じて役割を調整してください。

Bashスクリプトを使用して、期限日にパッチ管理を実行するプレイブックをトリガーします。

この役割をセットアップすると、RHELパッチ管理が完全に自動化されて実行されます。役割の使用や役割自体に関する質問は、問題追跡システムを自由に利用してください。また、見つけたバグを報告してください。

アドバイザリー情報の取得方法

アドバイザリーの情報を取得し、vars/main.ymlにパッチセットを作成するには、create_vars.shスクリプトを実行する必要があります。

アドバイザリーに関するさらなる情報は、カスタマーポータルからRed Hatアドバイザリー通知に登録するか、yum updateinfo list allコマンドを使用して取得できます。

役割の変数

vars/main.ymlの役割変数は、cronによってトリガーされるcreate_vars.shスクリプトによって自動的に設定されます。

例のプレイブック

次のように役割の使い方の例を示すことは、ユーザーにとって良いことです:


  • hosts: all

    tasks:

    • name: OSによるグループ化 group_by: key=os_{{ ansible_distribution }} changed_when: False
  • hosts: os_RedHat roles:

    • rhel_patchmanagement

この役割を使用する方法

以下の手順は、上記の使用例で機能することを考慮しています。異なる使用例がある場合は、いくつかの調整が必要かもしれません。このリポジトリをクローンしたり、必要なファイルをすべてダウンロードしたことを前提としています。その後、RHELパッチ管理を機能させるために以下のステップを実行してください。

  1. run_rhel_patch_mgmt.shを編集し、ノードに接続するために使用するSSHプライベートキーを挿入します。
  2. run_rhel_patch_mgmt.shを毎週火曜日と水曜日の選択した時刻に実行するcronジョブを作成します。このスクリプトは、上記の使用例で示された時刻にAnsibleプレイブックをトリガーします。必要に応じて調整できます。
  3. patch_rhel.ymlを編集して必要に応じて調整します。デフォルトでは、このプレイブックは、インベントリ内のすべてのRed Hatオペレーティングシステムを持ち、対応するrhel-patch-phaseXグループのメンバーであるホストで実行されます。
  4. variables.txt.examplevariables.txtに名前を変更し、その内容を自分の環境に合わせて編集します。
  5. create_vars.shを編集し、variables.txtファイルの絶対パスを設定します。
  6. variables.py.examplevariables.pyに名前を変更し、Ansibleインベントリファイルへの絶対パスを指定するように編集します。
  7. デフォルトでは、create_vars.shは毎月の第1火曜日に実行され、新しいvars/main.ymlファイルを作成し、現在のパッチセットとmail_text.txtファイルを作成します。
  8. send_mail関数を使用して、指定したメールアドレスに自動的に通知を送ることができます。この機能はデフォルトで有効です。
  9. オプション: mail_text.txtの内容を使用して、インストールされるアドバイザリーをユーザーに通知することもできます。

ライセンス

MIT

著者情報

  • 原著者: Joerg Kastning <joerg(dot)kastning(at)uni-bielefeld(dot)de>
プロジェクトについて

Patchmanagement for Red Hat Enterprise Linux.

インストール
ansible-galaxy install Tronde.ansible_role_rhel_patchmanagement
ライセンス
mit
ダウンロード
350
所有者
This is my personal GitHub account. For more information on me, visit my blog and/or social accounts.