web-dev-qa-db-ja.com

Centosリポジトリサーバーの自動更新

Centos7.4でリポジトリサーバーを実行していますが、ネットワーク内のすべてのcentosクライアントがリポジトリサーバーを介してyum更新を実行します。

更新がある場合、サーバーに手動でダウンロードする必要がありますか、それともリポジトリミラーサイトからの新しい更新をチェックして、リポジトリサーバーの指定されたフォルダーに自動的にプッシュダウンできるツールはありますか?

ありがとうございました :)

2
David A

ローカルネットワークリポジトリミラーがすでに機能している場合は、それを使用するようにクライアントを構成する必要があります。そうすれば、クライアントはそこから更新されます。

クライアントの場合:

cd /etc/yum.repos.d

vim mylocal.repo

埋める:

[mylocalrepo]
name=Local CentOS Repository
baseurl=http://my-repo-server/CentOS/7/4
gpgcheck=0

どこ my-repo-serverは、リポジトリサーバーのURLまたはIPです。

インターネットを介してクライアントを更新したくない場合は、クライアントから公式のパブリックリポジトリのURLも削除/コメントする必要があります。

自動更新部分を忘れました:

自動更新/自動アップグレードを機能させるには、クライアントでさらにいくつかの変更を行う必要があります。

Yum-cronをインストールします

Sudo yum install yum-cron

Yum-cronを構成します

Sudo vim /etc/yum/yum-cron.conf

そのファイル内の他の自己文書化されたオプションの中で、yum-cronで自動アップグレードするパッケージを選択できます。これは、選択できるアップグレードオプションです。

# default                            = yum upgrade
# security                           = yum --security upgrade
# security-severity:Critical         = yum --sec-severity=Critical upgrade
# minimal                            = yum --bugfix upgrade-minimal
# minimal-security                   = yum --security upgrade-minimal
# minimal-security-severity:Critical =  --sec-severity=Critical upgrade-minimal

defaultをそのままにして、代わりにsecurityを使用することはおそらくお勧めしません。すべてのパッケージを自動的にアップグレードすると、予期しない問題が発生する可能性があるためです。

起動時に自動起動するサービスを開始して有効にします。

Sudo systemctl start yum-cron
Sudo systemctl enable yum-cron

ps。アップグレードと更新は2つの異なるものです。前者はパッケージのアップグレードを実行し、後者はリポジトリインデックスを更新するだけです(どの変更がアップストリームであるかを確認するため)。

2
Leo

CentOSリポジトリの構造は非常に単純なので、ローカルリポジトリサーバーで単純なrsyncコマンドを使用して、次のようにローカルミラーを更新できます。

rsync -vaSH rsync://mirror.facebook.net/centos/ /your/mirror/directory/

ISOのダウンロードをスキップすることもできます。その場合、rsyncでISOを除外します。

rsync --exclude isos --exclude '*.iso' -vaSH rsync://mirror.facebook.net/centos/ /your/mirror/directory/

rsyncがないと動作が異なる可能性があるため、URLとパスの最後に/があることを確認してください。

rsync://mirror.facebook.net/centos/を選択したミラーに置き換えます。 パブリックミラーのリストはこちら をご覧ください。

このコマンドは、cronジョブに含めることができます-例:このコマンドを使用して/etc/cron.dailyの下にファイルを作成します。そうすると、ローカルリポジトリが定期的に更新されます。