複数のCentOS 7マシンを稼働させていて、カスタマイズしたパッケージを配布したい場合、ローカルネットワーク上にyumリポジトリサーバを構築するという手があります。
これにより、複数のCentOS 7マシンにカスタマイズしたパッケージを効率的に配布できるようになります。
ここでは、CentOS 7でHTTP接続可能なyumリポジトリサーバーをローカルネットワーク上に構築する手順を紹介します。
目次
動作環境
この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
CentOS(Minimal) | 7.6.1810 |
yumリポジトリサーバーの構築手順
パッケージのインストール
まずは、必要となるパッケージをインストールします。
ここでは、WebサーバーとしてNginxを利用します。
# yum install creatrepo nginx
Nginxの設定
Nginxの設定ファイルを作成します。
# vi /etc/nginx/conf.d/pkgsv.conf
server {
listen 80 default_server;
server_name pkgsv.local;
root /usr/share/nginx/html/repos;
autoindex on;
autoindex_localtime on;
}
設定ファイルを作成したら、Nginxサービスの起動設定を行います。
# systemctl start nginx
# systemctl enable nginx
ファイアウォール設定
ファイアウォールで、HTTP接続を許可します。
# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success
リポジトリの作成
Nginxのルートディレクトリ配下に、リポジトリ用のディレクトリを作成します。
# mkdir -p /usr/share/nginx/html/repos/custom
次に、作成したディレクトリに、配布したいカスタムパッケージを配置します。
ここでは、例として「zip」というパッケージをカスタムパッケージに見立てて、配置しています。
# cd /usr/share/nginx/html/repos/custom
# yum install -y yum-utils
# yumdownloader zip
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp updates: ftp-srv2.kddilabs.jp
zip-3.0-11.el7.x86_64.rpm
パッケージの配置が完了したら、メタデータを作成します。
# createrepo /usr/share/nginx/html/repos/custom
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
以上で、サーバー側の設定は完了です。
クライアントマシンから接続確認
クライアントマシン上で、構築したyumリポジトリサーバーへ接続するためのrepoファイルを作成します。
# vi /etc/yum.repos.d/custom.repo
[custom]
name=Custom Repo
baseurl=http://pkgsv.local/custom
gpgcheck=0
enabled=1
repoファイルを作成したら、サーバー側に配置したパッケージを参照できるか確認してみます。
# yum clean all
# yum --disablerepo=* --enablerepo=custom list zip
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
利用可能なパッケージ
zip.x86_64 3.0-11.el7 custom
利用可能なパッケージとして、配置したパッケージが表示されていればOKです。
あとがき
複数のマシンでカスタムパッケージをインストールしたいような場合に便利ですね。
ただ、ここで紹介した手順は、アクセス制限などのセキュリティは一切考慮しておりませんので、環境によっては追加の設定が必要かと思います。