Назад | Перейти на главную страницу

Автообновление сервера репозитория Centos

У меня есть сервер репозитория, работающий на Centos7.4, и все клиенты centos в моей сети выполняют обновление yum через сервер репо.

Возникает вопрос, когда есть обновления, нужно ли мне загружать вручную на сервер или есть какой-либо инструмент, который может проверять новые обновления с зеркальных сайтов репо и автоматически нажимать на указанную папку сервера репо?

Спасибо :)

Если у вас уже есть работающее зеркало локального сетевого репозитория, вам следует настроить клиентов на его использование, и они будут обновляться оттуда.

В ваших клиентах:

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

пс. Обновление и обновление - это разные вещи. Первый выполняет обновления пакета, а второй просто обновляет индекс репозитория (чтобы увидеть, какие изменения идут вверх по течению).

Репозиторий CentOS имеет очень простую структуру, поэтому вы можете обновить его локальное зеркало, используя простые rsync на вашем локальном сервере репо, примерно так:

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

Вы можете пропустить загрузку ISO-образов, и в этом случае вы исключите их из своего rsync:

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

Убедитесь, что у вас есть / в конце URL-адреса и пути, как rsync без него может работать иначе.

Заменить rsync://mirror.facebook.net/centos/ с зеркалом по вашему выбору. Вы можете увидеть список публичных зеркал здесь.

Вы можете просто использовать эту команду в своих заданиях cron - например, создать файл под /etc/cron.daily с помощью этой команды - тогда ваше локальное репо будет регулярно обновляться.