如何在卫星/卡特罗/工头上同步CentOS 8存储库

时间:2020-02-23 14:31:28  来源:igfitidea点击:

在本教程中,我们将学习如何在Foreman Katello和Red Hat卫星上同步和存储CentOS 8 BaseS和Appstream存储库。
Foreman是用于物理和虚拟系统的供应和生命周期管理的开源应用程序。

Foreman是Red Hat Satellites核心功能的基础是衍生的。
Katello是订阅和存储库管理的Foreman插件。
它允许我们在本地存储存储库,并提供订阅这些存储库和下载内容的方法。

第1步:创建产品

我们首先创建产品,这是在CLI或者Web控制台上完成的。

从CLI:

列出组织:

hammer organization list

创建产品

hammer product create --organization-id 1 \
  --name "CentOS 8 Linux for x86_64" \
  --description "Repositories to use with CentOS 8 Linux"

从Web控制台

转到产品>创建产品

输入产品详细信息并单击"保存"按钮以创建产品。

第2步:导入CentOS 8 GPG密钥

来自Cli.

mkdir /etc/pki/rpm-gpg/import/
cd /etc/pki/rpm-gpg/import/
wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official
hammer gpg create --organization-id 1 \
  --key "RPM-GPG-KEY-CentOS-Official" \
  --name "RPM-GPG-KEY-CentOS-8"

从Web控制台创建,导航到内容>凭据>新内容凭据

给出关键信息 - 名称,执行和粘贴密钥内容或者使用浏览按钮上传。

第3步:创建存储库

添加产品和内容凭据后,我们现在可以将CentOS 8的存储库添加到创建的产品中。

Hammer cli.

BaseOS存储库

hammer repository create --organization-id 1 \
  --product "CentOS 8 Linux for x86_64" \
  --name "CentOS 8 Base RPMS" \
  --label "CentOS_8_Base_RPMS" \
  --content-type "yum" \
  --download-policy "on_demand" \
  --gpg-key "RPM-GPG-KEY-CentOS-8" \
  --url "http://centos.mirror.liquidtelecom.com/8/BaseOS/x86_64/os/" \
  --mirror-on-sync "no"

appstream存储库

hammer repository create --organization-id 1 \
  --product "CentOS 8 Linux for x86_64" \
  --name "CentOS 8 AppStream RPMS" \
  --label "CentOS_8_AppStream_RPMS" \
  --content-type "yum" \
  --download-policy "on_demand" \
  --gpg-key "RPM-GPG-KEY-CentOS-8" \
  --url "http://centos.mirror.liquidtelecom.com/8/AppStream/x86_64/os/" \
  --mirror-on-sync "no"

Powertools存储库

hammer repository create --organization-id 1 \
  --product "CentOS 8 Linux for x86_64" \
  --name "CentOS 8 PowerTools RPMS" \
  --label "CentOS_8_PowerTools_RPMS" \
  --content-type "yum" \
  --download-policy "on_demand" \
  --gpg-key "RPM-GPG-KEY-CentOS-8" \
  --url "http://centos.mirror.liquidtelecom.com/8/PowerTools/x86_64/os/" \
  --mirror-on-sync "no"

centosplus存储库

hammer repository create --organization-id 1 \
  --product "CentOS 8 Linux for x86_64" \
  --name "CentOS 8 centosplus RPMS" \
  --label "CentOS_8_centosplus_RPMS" \
  --content-type "yum" \
  --download-policy "on_demand" \
  --gpg-key "RPM-GPG-KEY-CentOS-8" \
  --url "http://centos.mirror.liquidtelecom.com/8/centosplus/x86_64/os/" \
  --mirror-on-sync "no"

额外的存储库

hammer repository create --organization-id 1 \
  --product "CentOS 8 Linux for x86_64" \
  --name "CentOS 8 extras RPMS" \
  --label "CentOS_8_extras_RPMS" \
  --content-type "yum" \
  --download-policy "on_demand" \
  --gpg-key "RPM-GPG-KEY-CentOS-8" \
  --url "http://centos.mirror.liquidtelecom.com/8/extras/x86_64/os/" \
  --mirror-on-sync "no"

要查看产品中的存储库,请运行命令。

