第 3 章 在独立 Red Hat Quay 部署中设置 Clair
对于独立的 Red Hat Quay 部署,您可以手动设置 Clair。
流程
在 Red Hat Quay 安装目录中,为 Clair 数据库数据创建一个新目录:
mkdir /home/<user-name>/quay-poc/postgres-clairv4
$ mkdir /home/<user-name>/quay-poc/postgres-clairv4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令为
postgres-clairv4
文件设置适当的权限:setfacl -m u:26:-wx /home/<user-name>/quay-poc/postgres-clairv4
$ setfacl -m u:26:-wx /home/<user-name>/quay-poc/postgres-clairv4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令部署 Clair PostgreSQL 数据库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的 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'
$ sudo podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
CREATE EXTENSION
CREATE EXTENSION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Clair 需要
uuid-ossp
扩展添加到其 PostgreSQL 数据库中。对于具有适当特权的用户,Clair 会自动添加创建扩展。如果用户没有正确的特权,则必须在启动 Clair 前添加扩展。如果扩展不存在,则 Clair 尝试启动时会显示以下错误:
ERROR: Please load the "uuid-ossp" 扩展。(SQLSTATE 42501)
。如果
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.15.1 config secret
$ 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.15.1 config secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登录到配置工具,点 UI 的 Security Scanner 部分中的 Enable Security Scanning。
-
使用尚未在
quay-server
系统上使用端口设置 Clair 的 HTTP 端点,如8081
。 使用 Generate PSK 按钮创建预共享密钥(PSK)。
安全扫描器 UI
-
验证并下载 Red Hat Quay 的
config.yaml
文件,然后停止运行配置编辑器的Quay
容器。 将新配置捆绑包提取到 Red Hat Quay 安装目录中,例如:
tar xvf quay-config.tar.gz -d /home/<user-name>/quay-poc/
$ tar xvf quay-config.tar.gz -d /home/<user-name>/quay-poc/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的 Clair 配置文件创建一个文件夹,例如:
mkdir /etc/opt/clairv4/config/
$ mkdir /etc/opt/clairv4/config/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入 Clair 配置文件夹:
cd /etc/opt/clairv4/config/
$ cd /etc/opt/clairv4/config/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Clair 配置文件,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关 Clair 配置格式的更多信息,请参阅 Clair 配置参考。
使用容器镜像启动 Clair,挂载在来自您创建的文件中的配置中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意也可以运行多个 Clair 容器,但在单一容器之外,强烈建议使用 Kubernetes 或 OpenShift Container Platform 等容器编配器的部署场景。
3.1. 升级 Clair PostgreSQL 数据库 复制链接链接已复制到粘贴板!
如果要将 Red Hat Quay 升级到 13,则必须将 Clair PostgreSQL 数据库版本从 PostgreSQL 版本 13
使用以下步骤将 Clair PostgreSQL 数据库从版本 13 升级到 15。
在迁移过程成功后,Clair 安全扫描可能会临时中断。
流程
输入以下命令停止 Red Hat Quay 容器:
sudo podman stop <quay_container_name>
$ sudo podman stop <quay_container_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来停止 Clair 容器:
sudo podman stop <clair_container_id>
$ sudo podman stop <clair_container_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 SCLOrg 的数据迁移流程运行以下 Podman 进程,它允许从远程 PostgreSQL 服务器迁移数据: https://github.com/sclorg/postgresql-container/tree/master/13#data-migration
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir -p /host/data/clair-postgresql15-directory
$ mkdir -p /host/data/clair-postgresql15-directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow setfacl -m u:26:-wx /host/data/clair-postgresql15-directory
$ setfacl -m u:26:-wx /host/data/clair-postgresql15-directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这可防止数据被新容器覆盖。
停止 Clair PostgreSQL 13 容器:
sudo podman stop <clair_postgresql13_container_name>
$ sudo podman stop <clair_postgresql13_container_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 完成 PostgreSQL 迁移后,使用步骤 3 中的新数据卷挂载运行 Clair PostgreSQL 15 容器,例如 </
host/data/clair-postgresql15-directory:/var/lib/postgresql/data>
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令启动 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}
$ 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}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令启动 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}
$ 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}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如需更多信息,请参阅 数据迁移。