同一構成のLinuxを複数台構築する際、同じ設定値を台数分入力する必要があります。

Linuxではこの問題を解決する便利なツール 「Kickstart」 が備わっています。

このツールを利用することで手間や時間を掛けずに、またミスなく同一のLinuxを構築することができます。

今回は基本編として、CentOS7をDVDメディアからインストールすることを想定した利用方法です。

 

1. Configファイルの作成方法

Configファイルとは、インストール時に入力する設定情報を記載したファイルのことです。

まずはこのConfigファイルを作成します。

Configファイルの作成方法は大きく3つあります。

  1. ツールを使って作成
  2. 稼働中のシステムから作成
  3. 1台目のマシンの構成ファイルを利用

場面に応じて使い分けると良いかと思います。

なお、「A.」 と 「B.」 は専用ツールを利用するので以下の操作にてツールをインストールしてください。

# yum install system-config-kickstart

 

A. ツールを使って作成

キックスタート設定ツールを起動させるために以下コマンドを入力します。

# system-config-kickstart

以下のツールが起動します。

各項目のパラメータを設定します。

[基本設定]
デフォルトの言語 Japanese - 日本語
タイムゾーン Asia/Tokyo
キーボード Japanese
rootパスワード 適宜設定
[インストール方法]
インストール方法 新規インストールの実行
インストール源 CD-ROM
[ブートローダーオプション]
インストールタイプ 新しいブートローダーをインストール
GRUBオプション (設定不要)
インストールオプション マスターブートレコード(MBR)にブートローダーをインストール
[パーティション情報]
マスターブートレコード マスターブートレコードを消去
パーティション 全ての既存パーティションを削除
ディスクラベル ディスクラベルを初期化
レイアウト (設定不要)
[ネットワーク設定]
デバイス enp0s3
ネットワークタイプ DHCP
[認証]
認証設定 シャドウパスワードを使う(SHA512)
[ファイアーウォール設定]
SELinux 無効化
セキュリティレベル ファイアーウォールの無効化
[ディスプレイ設定]
ディスプレー設定 グラフィカル環境をインストール
[パッケージの選択]
  筆者の環境では、エラーメッセージが表示されて選択ができませんでした。(調査中)
[インストール前のスクリプト]
  設定なし
[インストール後のスクリプト]
  設定なし

必要な項目をすべて入力しましたら、メニューの [ファイル] - [保存] でConfigファイルを保存してください。

 

B. 稼働中のシステムから作成

コマンドを実行することで稼働中のシステムをもとにしたConfigファイルを作成できます。

ただし、LVMの設定がConfigファイルに反映されないため、手動で追記する必要があります。

# system-config-kickstart --generate ks.cfg 

 

C. 1台目のマシンの構成ファイルを利用

CentOSを手動でインストールすると、root のホームディレクトに anaconda-ks.cfg が保存されます。

このファイルをそのままConfigファイルとして利用します。

# ls /root
anaconda-ks.cfg

このConfigファイルは上記2つの作成方法とは違いLVMの設定も含まれています。

今回は、下記サーバ環境のConfigファイルを作成しました。

パーティション
/boot 500MB
LVM物理ボリューム /boot以外の全てを使用
/ 20GB
/var 20GB
/home 30GB
swap 2GB
セキュリティ
ファイアーウォール 無効
SELinux 無効
インストール後のスクリプト
追加 gnome-initial-setup停止

Configファイルはこちら。

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=jp --xlayouts='jp'
# System language
lang ja_JP.UTF-8
# Network information
network  --bootproto=dhcp --device=enp0s3 --ipv6=auto --activate
network  --hostname=localhost.localdomain
# Service
firewall --disabled
# SELinux disabled
selinux --disabled
# Root password
rootpw --iscrypted xxxxxxxxxxxxxxxxxxxxx ←暗号化したrootのパスワード。適宜書き換えてください。
# System timezone
timezone Asia/Tokyo --isUtc
# X Window System configuration information
xconfig  --startxonboot
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information(MB)
part /boot --fstype="xfs" --ondisk=sda --size=500
part pv.155 --fstype="lvmpv" --ondisk=sda --size=1 --grow
#volgroup centos --pesize=4096 pv.155
volgroup centos pv.155
logvol /home  --fstype="xfs" --size=30720 --name=home --vgname=centos
logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos
logvol /  --fstype="xfs" --size=20480 --name=root --vgname=centos
logvol /var  --fstype="xfs" --size=20480 --name=var --vgname=centos
%packages
@^graphical-server-environment
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@multimedia
@print-client
@x11
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%post
mkdir -p /etc/skel/.config /root/.config && touch /etc/skel/.config/gnome-initial-setup-done /root/.config/gnome-initial-setup-done
%end
reboot --eject

root の暗号化したパスワードはこちらのコマンドで生成できます。

# openssl passwd -1
Password: パスワードを入力します。
Verifying - Password: 再度パスワードを入力します。
$1$CGadzN4C$jqP7aNGJtvT9CwROe1R0o1

$1 から始まる文字列が暗号化したパスワードです。

なお、記述内容をチェックする便利なコマンドがありますので、Configファイルをカスタマイズした際は事前にチェックすることをお勧めします。

記述に間違いがなければコマンドを実行しても何も表示されませんが、間違いがあると以下のように教えてくれます。

# ksvalidator ks.cfg
以下の問題が kickstart ファイルの 59 行目で発生しました。
kickstart セクション %packages は %end で終了していません。

 

2. Kickstartで自動インストール

CentOS7のインストーラーをDVDドライブから起動します。

以下の画面が表示されたら [Esc]キーを押下します。

boot: プロンプトが表示されたら以下を入力します。

boot: linux ks=http://192.168.0.1/ks.cfg

DHCP環境でない場合はネットワーク設定も入力します。

boot: linux ks=http://192.168.0.1/ks.cfg ip=192.168.0.2 gateway=192.168.0.254 netmask=255.255.255.0

あとはインストールが完了するまで待つだけです。

今回は HTTPサーバに公開したConfigファイルを指定しましたが、他にも指定方法がありますので環境に合わせてご使用ください。

  • フロッピーディスク

ks=floppy:/ks.cfg (フロッピーディスクのフォーマットは vfat もしくは ext2 です)

  • USBメモリ

 ks=hd:sdb:/ks.cfg (環境によってデバイス名が異なる場合があります)

  • FTPサーバ

ks=ftp://192.168.0.1/ks.cfg

  • NFSサーバ

ks=nfs:192.168.0.1:/ks.cfg

 

お疲れさまでした。

 

Joomla templates by a4joomla