LoginSignup
2
5

More than 5 years have passed since last update.

CentOS7.2でリポジトリサーバ構築

Posted at

やりたい事

ローカル環境でサーバを構築するのに毎回メディアをマウントしてRPMパッケージをインストールするのが面倒なので、
リポジトリサーバの構築手順を知るついでにyumコマンドでインストールできるようにする。
(インストールだけしたいのでアップデートは考えない)

環境

・ホスト:ESXi 6.0.0
・VM:CentOS 7.2

大まかな流れ

1.ローカルリポジトリの設定
 ⇒構築時にRPMパッケージの依存関係を解決するのが面倒だったのでローカル上でyumコマンドが使えるように設定
2.必要なパッケージ(Apache、createrepo)のインストール~Webアクセス確認
3.リポジトリサーバの設定
4.動作確認

1.ローカルリポジトリの設定

1-1.仮想マシンにCentOSのメディアをマウント
・メディアの挿入
20170210_001_1.jpg

・マウント~確認
# mount /dev/cdrom /media/
mount: /dev/sr0 is write-protected, mounting read-only

# ls -l /media/

drwxr-xr-x. 2 root root 589824  M月 DD  YYYY Packages
-rw-r--r--. 1 root root   1690  M月 DD  YYYY RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root   1690  M月 DD  YYYY RPM-GPG-KEY-CentOS-Testing-7
drwxr-xr-x. 2 root root   2048  M月 DD  YYYY isolinux
drwxr-xr-x. 2 root root   4096  M月 DD  YYYY repodata
(省略)

1-2.repoファイルの作成
# vi /etc/yum.repos.d/CentOS-media.repo

[centos-media]
name=centos-media
baseurl=file:///media
gpgcheck=0
enabled=1

1-3.確認
# yum --disablerepo=* --enablerepo=centos-media list
パッケージの一覧が出力されればOK

2.必要なパッケージ(Apache、createrepo)のインストール~Webアクセス確認

2-1.yumコマンドでApache、createrepoのパッケージをインストール
# yum --disablerepo=* --enablerepo=centos-media install httpd
# yum --disablerepo=* --enablerepo=centos-media install createrepo

2-2.Apacheサービスの起動
# systemctl status httpd
(出力メッセージなし)
# systemctl status httpd

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: active (running) since DAY YYYY-MM-DD HH:MM:SS JST; Xs ago
 Main PID: XXXXX (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           tq12631 /usr/sbin/httpd -DFOREGROUND
           tq12632 /usr/sbin/httpd -DFOREGROUND
           tq12633 /usr/sbin/httpd -DFOREGROUND
           tq12634 /usr/sbin/httpd -DFOREGROUND
           tq12635 /usr/sbin/httpd -DFOREGROUND
           mq12636 /usr/sbin/httpd -DFOREGROUND
 M月 DD HH:MM:SS CentOS7.2-1 httpd[12631]: AH00557: httpd: apr_sockaddr_info_get() failed for C...2-1
 M月 DD HH:MM:SS CentOS7.2-1 httpd[12631]: AH00558: httpd: Could not reliably determine the ser...age
 M月 DD HH:MM:SS CentOS7.2-1 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

2-3.ファイアウォールの設定(http通信許可)
デフォルトゾーンの確認
# firewall-cmd --get-default-zone

public

http通信の追加
# firewall-cmd --add-service=http --zone=public --permanent

success

ファイアウォール設定の読み込み
# firewall-cmd --reload

success

2-4.Webブラウザからの疎通確認
ブラウザを立ち上げて「http://[サーバのIPアドレス]」をURL欄に入力
以下の画面が表示されればOK
20170210_003_1.jpg

3.リポジトリサーバの設定

3-1.公開ディレクトリに必要なディレクトリを作成
# cd /var/www/html
\html# mkdir x86_64
\html# mkdir rpm
\html# ls -l

drwxr-xr-x. 2 root root 6  M月 DD HH:SS rpm ← OSのメディアに入っていないRPMを格納するディレクトリ
drwxr-xr-x. 2 root root 6  M月 DD HH:SS x86_64 ←64bitのパッケージを格納するディレクトリ

3-2.メディア内のファイル・ディレクトリをコピー
# cp -pR /media/* /var/www/html/xyum/x86_64/

3-3.rpmディレクトリをリポジトリデータベースとして登録
# createrepo -v /var/www/html/yum/rpm

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: [DAY] [MON] DD HH:MM:SS YYYY
Ending other db creation: [DAY] [MON] DD HH:MM:SS YYYY
Starting filelists db creation: [DAY] [MON] DD HH:MM:SS YYYY
Ending filelists db creation: [DAY] [MON] DD HH:MM:SS YYYY
Starting primary db creation: [DAY] [MON] DD HH:MM:SS YYYY
Ending primary db creation: [DAY] [MON] DD HH:MM:SS YYYY
Sqlite DBs complete

4.動作確認

4-1.Webブラウザからyumディレクトリの内容が見えるか確認

20170210_004_1.jpg

4-2.リポジトリサーバとして他のサーバに認識させる
# vi /etc/yum.repos.d/CentOS-localnet.repo

[localnet-repo]
name=CentOS-7.2 - localnet repo
baseurl=http://[リポジトリサーバのIPアドレス]/yum/$basearch/
gpgcheck=0
enabled=1

[localnet-repo-rpm]
name=Intra repo rpm
baseurl=http://[リポジトリサーバのIPアドレス]/yum/rpm/
gpgcheck=0
enabled=1

4-3.ミラーサイトに見に行かないように設定を無効化
「4-2」で作成したファイル以外に「enabled=0」を追記する。(記載されている場合は「0」に変える)
(例)

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0 ←追記

4-4.Apacheをインストールできるか確認
# yum install httpd
インストール処理が実行されればOK

参考サイト

オヤジのサーバ構築奮戦記!:yumリポジトリサーバ構築
Qiita:yumのリポジトリをローカルに作成する
UnixPower on Networking:CentOS7 firewalldの設定

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5