$hammer repository list --organization-id 1 --product "CentOS 8 Linux for x86_64"
---|--------------------------|---------------------------|--------------|--------------------------------------------------------------
ID | NAME                     | PRODUCT                   | CONTENT TYPE | URL
---|--------------------------|---------------------------|--------------|--------------------------------------------------------------
65 | CentOS 8 AppStream RPMS  | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/AppStream/x86_64/os/
64 | CentOS 8 Base RPMS       | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/BaseOS/x86_64/os/
67 | CentOS 8 centosplus RPMS | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/centosplus/x86_64/os/
68 | CentOS 8 extras RPMS     | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/extras/x86_64/os/
66 | CentOS 8 PowerTools RPMS | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/PowerTools/x86_64/os/
---|--------------------------|---------------------------|--------------|--------------------------------------------------------------

从Web控制台

同样可以从产品>存储库下的工头/卫星网络仪表板上实现

第4步:Sync存储库

添加了存储库后,启动同步将存储库内容拉到本地卫星/katello server.hammer cli:列表存储库

$hammer repository list --organization-id 1 --product "CentOS 8 Linux for x86_64"
---|--------------------------|---------------------------|--------------|--------------------------------------------------------------
ID | NAME                     | PRODUCT                   | CONTENT TYPE | URL
---|--------------------------|---------------------------|--------------|--------------------------------------------------------------
65 | CentOS 8 AppStream RPMS  | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/AppStream/x86_64/os/
64 | CentOS 8 Base RPMS       | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/BaseOS/x86_64/os/
67 | CentOS 8 centosplus RPMS | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/centosplus/x86_64/os/
68 | CentOS 8 extras RPMS     | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/extras/x86_64/os/
66 | CentOS 8 PowerTools RPMS | CentOS 8 Linux for x86_64 | yum          | http://centos.mirror.liquidtelecom.com/8/PowerTools/x86_64/os/
---|--------------------------|---------------------------|--------------|--------------------------------------------------------------

请注意ids然后循环循环以同步存储库。

for i in $(seq 64 68); do \
  hammer repository synchronize --async --organization-id 1 \
  --product "CentOS 8 Linux for x86_64" \
  --id "$i"; \
  done

一段时间后确认同步状态。

$hammer product list  --name "CentOS 8 Linux for x86_64" --organization-id 1
---|---------------------------|----------------------------------------|---------------|--------------|-----------------
ID | NAME                      | DESCRIPTION                            | ORGANIZATION  | REPOSITORIES | SYNC STATE
---|---------------------------|----------------------------------------|---------------|--------------|-----------------
37 | CentOS 8 Linux for x86_64 | Repositories for CentOS 8 Linux x86_64 | Mycompany LTD | 5            | Syncing Complete.
---|---------------------------|----------------------------------------|---------------|--------------|-----------------

同步也可以在Web管理仪表板上启动。

第5步:创建内容视图

从CLI或者Web控制台创建内容视图。

hammer content-view create --organization-id 1 \
  --name "CentOS_8" \
  --description "Content view for CentOS 8"

第6步:将存储库添加到Content View

将存储库添加到创建的内容视图中。

for i in $(seq 64 68); do \
  hammer content-view add-repository --organization-id 1 \
  --name "CentOS_8" \
  --product "CentOS 8 Linux for x86_64" \
  --repository-id "$i"; \
  done

第7步:发布内容视图

发布内容视图。

hammer content-view publish --organization-id 1 \
  --name "CentOS_8" \
  --description "Publishing repositories"

步骤8:创建激活密钥

获取可用的生命周期环境:

$hammer lifecycle-environment list --organization-id 1
---|---------|-----
ID | NAME    | PRIOR
---|---------|-----
1  | Library |
---|---------|-----

创建激活密钥

$hammer activation-key create --organization-id 1 \
  --name "centos8" \
  --description "CentOS 8 Activation Key" \
  --lifecycle-environment "Library" \
  --content-view "CentOS_8" \
  --unlimited-hosts
$hammer activation-key list --organization-id 1
---|-----------------|------------------|-----------------------|-------------------------
ID | NAME            | HOST LIMIT       | LIFECYCLE ENVIRONMENT | CONTENT VIEW             
---|-----------------|------------------|-----------------------|-------------------------
1  | centos7         | 0 of Unlimited   |                       |                          
2  | centos8         | 0 of Unlimited   |                       |                          
---|-----------------|------------------|-----------------------|-------------------------

步骤9:将订阅添加到激活密钥

列出组织中的订阅

$hammer subscription list --organization-id 1

将上面的订阅添加到我们的激活密钥:

hammer activation-key add-subscription --organization-id 1 \
  --name "centos8" \
  --quantity "1" \
  --subscription-id "164"

其中164是最后一个命令所示的订阅的ID。

第10步:将CentOS 8机器订阅到Satellite/Foreman(Katello)

我们的存储库现在已准备好被CentOS 8客户消费。