第3章 スタンドアロンの Red Hat Quay デプロイメントでの Clair のセットアップ


スタンドアロンの Red Hat Quay デプロイメントの場合、Clair を手動でセットアップできます。

手順

  1. Red Hat Quay インストールディレクトリーに、Clair データベースデータ用の新しいディレクトリーを作成します。

    $ mkdir /home/<user-name>/quay-poc/postgres-clairv4
  2. 次のコマンドを入力して、postgres-clairv4 ファイルに適切な権限を設定します。

    $ setfacl -m u:26:-wx /home/<user-name>/quay-poc/postgres-clairv4
  3. 次のコマンドを入力して、Clair PostgreSQL データベースをデプロイします。

    $ sudo podman run -d --name postgresql-clairv4 \
      -e POSTGRESQL_USER=clairuser \
      -e POSTGRESQL_PASSWORD=clairpass \
      -e POSTGRESQL_DATABASE=clair \
      -e POSTGRESQL_ADMIN_PASSWORD=adminpass \
      -p 5433:5432 \
      -v /home/<user-name>/quay-poc/postgres-clairv4:/var/lib/pgsql/data:Z \
      registry.redhat.io/rhel8/postgresql-15
  4. Clair デプロイメント用に PostgreSQL uuid-ossp モジュールをインストールします。

    $ sudo podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'

    出力例

    CREATE EXTENSION

    注記

    Clair では、uuid-ossp 拡張機能を PostgreSQL データベースに追加する必要があります。適切な権限を持つユーザーの場合は、拡張機能を作成すると、Clair によって自動的に追加されます。ユーザーが適切な権限を持っていない場合は、Clair を開始する前に拡張機能を追加する必要があります。

    拡張機能が存在しない場合は、Clair が起動しようとすると、ERROR: Please load the "uuid-ossp" extension.(SQLSTATE 42501) エラーが発生します。

  5. 実行中の場合は、Quay コンテナーを停止し、設定モードで再始動して、既存の設定をボリュームとしてロードします。

    $ sudo podman run --rm -it --name quay_config \
      -p 80:8080 -p 443:8443 \
      -v $QUAY/config:/conf/stack:Z \
      registry.redhat.io/quay/quay-rhel8:v3.13.3 config secret
  6. 設定ツールにログインし、UI の Security Scanner セクションで Enable Security Scanning をクリックします。
  7. quay-server システムでまだ使用されていないポート (8081 など) を使用して、Clair の HTTP エンドポイントを設定します。
  8. Generate PSK ボタンを使用して、事前共有キー (PSK) を作成します。

    セキュリティースキャナー UI

    Security Scanner

  9. Red Hat Quay の config.yaml ファイルを検証してダウンロードし、設定エディターを実行している Quay コンテナーを停止します。
  10. 新しい設定バンドルを Red Hat Quay インストールディレクトリーに展開します。次に例を示します。

    $ tar xvf quay-config.tar.gz -d /home/<user-name>/quay-poc/
  11. Clair 設定ファイル用のフォルダーを作成します。次に例を示します。

    $ mkdir /etc/opt/clairv4/config/
  12. Clair 設定フォルダーに移動します。

    $ cd /etc/opt/clairv4/config/
  13. 以下のように、Clair 設定ファイルを作成します。

    http_listen_addr: :8081
    introspection_addr: :8088
    log_level: debug
    indexer:
      connstring: host=quay-server.example.com port=5433 dbname=clair user=clairuser password=clairpass sslmode=disable
      scanlock_retry: 10
      layer_scan_concurrency: 5
      migrations: true
    matcher:
      connstring: host=quay-server.example.com port=5433 dbname=clair user=clairuser password=clairpass sslmode=disable
      max_conn_pool: 100
      migrations: true
      indexer_addr: clair-indexer
    notifier:
      connstring: host=quay-server.example.com port=5433 dbname=clair user=clairuser password=clairpass sslmode=disable
      delivery_interval: 1m
      poll_interval: 5m
      migrations: true
    auth:
      psk:
        key: "MTU5YzA4Y2ZkNzJoMQ=="
        iss: ["quay"]
    # tracing and metrics
    trace:
      name: "jaeger"
      probability: 1
      jaeger:
        agent:
          endpoint: "localhost:6831"
        service_name: "clair"
    metrics:
      name: "prometheus"

    Clair の設定形式の詳細は、Clair 設定リファレンス を参照してください。

  14. コンテナーイメージを使用して Clair を起動し、作成したファイルから設定にマウントします。

    $ sudo podman run -d --name clairv4 \
    -p 8081:8081 -p 8088:8088 \
    -e CLAIR_CONF=/clair/config.yaml \
    -e CLAIR_MODE=combo \
    -v /etc/opt/clairv4/config:/clair:Z \
    registry.redhat.io/quay/clair-rhel8:v3.13.3
    注記

    複数の Clair コンテナーを実行することもできますが、単一のコンテナーを超えるデプロイシナリオでは、Kubernetes や OpenShift Container Platform などのコンテナーオーケストレーターを使用することが強く推奨されます。

