CentOS7 上の仮想マシンで CentOS7 をインストールする



# はじめに

RDO を使用して OpenStack Ocata 版の all-in-one をインストールするための仮想マシンを CentOS7 上に作成する。[仮想マシンで CentOS7 の live GNOME が動作することは確認した](http://qiita.com/syunasin/items/39f3a8f9bcf92bc63231)ので、次は仮想 HDD に CentOS7 をインストールする。CentOS7 のインストールは kickstart を使用して自動化してみる。

設定ファイルは github から取得できる。

* [https://github.com/syunasin/openstack/tree/master/example01](https://github.com/syunasin/openstack/tree/master/example01)

# 環境

ホスト OS 側
* CentOS7.3
* Core i3-4020U(1.9GHz)
* メモリ16GB

ゲスト OS 側
* CentOS7.3
* CPU: 2
* メモリ 8GB
* HDD 10GB

# 仮想マシンの作成

あらかじめ、仮想ネットワークと仮想 HDD は設定しておく。

* [CentOS7 で仮想ネットワークを作成する](http://qiita.com/syunasin/items/71ce29038e6fe22ab49b)
* [CentOS7 上の仮想マシンで liveGNOME を起動する](http://qiita.com/syunasin/items/39f3a8f9bcf92bc63231)

host01 の仮想マシンを作成している場合は、削除しておく。

```
# virsh destroy host01
# virsh undefine host01
```

CentOS7 のインストールには CentOS-7-x86_64-DVD-1611.iso を使用するので、取得しておく。

```
# cd /data/iso
# wget http://ftp.iij.ad.jp/pub/linux/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
```

## kickstart の設定

kickstart は redhat 系のディストリビューションで OS を自動インストールするための機能。ホスト側に CentOS7 をインストールしたときに kickstart の設定ファイルが /root/anaconda-ks.cfg に作成されている。system-config-kickstart を使用して、/root/anaconda-ks.cfg の設定を確認することができる。

```
# yum -y install system-config-kickstart
# system-config-kickstart /root/anaconda-ks.cfg
```

この anaconda-ks.cfg をベースに以下のユーザーなどを設定して、/tmp/allinone-ks.cfg に保存する。保存場所はどこでもよい。

| ユーザーID | パスワード |
|---|---|
| root | rootroot |
| openstack | openopen |

```xml:/tmp/allinone-ks.cfg
#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=vda
# Keyboard layouts
keyboard --vckeymap=jp --xlayouts='jp'
# System language                                                             
lang ja_JP.UTF-8

# Network information                                                                              
network  --bootproto=static --device=eth0 --onboot=on --activate --gateway=192.168.172.1 --ip=192.168.172.101 --nameserver=192.168.172.1 --netmask=255.255.255.0 --noipv6
network  --bootproto=static --device=eth1 --onboot=on --activate --ip=10.0.172.101 --netmask=255.255.255.0 --noipv6
network  --hostname=host01

# Root password
rootpw --plaintext rootroot
# System services
#services --enabled="chronyd"

# System timezone
timezone Asia/Tokyo --isUtc
user --groups=wheel --name=openstack --password=openopen --plaintext --gecos="openstack"
# System bootloader configuration
bootloader --location=mbr --boot-drive=vda
autopart --type=lvm
# Partition clearing information
clearpart --all --initlabel --drives=vda

install
reboot
zerombr

%packages
@core
@base
%end
```

## 仮想マシンの起動

次に仮想マシンを作成する。[live GNOME を起動したときとほぼ同じ。](http://qiita.com/syunasin/items/39f3a8f9bcf92bc63231) kickstart の設定を追加している。

```
# virt-install \
    --virt-type kvm \
    --name host01 \
    --vcpus 2 \
    --ram 8192 \
    --disk path=/data/hdd/host01.qcow2 \
    --network network:public1 \
    --network network:private1 \
    --graphics vnc \
    --os-type linux \
    --os-variant rhel7 \
    --boot hd \
    --location /data/iso/CentOS-7-x86_64-DVD-1611.iso　\
    --initrd-inject /tmp/allinone-ks.cfg \
    --extra-args "inst.ks=file:/allinone-ks.cfg" 
```

Virt Viewer が起動して CentOS のインストールが始まる。インストールが完了するとログインプロンプトを表示するので、openstack ユーザーでログインしてみる。仮想マシンの起動停止は virt-manager から操作できる。

```
# virt-manager
```

# おわりに

これで OpenStack の all-in-one をインストールする準備ができたはず。
次は、 all-in-one をインストールしてみる。


# 参考

* [https://docs.openstack.org/ja/image-guide/index.html](https://docs.openstack.org/ja/image-guide/index.html)
* [https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html](https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html)