Documentation survey

Synchronization CLI Tools

要在服务器容器内访问外壳,请在容器主机上运行 mgrctl term。在该主机上,可以像往常一样运行 CLI 工具。

There are two tools for synchronizing clients to the server. For clients that are connected to the SUSE Customer Center, use mgr-sync. For all other clients, use spacewalk-repo-sync.

1. Synchronize SCC Repositories With mgr-sync

The primary use of mgr-sync is to connect to the SUSE Customer Center, retrieve product and package information, and prepare channels for synchronization with the SUSE Manager Server.

此工具应与 SUSE 支持订阅配合使用。openSUSE、CentOS 和 Ubuntu 等开源发行套件不需要此工具。

下表中列出了 mgr-sync 的可用命令和参数。请对 mgr-sync 命令使用以下语法:

mgr-sync [-h] [--version] [-v] [-s] [-d {1,2,3}] {list,add,refresh,delete}
Table 1. mgr-sync 命令
Command Description Example Use

list

List channels, organization credentials, or products

mgr-sync list channels

add

Add channels, organization credentials, or products

mgr-sync add channel <channel_name>

refresh

Refresh the local copy of products, channels, and subscriptions

mgr-sync refresh

delete

Delete existing SCC organization credentials from the local system

mgr-sync delete credentials

sync

Synchronize specified channel or ask for it when left blank

mgr-sync sync channel <channel_name>

要查看特定于某个命令的完整选项列表,请使用以下命令:

mgr-sync <命令> --help
Table 2. mgr-sync 可选参数
选项 选项缩写 说明 示例用法

help

h

显示命令用法和选项

mgr-sync --help

version

不适用

显示当前安装的 mgr-sync 版本

mgr-sync --version

verbose

v

提供详细输出

mgr-sync --verbose refresh

store-credentials

s

将身份凭证存储在本地隐藏文件中

mgr-sync --store-credentials

debug

d

记录附加调试信息。需要指定级别 1、2、3。3 提供的调试信息量最多

mgr-sync -d 3 refresh

no-sync

不适用

add 命令结合使用,以添加产品或通道,而无需开始同步

mgr-sync --no-sync add <通道名称>

mgr-sync 的日志位于:

  • /var/log/rhn/mgr-sync.log

  • /var/log/rhn/rhn_web_api.log

2. Synchronize Repositories with spacewalk-repo-sync

The spacewalk-repo-sync tool synchronizes software repositories into SUSE Manager channels. In most cases, this happens automatically, but you can use the tool to run it manually if required.

The spacewalk-repo-sync tool has these primary commands:

Table 3. spacewalk-repo-sync Options
Option Description Example Use

list

List all custom channels and the repositories assigned to them.

spacewalk-repo-sync --list

channel

Synchronize a single channel to all repositories assigned to it.

spacewalk-repo-sync --channel <custom-channel>

deep-verify

ignore cached package checksums.

spacewalk-repo-sync --deep-verify

force-all-errata

force re-importing all the patches.

spacewalk-repo-sync --deep-verify

no-packages

excludes packages from the operation.

spacewalk-repo-sync --deep-verify --no-packages

For a complete list of options, see the spacewalk-repo-sync manpage:

man spacewalk-repo-sync

3. 同步查错

If you are having trouble synchronizing with spacewalk-repo-sync you can find out more by watching the HTTP log as the command runs.

Procedure: Troubleshooting Synchronization Problems
  1. Log the HTTP output into /var/log/zypper.log:

    ZYPP_MEDIA_CURL_DEBUG=2 spacewalk-repo-sync --channel <channel-label>
  2. Export the setting:

    export URLGRABBER_DEBUG=DEBUG
  3. Start the synchronization:

    /usr/bin/spacewalk-repo-sync --channel <channel-label> --type yum
    You can increase the debug level, by adding the [option]``-vvv`` option to the command.
  4. When the complete completes, or fails, disable debug mode:

    unset URLGRABBER_DEBUG

3.1. Add Custom Extra HTTP Headers

You can add custom HTTP headers to the requests made by spacewalk-repo-sync at the time of synchronization. The custom HTTP headers are defined in the /etc/rhn/spacewalk-repo-sync/extra_headers.conf configuration file. The headers can be defined by repository name or channel label. You can also define global headers by putting them in the main section. For example:

[testchannel]
X-MY-HEADER-1=VALUE
X-MY-HEADER-2=VALUE

[mychannel]
X-MY-HEADER-3=VALUE
X-MY-HEADER-4=VALUE

[main]
X-MYGLOBAL-HEADER=VALUE

This can be particularly useful when dealing with Red Hat Update Infrastructure (RHUI) repositories in the public cloud.