Shell の基礎知識

【Shell-Tips】ISOメディアをマウントしてYumを設定する。

実際の現場での作業は、セキュリティ確保のためインターネットとの接続を遮断されていることも多々あります。

また、昨今のサーバーは仮想化が進み、 データセンタへリモート接続を行いサーバーの構築を行うことが主流になっています。

ISOメディアをマウントしてYumを設定する。

リモート接続の場合、必ず問題になるのがメディアのマウントです。

昨今は、何処のベンダーもISOメディアをダウンロードすることが可能となっています。

この記事では、ダウンロードしたISOメディアをマウントして、yumの設定を自動で行うスクリプトをご紹介します。

yum設定シェル

#!/bin/sh
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#
#  ver.1.0.0 2020.03.24
#
# Usage:
#     /root/scripts/bin/add_yum.sh
#
# Description:
#     
#
# 設計書
#     
#
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

# --------------------------------------------------
# devider.
# --------------------------------------------------
# return N/A
# --------------------------------------------------
line (){
  echo -e "\\n    ------------"
  echo -e "    ▼ ${1}"
}
target=/etc/yum.repos.d/rhel-cdrom.repo
if [ -f ${target} ]; then
  line "do backup"
  cp -p ${target} ${target}.`date "+%Y%m%d"`
  ls -l ${target%/*}
fi

line "add ${target}"
cat << EOS > ${target}
[rhel-cdrom-rhel7-server-iso]
name=rhel-cdrom-rhel7-server-iso
baseurl=file:///media/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOS
cat ${target}

line "Valid values with comments removed"
grep -v -e '^\s*#' -e '^\s*$' ${target}

if [ -f ${target}.`date "+%Y%m%d"` ]; then
  line "diff ${target}"
  diff ${target} ${target}.`date "+%Y%m%d"`
fi
exit $?

上記のスクリプトは、「RHEL7」のISOメディアを想定しています。
  対象のメディア毎に内容を書き換えてください。

シェル内容の説明

1行目:シェバン

2-15行目:コメント

17-25行目:出力時のデバイダー

26-31行目:yum設定ファイルが既にある場合、既存yum設定ファイルのバックアップします。
「ファイル名 + yyyymmdd」形式

34-42行目:yumの設定ファイルを作成しています。(ヒアドキュメント)

44-45行目:コメント(#)を除いて設定内容をコンソールへ出力しています。

47-50行目:バックアップファイルが存在する場合、作成した設定ファイルとバックアップファイルの中身を比較して表示します。

51行目:リターンコードを返却して処理を終了しています。

本スクリプト利用により発生した利用者の損害全てに対し、いかなる責任をも負わないものとし、損害賠償をする一切の義務はないものとします。

よく読まれている記事

1

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか? 無料で使えるだけでなく、高い柔軟 ...

2

Linux環境でよく目にする「Vim」という名前。サーバーにログインしたら突然Vimが開いてしまい、「どうやって入力するの?」「保存や終了ができない!」と困った経験をした人も多いのではないでしょうか。 ...

3

ネットワーク技術は現代のITインフラにおいて不可欠な要素となっています。しかし、ネットワークを深く理解するためには、その基本となる「プロトコル」と「レイヤ」の概念をしっかり把握することが重要です。 こ ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

5

Javaは世界中で広く使われているプログラミング言語であり、特に業務システムやWebアプリケーションの開発において欠かせない存在です。本記事では、初心者向けにJavaの基礎知識を網羅し、環境構築から基 ...

-Shell の基礎知識