CentOS7 ゲストOSの初期設定

シェアする

KVM環境で使用するゲストOSは、ほとんどの場合、CentOS7を使用していますが、毎回、ゲストOSを用意するのに、最初からインストールをするのも苦痛ですので、自分用に初期設定がされたものを用意して、「virt-clone」で複製を作って利用する事にしました。

ここでは、ゲストOSに行なった初期設定をメモします。

GRUB2ブートローダーの設定変更

コンソールでログインができるように設定変更を行ないます。
この設定変更を行なわないと、「virsh console」コマンドでログインができません。
また、kdump用にメモリーの一部を確保しますが、デフォルトでは「crashkernel=auto」の設定により、自動で割り当てが行われます。ただし、自動で割り当てられるためには、メモリーが2GB以上が条件となり、それ以下の場合は、kdumpサービスは起動できませんので、固定値として、128MBとしました。

参考資料 redhat社 カーネルクラッシュダンプガイド
2.2. コマンドライン上での kdump の設定
付録B kdump で対応している設定とダンプ出力先

# cp -p /etc/default/grub /etc/default/grub.original
# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=vg01/root rd.lvm.lv=vg01/swap console=tty0 console=ttyS0,115200n8r"
GRUB_DISABLE_RECOVERY="true"
# diff /etc/default/grub.original /etc/default/grub
6c6
> GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg01/root rd.lvm.lv=vg01/swap rhgb quiet"
---
< GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=vg01/root rd.lvm.lv=vg01/swap console=tty0 console=ttyS0,115200n8r"
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-31aabb7b62c2431da6ddc8d84df56864
Found initrd image: /boot/initramfs-0-rescue-31aabb7b62c2431da6ddc8d84df56864.img
done

GRUB2の設定ファイルは、「/boot/grub2/grub.cfg」ですが、直接ファイルを編集するのではなく、「/etc/default/grub」と「/etc/grub.d/*」のファイルを編集し、「grub2-mkconfig」コマンドで、GRUB2の設定ファイルを生成します。なお、「grub2-mkconfig」はシェルスクリプトで提供されているので、興味があれば中身を見てもよいかと思います。

最新パッケージへのアップデート

インストール時には、「最小構成インストール」を選択しています。最新パッケージへアップデートしておきます。

# yum -y update
    :(省略)
Complete!

rootユーザーのプロファイル

rootユーザーの利用時には、中途半端な日本語は不要ですので、言語設定を「LANG=en_US.utf8」にしておきます。

# vi /root/.bash_profile
    :(省略)
export LANG=en_US.utf8
    :(省略)

時刻同期の設定

近くにある時刻サーバーへ設定変更を行ないます。

# cp -p /etc/chrony.conf /etc/chrony.conf.original
# vi /etc/chrony.conf
    :(省略)
server timeserv iburst      <= 自宅にある上位の時刻サーバー
    :(省略)
log measurements statistics tracking <= ログの出力内容
    :(省略)
# systemctl restart chronyd
# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* timeserv.orangetakam.com      2   6     7     9    -19us[ +568ms] +/- 8996us <= 「*」が表示されるまで待つ

ユーザー作成時のデフォルト設定

ユーザーを作成する際のデフォルト設定ファイルの変更をして、一般ユーザーを用意します。

# cp -p /etc/default/useradd /etc/default/useradd.original
# vi /etc/default/useradd
    :(省略)
CREATE_MAIL_SPOOL=no
# diff /etc/default/useradd.original /etc/default/useradd
8c8
< CREATE_MAIL_SPOOL=yes
---
> CREATE_MAIL_SPOOL=no
# useradd -g users -u 701 user01
# ls -ln /home
total 0
drwx------. 2 701 100 59 Nov 29 17:02 user01
# passwd user01
Changing password for user user01.
New password:xxxx
Retype new password:xxxx
passwd: all authentication tokens updated successfully.

SELinuxの無効化

SELinuxを無効化します。

# getenforce
Enforcing
# cp -p /etc/selinux/config /etc/selinux/config.original
# vi /etc/selinux/config
    :(省略)
SELINUX=permissive
    :(省略)
# diff /etc/selinux/config.original /etc/selinux/config
7c7
< SELINUX=enforcing
---
> SELINUX=permissive

systemdのログレベル変更

デフォルトのinfoだとログが大量に出力されるので、noticeに変更します。

# cp -p /etc/systemd/system.conf /etc/systemd/system.conf.original
# vim /etc/systemd/system.conf
    :(省略)
LogLevel=notice    <= コメントアウトを外して「notice」に変更
    :(省略)
# systemctl daemon-reexec

vimのインストール

viだけでも良いですが、vimをインストールしておきます。

# yum -y install vim
    :(省略)
Complete!
# vim .vimrc
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,cp932

bind-utilのインストール

DNSでの名前解決の確認で必要なコマンドが入ったパッケージをインストールします。

# yum -y install bind-utils
    :(省略)
Installed:
  bind-utils.x86_64 32:9.9.4-38.el7_3.3
 
Dependency Installed:
  bind-libs.x86_64 32:9.9.4-38.el7_3.3
 
Complete!

treeのインストール

treeコマンドはあると便利なのでインストールします。

# yum -y install tree
    :(省略)
Installed:
  tree.x86_64 0:1.6.0-10.el7
 
Complete!

zipとunzipのインストール

圧縮と展開用に、zipをインストールします。

# yum -y install zip unzip
    :(省略)
Installed:
  unzip.x86_64 0:6.0-16.el7
  zip.x86_64 0:3.0-11.el7
 
Complete!

bcのインストール

シェルスクリプトで数値を扱いたいために、bcをインストールします。

# yum -y install bc
    :(省略)
Installed:
  bc.x86_64 0:1.06.95-13.el7
 
Complete!

yum-utilsのインストール

yum関連の操作を行なう時に便利なので、インストールします。

# yum -y install yum-utils
    :(省略)
Installed:
  yum-utils.noarch 0:1.1.31-40.el7
 
Dependency Installed:
  libxml2-python.x86_64 0:2.9.1-6.el7_2.3
  python-chardet.noarch 0:2.2.1-1.el7_1
  python-kitchen.noarch 0:1.1.1-5.el7
 
Complete!

wgetのインストール

ダウンロードとかする時に、よく使うので、こちらもインストールしました。

# yum -y install wget
   :(省略)
Installed:
  wget.x86_64 0:1.14-13.el7
 
Complete!

postfixのアンインストール

最小構成インストールでは、私が見た感じでは、不要と思われるサービスはありませんでしたが、postfixサービスだけは、不要だと思いますので、そちらはアンインストールしました。

# yum -y remove postfix
    :(省略)
Removed:
  postfix.x86_64 2:2.10.1-6.el7
 
Complete!

EPELリポジトリーの導入

EPELは結構使いますので、インストールします。

# yum -y install epel-release
   :(省略)
Installed:
  epel-release.noarch 0:7-9
 
Complete!
# cd /etc/yum.repos.d
# cp -p epel.repo epel.repo.original
# cat epel.repo.original | sed -e s/^enabled=1/^enabled=0/g > epel.repo