CentOS 7でカスタムパッケージ配布用のyumリポジトリサーバーを構築する方法

CentOS 7でカスタムパッケージ配布用のyumリポジトリサーバーを構築する方法

複数の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です。

あとがき

複数のマシンでカスタムパッケージをインストールしたいような場合に便利ですね。

ただ、ここで紹介した手順は、アクセス制限などのセキュリティは一切考慮しておりませんので、環境によっては追加の設定が必要かと思います。