KVMゲストOSに初期設定を行ないテンプレートとする

シェアする

KVMな環境でCentOSのゲストOSテンプレートとして、私が必要と思われる初期設定を行なったものです。

この記事は、テンプレートとして必要なものがあれば、追記していきます。

初期設定

設定まわりの内容です。

GRUB2ブートローダーの設定

コンソール接続(virsh console ゲストOS)ができるように、設定変更をします。

# cd /etc/default/.
# ls -l
total 12
-rw-r--r--.  1 root root  275 Mar 14 11:36 grub
-rw-r--r--.  1 root root 1756 Aug  2  2017 nss
-rw-r--r--.  1 root root  119 Nov  5  2016 useradd
# cp -p grub 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=auto 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=auto 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

rootユーザーのプロファイル設定及びスケルトンの作成

言語表示は、文字化けなどを嫌って、英語表示がよいのでそちらに変更します。また、新規にユーザーを作成した際に作成されるプロファイルを、スケルトンとして用意しています。

# cd /root/.
# vi .bash_profile
   :(省略)
######################
# User Configuration #
######################
export LANG=en_US.utf8
# cd /etc/skel
# ls -la
total 24
drwxr-xr-x.  2 root root   62 Mar 14 11:10 .
drwxr-xr-x. 75 root root 8192 Mar 14 11:47 ..
-rw-r--r--.  1 root root   18 Aug  3  2017 .bash_logout
-rw-r--r--.  1 root root  193 Aug  3  2017 .bash_profile
-rw-r--r--.  1 root root  231 Aug  3  2017 .bashrc
# \cp -p /root/.bash_profile .
# locale.
LANG=en_US.utf8 <= 言語設定
LC_CTYPE="en_US.utf8" <= 文字の種類やその比較および分類に関する設定
LC_NUMERIC="en_US.utf8" <= 数値の書式などに関する設定
LC_TIME="en_US.utf8" <= 日付と時刻に関する設定
LC_COLLATE="en_US.utf8" <= 文字の照合や整列に関する設定
LC_MONETARY="en_US.utf8" <= 通貨に関する設定
LC_MESSAGES="en_US.utf8" <= 表示メッセージに関する設定
LC_PAPER="en_US.utf8"  <= 紙の規格に関する設定
LC_NAME="en_US.utf8" <= 名前に関する設定
LC_ADDRESS="en_US.utf8" <= 住所に関する設定
LC_TELEPHONE="en_US.utf8" <= 電話サービスに関する設定
LC_MEASUREMENT="en_US.utf8" <= 測定系などの単位に関する設定
LC_IDENTIFICATION="en_US.utf8" <= メタデータに関する設定
LC_ALL= <= ロケール情報を全項目に設定
# cat /etc/locale.conf
LANG="ja_JP.UTF-8" <= システム自体の基本は日本語にしておく

時刻同期の設定

システム全体で時刻が合っていることは、とても大事です。

# cd /etc/.
# cp -p chrony.conf chrony.conf.original
   :(省略)
server 192.168.1.41 iburst
   :(省略)
# systemctl restart chronyd
# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.1.41                  2   6    17    22    -16us[  -80us] +/- 6297us

SELinuxの無効化

いずれはと思いつつ、やっぱり、無効化してしまうSELinux。

# getenforce
Enforcing
# cd /etc/selinux/.
# cp -p config config.original
   :(省略)
SELINUX=permissive
   :(省略)

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

ユーザー作成時のデフォルト設定と通常操作用の一般ユーザーを作成します。

# cd /etc/default/.
# ls -l
total 16
-rw-r--r--. 1 root root  301 Mar 14 16:54 grub
-rw-r--r--. 1 root root  275 Mar 14 11:36 grub.original
-rw-r--r--. 1 root root 1756 Dec  1 03:21 nss
-rw-r--r--. 1 root root  119 Nov  5  2016 useradd
# cp -p useradd useradd.original
vi useradd <= ユーザー作成時のデフォルト設定
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no <= メールスプールは作成しない
# useradd -g users -u 701 maintuser
# ls -lnd /home/maintuser
drwx------. 2 701 100 76 Mar 14 17:38 /home/maintuser
# passwd maintuser
Changing password for user maintuser.
New password:xxxx
Retype new password:xxxx
passwd: all authentication tokens updated successfully.

vimエディターのインストール及び設定

# yum list vim-enhanced
   :(省略)
Available Packages
vim-enhanced.x86_64           2:7.4.160-2.el7     base
# yum -y install vim-enhanced
   :(省略)
