CentOS7.9 создает внутренний исходный сервер yum для синхронизации исходного кода Alibaba.

Описание окружающей среды:

1. Требования к интрасети предприятия: многие серверы внутри предприятия не могут подключиться к Интернету. Однако при установке пакетов программного обеспечения на каждом хосте Centos сложно настроить локальный источник yum. Также отсутствуют сторонние источники yum. Поэтому , во внутренней сети создается исходный сервер yum. Чтобы удовлетворить это требование, политика сетевого уровня позволяет этому исходному серверу yum подключаться к Интернету только в течение ограниченного времени каждое воскресенье вечером для синхронизации источника yum Alibaba Cloud.

Справочная ссылка: http://blog.itpub.net/70004783/viewspace-2790196/

2. Подготовьте два тестовых хоста: один в качестве исходного сервера yum (может подключаться к Интернету), а другой в качестве клиента.

3. Версия системы: CentOS 7.9.

Практические шаги:

1. Добавьте источник Alibaba Cloud yum.

Создайте резервную копию репозитория исходной системы.

[root@yumserver ~]# mkdir /etc/yum.repos.d/backup
[root@yumserver ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

Добавьте источник и кеш Alibaba Cloud yum (Centos-7.repo — это файл конфигурации хранилища программного обеспечения, epel-7.repo — это источник расширения и предоставляет дополнительные пакеты программного обеспечения)

[root@yumserver ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@yumserver ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@yumserver ~]# yum makecache
[root@yumserver ~]# yum repolist

 2. Установите соответствующее программное обеспечение.

[root@yumserver ~]# yum install -y wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd yum-utils createrepo

Примечание:

yum-utils:yum-utils是yum的工具包集合,reposync一个同步工具。
createrepo:createrepo是一个对rpm文件进行索引建立的工具,就是对指定目录下的rpm文件进行检索,把每个rpm文件的信息存储到指定的索引文件中,这样方便远程yum命令在安装更新时进行检索。
httpd:通过Apache软件提供web服务,也可以使用nginx。

3. Синхронизируйте исходный пакет программного обеспечения Alibaba Cloud yum с указанным каталогом/зеркалом (настраиваемым каталогом) локального сервера. 

Создайте каталог /mirror для хранения пакета программного обеспечения (chown устанавливает владельца файла и группу ассоциации файлов, chmod контролирует права пользователя на файл)

[root@yumserver ~]# mkdir -p /mirror
[root@yumserver ~]# chown -R apache:apache /mirror
[root@yumserver ~]# chmod -R 755 /mirror

 Синхронизировать исходный пакет программного обеспечения Alibaba Cloud yum

###参数-n指下载最新软件包,-p指定目录,指定本地的源--repoid(如果不指定就同步本地服务器所有的源),下载过程比较久(10个小时左右)
[root@yumserver ~]# reposync -n --repoid=extras --repoid=updates --repoid=base --repoid=epel -p /mirror

[root@yumserver ~]# du -sh /mirror/*
9.0G    /mirror/base
16G     /mirror/epel
323M    /mirror/extras
3.3G    /mirror/updates

4. Создайте складской индекс

createrepo -po /mirror/base/ /mirror/base/
createrepo -po /mirror/extras/ /mirror/extras/
createrepo -po /mirror/updates/ /mirror/updates/
createrepo -po /mirror/epel/ /mirror/epel/

5. Обновить источник данных

createrepo --update /mirror/base/
createrepo --update /mirror/extras/
createrepo --update /mirror/updates/
createrepo --update /mirror/epel/

6. Запустите и настройте службу Apache.

6.1.Запускаем службу Apache (httpd) (если httpd нет, нужно установить его с помощью yum install -y httpd)

[root@yumserver ~]# systemctl start httpd
[root@yumserver ~]# systemctl enable httpd
[root@yumserver ~]# systemctl status httpd

6.2. Системный брандмауэр разрешает порт 80 (служба Apache использует порт 80).

[root@yumserver ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
[root@yumserver ~]# firewall-cmd --reload
success

 Примечание. При необходимости вы можете запустить systemctl restart httpd, чтобы перезапустить службу.

6.3.Отключите selinux (SELINUX=disabled)

[root@yumserver ~]# vi /etc/selinux/config 

6.4. Настройка файла httpd.conf

[root@yumserver ~]# vi /etc/httpd/conf/httpd.conf
DocumentRoot "/mirror/"
<Directory "/mirror/">
    Options Indexes FollowSymLinks
    AllowOverride  None
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

 Примечание. В файле httpd.conf, настроенном выше, вам нужно найти строку со словом DocumentRoot, как показано ниже, чтобы внести изменения, вместо того, чтобы напрямую копировать и вставлять ее.

6.5. Измените файл index.html веб-интерфейса.

###修改Apache默认首页index.html,直接复制粘贴执行
cat << EOF > /usr/share/httpd/noindex/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CentOS 7 镜像</title>

<script>document.createElement("myHero")</script>
<style>
myHero {
        display: block;
        background-color: #ddd;
        padding: 10px;
        font-size: 20px;
} 
</style> 

</head>
<body>
    <h1>简介</h1>
    <hr>
    <p>CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本,是一个稳定,可预测,可管理和可复制的免费企业级计算平台。</p>
    <hr>
    <br>
    <br>

        <h1>CentOS 7 配置内部YUM源</h1>
    <br>
        <h2>1、备份</h2>
        <myHero>mkdir /etc/yum.repos.d/backup</myHero>
        <myHero>mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/</myHero>
    <br>
        <h2>2、下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ </h2>
        <myHero>curl -o /etc/yum.repos.d/CentOS-Base.repo http://xx.xx.xx.xx/repo/CentOS-Base.repo</myHero>
    <br>
        <h2>3、运行 yum makecache 生成缓存</h2>
    <br>
        <h2>4、运行 yum repolist   查看已经生成缓存</h2>
    <br>
    <br>

</body>
</html>
EOF

Примечание.  Для http://xx.xx.xx.xx выше введите IP-адрес вашего собственного исходного сервера yum.

7. Напишите файл конфигурации клиента yum source.

Создать папку репо

[root@yumserver ~]# mkdir -p /mirror/repo/
###复制粘贴执行,注意:xx.xx.xx.xx需要更改为服务器ip地址。

[root@yumserver ~]# cat << EOF > /mirror/repo/CentOS-Base.repo

[base]
name=CentOS- Base - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/base/
enable=1
gpgcheck=0
 
#released updates 
[updates]
name=CentOS- Updates - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/updates/
enable=1
gpgcheck=0
 
#additional packages that may be useful
[extras]
name=CentOS- Extras - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/extras/
enable=1
gpgcheck=0
 
#additional packages that may be useful
[epel]
name=CentOS- Epel - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/epel/
enable=1
gpgcheck=0
EOF

8. Источник конфигурации клиента yum 

Войдите в клиентскую операционную систему и выполните следующую команду ( примечание: xx.xx.xx.xx — это IP-адрес исходного сервера yum).

[root@client ~]# mkdir /etc/yum.repos.d/backup/
[root@client ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/
[root@client ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://xx.xx.xx.xx/repo/CentOS-Base.repo
[root@client ~]# yum makecache

 Пользователи также могут использовать браузер для посещения http://xx.xx.xx.xx, чтобы просмотреть метод настройки источника yum клиента.

 9. Поставьте задачу регулярной синхронизации источника yum

Редактировать сценарий

[root@yumserver ~]# cat  /mirror/script/centos_yum_update.sh
#!/bin/bash
echo 'Updating Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/aliyumrepo_$DATETIME.log
reposync -np /mirror
if [ $? -eq 0 ];then
 createrepo --update /mirror/base
  createrepo --update /mirror/extras
   createrepo --update /mirror/updates
   createrepo --update /mirror/epel
    echo "SUCESS: $DATETIME aliyum_yum update successful"
    else
     echo "ERROR: $DATETIME aliyum_yum update failed"
    fi

Добавьте запланированную задачу, которая будет выполняться каждый понедельник в 1 час ночи. 

[root@yumserver ~]# crontab -l
0 1 * * 1 /bin/bash /mirror/script/centos_yum_update.sh

Это конец. . .

рекомендация

отblog.csdn.net/Gefangenes/article/details/131134286