6.4. 高度なカスタム File Integrity Operator タスクの実行

6.4.1. データベースの再初期化

File Integrity Operator が予定される変更を検知する場合、データベースの再初期化が必要になることがあります。

手順

  • FileIntegrity カスタムリソース (CR) に file-integrity.openshift.io/re-init のアノテーションを付けます。

    $ oc annotate fileintegrities/worker-fileintegrity file-integrity.openshift.io/re-init=

    古いデータベースとログファイルがバックアップされ、新しいデータベースが初期化されます。oc debug を使用して起動する Pod の以下の出力に示されるように、古いデータベースおよびログは /etc/kubernetes の下にあるノードに保持されます。

    出力例

     ls -lR /host/etc/kubernetes/aide.*
    -rw-------. 1 root root 1839782 Sep 17 15:08 /host/etc/kubernetes/aide.db.gz
    -rw-------. 1 root root 1839783 Sep 17 14:30 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_38
    -rw-------. 1 root root   73728 Sep 17 15:07 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_55
    -rw-r--r--. 1 root root       0 Sep 17 15:08 /host/etc/kubernetes/aide.log
    -rw-------. 1 root root     613 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_38
    -rw-r--r--. 1 root root       0 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_55

    レコードの永続性を確保するために、生成される設定マップは FileIntegrity オブジェクトによって所有されません。そのため、手動のクリーンアップが必要になります。結果として、以前の整合性の失敗が依然として FileIntegrityNodeStatus オブジェクトに表示されます。