[オンプレ]オフライン環境でのPPインストール

2023/10/20

 こんにちは!!日本海隆のTsuyoshiです。今回はAWSからちょっと離れて、オンプレミス環境での話をちょっとしてみようかなと思い、オフライン環境におけるソフトウェアのインストール手法について、紹介して参ります。

 金融・証券など金銭関連のシステムでは、クラウド盛んになっていた今頃でも、クラウドへ移行するには、まだややハードルを感じていらっしゃる企業さんも、そこそこいるのではないでしょうか。そういった環境で新規システム開発のプロジェクトが立ち上がった時、インフラ領域での構築作業における、ソフトウェアのインストールをどうするかを考えないといけないですよね。簡単に一言外部からパッケージをオフライン環境へ持ち込み、入れればよいって簡単な一言で済むのですが、実際やるにあたり、ちょっと困った、あるいは躓いていたなどのお悩みをこの記事を参照し、解決できれば幸いです。

オンライン環境での作業その①

パッケージのダウンロード

オフライン環境へパッケージを持ち込むためには、必要となるパッケージをインターネット接続できる環境で用意しなければいけません。そのためのオンライン環境での作業が必要となります。

今回用意するオンライン環境の情報は以下

OS:Redhat Enterprise Linux 7

パッケージの一式ダウンロードするには、基本「yumdownloader」コマンドを使用します。Redhat Enterprise Linux 7では、イメージファイルにもよりますが、基本「yum」コマンドが使える形となっているが、もし「yum」コマンドが入っていない、利用できない場合は、予め下記コマンドでインストールするようにしましょう

# yum install yum-utils

次、オフライン環境へインストール予定のパッケージをダウンロードする。

# yumdownloader --resolve --destdir インストール先ディレクトリ パッケージ名

少しここで解説をいれます、オプション「–resolve」はパッケージの依存関係が存在した場合、そのパッケージも併せてダウンロードしてくれるものです。オプション「–destdir」は、パッケージをダウンロードする際の保存先の指定になります。例として、「/tmp/hyron/Repo/」配下にApache HTTP Serverをインストールする場合、下記ようなコマンドを実施する

# yumdownloader –resolve –destdir /tmp/hyron/Repo/ apache

しかし、システム提供するサービスにより、たくさんのパッケージもしくは、開発ソフトを入れないといけない場合は多々あるかなと、その際に、一個一個のパッケージをダウンロードするにも、非常に手間かかるので、まとめてダウンロードすることも可能です。その際に、用意するのはダウンロードリストだけです。ダウンロードリストとは、ダウンロードしたいパッケージを纏まったものです。例えば、apache、mod_ssl、gcc、m4等々のパッケージをまとめてインストールする場合、「/home/package.lst」のテキストファイルに下記込み、下記コマンドを実施すれば、まとめてダウンロードされますので、非常に手間かけず便利かと思いますね。

# cat /home/package.lst | xargs -L 1 yumdownloader –resolve –destdir /tmp/hyron/Repo/

オンライン環境での作業その②

レポジトリの作成

レポジトリの作成、いわゆるローカル環境からパッケージをインストール時の参照先です。上記ダウンロードしたパッケージファイルをレポジトリファイルとして変換させないといけません。この時に使われるのは「createrepo」コマンドになります。もしOSに、コマンドが入っていなければ、下記コマンドを実施し、インストールしてあげましょう

# yum install createrepo

そして、上記のパッケージファイル一式をレポジトリファイルとして作成する。

# createrepo /tmp/hyron/Repo/

以上で、オフライン環境へパッケージインストールする準備は整いました。いよいよ本題にはいり、さてローカルではどのような形で、パッケージをインストールするかを、引き続き下記内容をお読みください。

オフライン環境での作業その①

リポジトリの登録作業

Linuxをある程度触ってきた方であれば、なんとなくどういう作業をやるかはイメージできているかなと思います。そうではない方でご安心ください。ステップ毎に紹介してまいります。

まず、オンライン環境で作ったレポジトリファイルをローカル環境へもってきます。持ち込み手段は多岐にわたるため、やりやすい方で持ち込んでください。

次に、

yumレポジトの登録

「/etc/yum.repos.d」配下にファイルを作成し、情報追記します。今回私のほうでは、「offline.repo」ファイルを作り、そこに情報を書き込んでいきます。名称は適宜でOKですが、「.repo」で終わる形でのが必須条件です。

# vim /etc/yum.repos.d/offline.repo

[offline]
name=offline
baseurl=file:///tmp/hyron/Repo
enabled=1
gpgcheck=0

上記設定が正しいかどうかを一回検証を挟みます。下記コマンドを実施し、一覧が表示されれば成功

# yum --disablerepo=* --enablerepo=offline list

ここでも。オプションについて少し解説をいれます。「--disablerepo=*」は既存のインストール参照先をすべて無効化にする。「--enablerepo=offline」指定されるレポジトリのみ有効

ここで、無事にリストの表示がされれば、あとはインストールのみ実施となります。

インストール作業

個別にパッケージをインストールする場合、下記コマンドを実施。

# yum --disablerepo=* --enablerepo=offline install パッケージ名

まとめてパッケージを一括インストールする場合、下記コマンドを実施。

# cat /home/package.lst | xargs -L 1 yum -y --disablerepo=* --enablerepo=offline install

以上で、ローカル環境でパッケージをインストールする手法を紹介いたしました。今後の業務上少しでもお役に立てれば幸甚です。