3.1. Clair PostgreSQL データベースのアップグレード

Red Hat Quay をバージョン 13 にアップグレードする場合は、Clair PostgreSQL データベースのバージョンを PostgreSQL バージョン 13 バージョン 15 に移行する必要があります。これには、Clair PostgreSQL 13 データベースを停止し、移行スクリプトを実行してプロセスを開始する必要があります。

Clair PostgreSQL データベースをバージョン 13 からバージョン 15 にアップグレードするには、次の手順に従います。

重要

移行手順が成功した後、Clair セキュリティースキャンが一時的に中断される可能性があります。

手順

  1. 次のコマンドを実行して、Red Hat Quay コンテナーを停止します。

    $ sudo podman stop <quay_container_name>
  2. 次のコマンドを実行して、Clair コンテナーを停止します。

    $ sudo podman stop <clair_container_id>
  3. SCLOrg の データ移行 手順から次の Podman プロセスを実行します。これにより、リモート PostgreSQL サーバーからのデータ移行が可能になります。

    $ sudo podman run -d --name <clair_migration_postgresql_database> 1
      -e POSTGRESQL_MIGRATION_REMOTE_HOST=<container_ip_address> \ 2
      -e POSTGRESQL_MIGRATION_ADMIN_PASSWORD=remoteAdminP@ssword \
      -v </host/data/directory:/var/lib/pgsql/data:Z> \ 3
      [ OPTIONAL_CONFIGURATION_VARIABLES ]
      registry.redhat.io/rhel8/postgresql-15
    1
    Clair PostgreSQL 15 移行データベースの名前を入力します。
    2
    新しい Clair PostgreSQL 15 データベースコンテナーの IP アドレス。sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" postgresql-quay コマンドを実行して取得できます。
    3
    最初の Clair PostgreSQL 13 デプロイメントとは異なるボリュームマウントポイントを指定し、そのディレクトリーのアクセス制御リストを変更する必要があります。以下に例を示します。
    $ mkdir -p /host/data/clair-postgresql15-directory
    $ setfacl -m u:26:-wx /host/data/clair-postgresql15-directory

    これにより、新しいコンテナーによってデータが上書きされるのを防ぎます。

  4. Clair PostgreSQL 13 コンテナーを停止します。

    $ sudo podman stop <clair_postgresql13_container_name>
  5. PostgreSQL の移行が完了したら、手順 3 の新しいデータボリュームマウントを使用して、Clair PostgreSQL 15 コンテナーを実行します (例: </host/data/clair-postgresql15-directory:/var/lib/postgresql/data>)。

    $ sudo podman run -d --rm --name <postgresql15-clairv4> \
      -e POSTGRESQL_USER=<clair_username> \
      -e POSTGRESQL_PASSWORD=<clair_password> \
      -e POSTGRESQL_DATABASE=<clair_database_name> \
      -e POSTGRESQL_ADMIN_PASSWORD=<admin_password> \
      -p 5433:5432 \
      -v </host/data/clair-postgresql15-directory:/var/lib/postgresql/data:Z> \
        registry.redhat.io/rhel8/postgresql-15
  6. 次のコマンドを実行して、Red Hat Quay コンテナーを起動します。

    $ sudo podman run -d --rm -p 80:8080 -p 443:8443 --name=quay \
    -v /home/<quay_user>/quay-poc/config:/conf/stack:Z \
    -v /home/<quay_user>/quay-poc/storage:/datastorage:Z \
    {productrepo}/{quayimage}:{productminv}
  7. 次のコマンドを実行して Clair コンテナーを起動します。

    $ sudo podman run -d --name clairv4 \
    -p 8081:8081 -p 8088:8088 \
    -e CLAIR_CONF=/clair/config.yaml \
    -e CLAIR_MODE=combo \
    registry.redhat.io/quay/clair-rhel8:{productminv}

詳細は、Data Migration を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.