Centos7.3でYumプライベートウェアハウスを構築する

方法1、

ローカルisoミラーを使用してローカルyumウェアハウスを作成します。この方法はお勧めしません。yumサーバーがパブリックネットワークに接続できない環境でのみ使用されます。結局、isoミラーのパッケージは非常に限られています。

puttyのアップロードツールを使用して、完全なcentosオペレーティングシステムをアップロードします

G:\centos>pscp "CentOS-7.3-x86_64-DVD-1611 (1).iso" [email protected]:/root/

[email protected]'s password:

CentOS-7.3-x86_64-DVD-161 | 961092 kB | 11175.5 kB/s | ETA: 00:04:56 | 22%

mount -o loop CentOS-7.3-x86_64-DVD.iso /mnt

mkdir /centos7.3

cp -r /mnt/Packages/*.rpm /centos7.3/

yum install -y createrepo

createrepoを使用してインデックスを作成します

createrepo /centos7.3

インデックスを更新

createrepo --update /centos7.3

yumキャッシュデータをクリーンアップします

yum clean all

yum makecache

システムのデフォルトのyumソースを変更する

vi /etc/yum.repos.d/CentOS-Base.repo

[ base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=os&infra=$infra

baseurl=file:///centos7.3

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7.3

テスト環境Centos7.3

この記事に関連するfpmの知識については、[FPMを使用したrpmパッケージの作成](http://mp.weixin.qq.com/s?__biz=MzUxNzgwOTQyMQ==&mid=2247483775&idx=1&sn=c08d52afb4ba735286815f6cf28d35e1&chksm=f993351dcee4bc0bba192f24f5e729aa052210bac8771e4df4e7a8633a3619c68d10983138f5&scene=21#wechat_redirect)を参照してください。

方法1、

ローカルisoミラーを使用してローカルyumウェアハウスを作成します。この方法はお勧めしません。yumサーバーがパブリックネットワークに接続できない環境でのみ使用されます。結局、isoミラーのパッケージは非常に限られています。

mount -o loop CentOS-7.3-x86_64-DVD.iso /mnt

mkdir /centos7

cp -r /mnt/Packages/*.rpm /centos7/

createrepoを使用してインデックスを作成します

createrepo /centos7

インデックスを更新

createrepo --update /centos7

yumキャッシュデータをクリーンアップします

yum clean all

次に、yum makecache #updatecacheを使用します

システムのデフォルトのyumソースを変更する

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

vi /etc/yum.repos.d/CentOS-Base.repo

[ base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=os&infra=$infra

baseurl=file:///centos7

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

次に、テストするntpdateパッケージをインストールします

yum install ntpdateは、以下に示すように、ローカルのyumソースが正常にインストールされていることがわかります。

方法2、

rsyncを使用して、パブリックネットワーク上のyumリポジトリと同期します。この方法は、特にネットワークが不安定で簡単に中断される場合に推奨されます。rsyncは高速の増分バックアップツールであるため、最後に中断されたファイルから同期を継続できます。欠点は、多くのポータルyumソースがrsync同期をサポートしていないことです。

パブリックネットワークのyumソースのリポジトリファイルはここから直接ダウンロードされるため、createrepoを使用してインデックスを作成する必要はなく、同期直後に使用できます。

基本パッケージと関連するリポジトリファイル

/usr/bin/rsync -avrtzH --delete--delay-updates rsync://rsync.mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages//var/www/html/centos/7/os/x86_64/Packages/>/tmp/rsyncbase.log 2>&1/usr/bin/rsync -avrtzH --delete--delay-updates rsync://rsync.mirrors.ustc.edu.cn/centos/7/os/x86_64/repodata//var/www/html/centos/7/os/x86_64/repodata/>/tmp/rsyncbaserepo.log 2>&1

パッケージと関連するリポジトリファイルを更新します

/usr/bin/rsync -avrtzH --delete--delay-updates rsync://rsync.mirrors.ustc.edu.cn/centos/7/updates/x86_64/Packages//var/www/html/centos/7/updates/x86_64/Packages/>/tmp/rsyncupdate.log 2>&1/usr/bin/rsync -avrtzH --delete--delay-updates rsync://rsync.mirrors.ustc.edu.cn/centos/7/updates/x86_64/repodata//var/www/html/centos/7/updates/x86_64/repodata/>/tmp/rsyncupdaterepo.log 2>&1

epel拡張パック

/usr/bin/rsync -avrtzH --delete--delay-updates --exclude=SRPMS/--exclude=aarch64/--exclude=ppc64/--exclude=ppc64le/--exclude=x86_64/debug/ rsync://rsync.mirrors.ustc.edu.cn/epel/7//var/www/html/epel/7/>/tmp/rsyncepel.log 2>&1

パラメータの説明-a、-archiveアーカイブモード。これは、ファイルを再帰的に転送し、すべてのファイルの所有権を保持することを意味します

方法3、

reposyncを使用してパブリックネットワークのyumソースと同期します

これがテスト用のAlibabaCloudのepelソースです

1、 これで、AlibabaCloudイメージソースリポジトリファイルがローカルに送信されます。

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

2、 httpdサービスをインストールして、ストレージyumソースを提供します。

[ root@localhost~] yum install httpd -y

デフォルトの構成を使用します。特別なニーズがある場合は、構成ファイル/etc/httpd/conf/httpd.confを変更できます。

httpデフォルトのホームディレクトリ/ var / www / html

3、 yum-utilsをインストールして、reposyncサービスを提供します

yum install yum-utils -y

4、 指定されたウェアハウスIDをローカルyumソースとして選択します。

yum repolistコマンドを実行して、yumウェアハウスIDを表示します

epelをローカルyumソースとして使用し、/ var / www / htmlをyumウェアハウスのルートディレクトリとして使用します

reposync -r epel -p /var/www/html

コマンドの実行後、AlibabaCloudのepelソースはローカルの/ var / www / htmlに同期されます。epelディレクトリはrpmパッケージを格納するために/ var / www / htmlに自動的に作成されます。最初の同期には、さらに時間がかかる場合があります。長い、約1Wのマルチrpmパッケージ。

5、 createrepoコマンドは、/ var / www / html / epelの下にrpmパッケージのローカルYUMウェアハウスを作成します。目的は、repodataディレクトリを生成し、インデックス情報を自動的に作成することです。

[ root@localhost ~]# createrepo -pdo /var/www/html/epel/ /var/www/html/epel/

最初のディレクトリはrepodataストレージディレクトリであり、2番目のディレクトリはインデックス情報を生成する必要があるyumソースウェアハウスディレクトリです。

他のイントラネットの他のサーバーにログインし、yumソースサーバーと通信できるようにします。リポジトリファイルを書き込みます。

vim /etc/yum.repos.d/epel-7.リポジトリの内容は以下のとおりです
[ epel]
name=local epel
baseurl=http://yumソースサーバーIP/epel
enabled=1
gpgcheck=0

yum clean all、yum makecacheを実行して、yumキャッシュをクリアおよび更新します

6、 ローカルのyumソースをAlibabaCloudミラーソースと同期できるようにするために、スクリプトのタイミングタスクを使用して同期できます。

vim /root/yum-update.sh
#! /bin/bash
datetime=`date +"%Y-%m-%d"`
exec >/var/log/epel.log  #同期ログ出力
reposync -d -r epel -p /var/www/html/    #ミラーソースの同期
if[ $?-eq 0];then
 createrepo --update  /var/www/html/epel   #新しいrpmが追加されるたび,Epelインデックス情報を更新する必要があります
echo "SUCESS: $datetime epel update successful"else
echo "ERROR: $datetime epel update failed"
fi

時間指定タスク:毎週土曜日の午前3時にyumソースを同期します

crontab -e

3 * * 6 /bin/bash/root/yum-update.sh

独自の構成要件に属するカスタマイズされたyumウェアハウスを作成します

上記で説明したのは、パブリックyumソースからローカルに移動する方法です。必要に応じてtarパッケージを使用してコンパイルおよびインストールし、fpmツールを使用してrpmインストールパッケージを生成し、最後に生成されたrpmパッケージを独自のyumウェアハウスに配置します。

fpmツールをインストールする

yum install -y ruby rubygems ruby-devel rpm-build
gem sources --remove https://rubygems.org/
gem sources -a https://mirrors.aliyun.com/rubygems/
gem install fpm -v 1.4.0

最初にnginxを手動でコンパイルする必要があります

groupadd nginx
useradd -g nginx -s /sbin/nologin nginx
mkdir /var/log/nginx&&chown -R nginx:nginx /var/log/nginx 
mkdir /usr/local/www&&chown -R nginx:nginx /usr/local/www

wget http://nginx.org/download/nginx-1.14.0.tar.gz
. /configure --prefix=/usr/local/nginx --user=nginx --group=nginx \
- - with-http_ssl_module \
- - with-http_stub_status_module \
 - - with-http_flv_module  \
- - with-http_gzip_static_module
make
make install DESTDIR=/tmp/nginx  #インストールファイルのコピーを生成し、にインストールします/tmp/nginx
make install

rpmパッケージを生成するために必要な4つのスクリプト

rpmパッケージのプレインストールスクリプト

[ root@localhost scripts]# cat install_nginx_before.sh 
#! /bin/bash
date=`date +%Y%m%d%H%M%S`[[-n `ps aux|grep sbin/nginx|grep -v grep`]]&& killall -9 nginx
if[-f /usr/local/nginx/conf/nginx.conf ];then
 mv -f /usr/local/nginx/conf/nginx.conf /tmp/nginx.conf-${date}
fi
if[-d /usr/local/nginx ];then
 rm -rf /usr/local/nginx
fi
[[- n `getent group nginx`]]|| groupadd  nginx
[[- n `getent passwd nginx`]]|| useradd nginx -g nginx -s /sbin/nologin
exit 0

rpmインストールスクリプト

[ root@localhost scripts]# cat install_nginx_after.sh 
#! /bin/bash
log="/var/log/nginx"
web="/usr/local/www"if[-d "$log"];then
 rm -rf "$log"
 mkdir "$log"else
 mkdir "$log"
fi

if[-d "$web"];then
 rm -rf "$web"
 mkdir "$web"else
 mkdir "$web"
fi
chown -R nginx.nginx /var/log/nginx
chown -R nginx.nginx /usr/local/www
exit 0

rpmパッケージをアンインストールする前のスクリプト

[ root@localhost scripts]# cat uninstall_nginx_before.sh 
#! /bin/bash
[[- n `ps aux|grep sbin/nginx|grep -v grep`]]&& killall -9 nginx
exit 0

rpmパッケージのアンインストール後のスクリプト

[ root@localhostscripts]# cat uninstall_nginx_after.sh 
#! /bin/bash
rm -rf/usr/local/nginx
rm -rf /usr/local/www
rm -rf /var/log/nginx
userdel -r nginx
exit 0

fpmコマンドパッケージ

fpm -s dir -t rpm -n nginx_test -v 1.14.0-d "pcre-devel,openssl-devel >= 1:1.0.2k-8"--pre-install /tmp/scripts/install_nginx_before.sh --post-install /tmp/scripts/install_nginx_after.sh --pre-uninstall /tmp/scripts/uninstall_nginx_before.sh --post-uninstall /tmp/scripts/uninstall_nginx_after.sh -C /tmp/nginx/

生成されたrpmをプライベートウェアハウスにコピーします

cp nginx_test12-1.14.0-1.x86_64.rpm /var/www/html/private

createrepoを使用してインデックスを作成します

createrepo /var/www/html/private/

最後に、クライアントマシンのyumウェアハウス構成ファイルを見てみましょう。ここでは、例として192.168.10.59がyumウェアハウスです。

基地の地元の倉庫

[ root@localhost tmp]#cat /etc/yum.repos.d/CentOS-Base.repo

[ base]

name=CentOS-$releasever- Base

mirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=os&infra=$infra

baseurl=http://192.168.10.59/centos/releasever/os/basearch/

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

released updates

[ updates]

name=CentOS-$releasever- Updates

mirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=updates&infra=$infra

baseurl=http://192.168.10.59/centos/releasever/updates/basearch/

baseurl=http://mirror.centos.org/centos/releasever/updates/basearch/

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

epelの地元の倉庫

[ root@localhost tmp]#cat /etc/yum.repos.d/epel.repo

[ epel]

name=Extra Packagesfor Enterprise Linux $releasever - $basearch

baseurl=http://192.168.10.59/epel/7/x86_64/

failovermethod=priority

enabled=1

gpgcheck=0

gpgkey=http://mirrors.sohu.com/RPM-GPG-KEY-EPEL-$releasever

**最後に、rpmパッケージのプライベートyumウェアハウスはfpm **を介して生成されます。

[ root@localhost tmp]#cat /etc/yum.repos.d/private.repo

[ private]

name=private - Base

mirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=os&infra=$infra

baseurl=http://192.168.10.59/private/

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

最初にyumcleanをすべて実行してから、yummakecacheを実行します

yum repolistコマンドを実行して、yumウェアハウスIDを表示します

yum installnginx_test12を実行します

nginx_test12テストパッケージがyumを介して正常にインストールできることがわかります。

https://blog.csdn.net/u013127762/article/details/54314550

http://blog.51cto.com/gdlwolf/1729020

http://www.mamicode.com/info-detail-1839438.html

Recommended Posts

Centos7.3でYumプライベートウェアハウスを構築する
CentOSビルドプライベートgit
CentOSでHadoopを構築する
CentOS7.6でzabbixモニタリングzabbix4.2をビルドする
CentOS7.6でzabbixモニタリングzabbix4.2をビルドする
CentOS7のyumにDockerCEをインストールします
CentOS7ビルドジェンキンス
Centosビルドlnmp
Centos7ビルドpython3.8.5 + scrapy + gerapy
CentOS7のLNMP環境でDiscuzフォーラムを構築する
CentOS7のLNMP環境でDedecmsWebサイトを構築する
CentOS7.3 64ビット、ビルドZabbix3.4
Linux(centos7)ビルドgitlab
centos7でk8s1.9.9をビルドする
Centos7YUMはMariaDB10.0をインストールします
CentOS6.7ビルドLNMP環境
Centos7にMySQL5.7をインストールします
Centos6.9ビルドrabbitmq3.6.8クラスター
CentOSサーバー展開(YUM)
CentOS 7.2YumはMySQL5.6をインストールします
ジェンキンスはセントスに基づいて構築されています
CentOS7にredis5.0をインストールします
Centos7YUMはMariaDB10.0をインストールします
Centos7ビルドDNSサービス
セントスでのKVM仮想化
CentOS5からCentOS5.8YUMソース
CentOS7ビルドLNMP環境
Centos6.5でドッカー環境を構築する
CentOs7.3ビルドSolrスタンドアロンサービス
CentOS7でOpenV **サーバーを構築する
CentOS7でOpenLDAPサーバーを構築する
CentOSでMariaDBレプリケーションを構築する
Centos6.10はpythonとyumを再インストールします
CentOs7.3ビルドZooKeeper-3.4.9スタンドアロンサービス
CentOSはハーバーミラーウェアハウスを展開します
Centosでカーネルパニックをデバッグする
ubuntuは地元のyum倉庫を作ります
CentOs7.3ビルドSolrCloudクラスターサービス
virtualboxのCentosネットワーク設定
CentOS 7yumインストールPHP7.3チュートリアル
gccをcentosで6.4.0に更新します