Installed:
  vim-enhanced.x86_64 2:7.4.160-2.el7

Dependency Installed:
  gpm-libs.x86_64 0:1.20.7-5.el7            perl.x86_64 4:5.16.3-292.el7
  perl-Carp.noarch 0:1.26-244.el7           perl-Encode.x86_64 0:2.51-7.el7
  perl-Exporter.noarch 0:5.68-3.el7         perl-File-Path.noarch 0:2.09-2.el7
  perl-File-Temp.noarch 0:0.23.01-3.el7     perl-Filter.x86_64 0:1.49-3.el7
  perl-Getopt-Long.noarch 0:2.40-2.el7      perl-HTTP-Tiny.noarch 0:0.033-3.el7
  perl-PathTools.x86_64 0:3.40-5.el7        perl-Pod-Escapes.noarch 1:1.04-292.el7
  perl-Pod-Perldoc.noarch 0:3.20-4.el7      perl-Pod-Simple.noarch 1:3.28-4.el7
  perl-Pod-Usage.noarch 0:1.63-3.el7        perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
  perl-Socket.x86_64 0:2.010-4.el7          perl-Storable.x86_64 0:2.45-3.el7
  perl-Text-ParseWords.noarch 0:3.29-4.el7  perl-Time-HiRes.x86_64 4:1.9725-3.el7
  perl-Time-Local.noarch 0:1.2300-2.el7     perl-constant.noarch 0:1.27-2.el7
  perl-libs.x86_64 4:5.16.3-292.el7         perl-macros.x86_64 4:5.16.3-292.el7
  perl-parent.noarch 1:0.225-244.el7        perl-podlators.noarch 0:2.5.1-3.el7
  perl-threads.x86_64 0:1.87-4.el7          perl-threads-shared.x86_64 0:1.43-6.el7
  vim-common.x86_64 2:7.4.160-2.el7         vim-filesystem.x86_64 2:7.4.160-2.el7

Complete! 
# cd /root/.
# vi .vimrc
   :(省略)
" 内部文字コード
set encoding=utf-8
" 書き込み文字コード
set fileencoding=utf-8
" 読み込み文字コード
set fileencodings=utf8,cp932
" コメント行
syntax match Comment "^;.*$"
# cd /etc/skel <= ユーザー作成時に作成されるようにする
# cp -p /root/.vimrc .
# cd /home/maintuser <= 作成しているユーザーに配置
# cp -p /root/.vimrc .

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

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

頻繁に、最新パッケージが公開されています。構築するシステムでのアップデート方針に従い、実施してください。

# yum -y update
   :(省略)
Complete!
# systemctl reboot <= 新しい状態で稼動させるためマシンリブート

各種パッケージのインストール

私が良く使うコマンドが入ったパッケージをインストールします。

# yum install bind-utils tree zip unzip bc yum-utils wget redhat-lsb-core tcpdump sysstat
   :(省略)
Installed:
  bc.x86_64 0:1.06.95-13.el7
  bind-utils.x86_64 32:9.9.4-51.el7_4.2
  redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1
  sysstat.x86_64 0:10.1.5-12.el7
  tcpdump.x86_64 14:4.9.0-5.el7
  tree.x86_64 0:1.6.0-10.el7
  unzip.x86_64 0:6.0-16.el7
  wget.x86_64 0:1.14-15.el7_4.1
  yum-utils.noarch 0:1.1.31-42.el7
  zip.x86_64 0:3.0-11.el7

Dependency Installed:
  at.x86_64 0:3.1.13-22.el7_4.2
  avahi-libs.x86_64 0:0.6.31-17.el7
  bind-libs.x86_64 32:9.9.4-51.el7_4.2
  cups-client.x86_64 1:1.6.3-29.el7
  cups-libs.x86_64 1:1.6.3-29.el7
  ed.x86_64 0:1.9-4.el7
  libpcap.x86_64 14:1.5.3-9.el7
  libxml2-python.x86_64 0:2.9.1-6.el7_2.3
  lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7
  m4.x86_64 0:1.4.16-10.el7
  mailx.x86_64 0:12.5-16.el7
  patch.x86_64 0:2.7.1-8.el7
  psmisc.x86_64 0:22.20-15.el7
  python-chardet.noarch 0:2.2.1-1.el7_1
  python-kitchen.noarch 0:1.1.1-5.el7
  redhat-lsb-submod-security.x86_64 0:4.1-27.el7.centos.1
  spax.x86_64 0:1.5.2-13.el7
  time.x86_64 0:1.7-45.el7

Complete!