このセクションでは、CentOS-7-x86_64-Minimal-1804.iso を使って、Openstack で使用するイメージファイルを手動で作成する方法を紹介します。
インストールプロセスの開始
ISOファイル CentOS-7-x86_64-Minimal-1804.iso をダウンロードすします。
■ ダウンロードのディレクトリへ移動 $ cd /mnt/DISK1 $ ■ ISOのダウンロード [DISK1]$ sudo curl -LO http://ftp.riken.jp/Linux/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 906M 100 906M 0 0 444k 0 0:34:49 0:34:49 --:--:-- 915k [DISK1]$
CentOS-7-x86_64-Minimal-1804 のイメージファイルを qcow2 形式で作成します。ここでは、イメージファイル名を centos7-minimal としています。
$ sudo qemu-img create -f qcow2 /tmp/centos7-minimal.qcow2 10G [sudo] yuji のパスワード: Formatting '/tmp/centos7-minimal.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off $
ダウンロードした CentOS-7-x86_64-Minimal-1804.iso と作成したイメージファイル centos7-minimal を使って、仮想インスタンスをインストールします。ここでは、仮想インスタンス名を centos7-minimal としています。
$ sudo virt-install --virt-type kvm --name centos7-minimal --ram 1024 \ --disk /tmp/centos7-minimal.qcow2,format=qcow2 \ --network network=ovsbr0 \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=centos7.0 \ --location=/mnt/DISK1/CentOS-7-x86_64-Minimal-1804.iso インストールの開始中... ファイル .treeinfo を読出中... | 354 B 00:00 ファイル vmlinuz を読出中... | 5.9 MB 00:00 ファイル initrd.img を読出中... | 50 MB 00:00 仮想マシンのインストールが進行中です。インストール が完了するまでコンソールの再接続を待っています。 $
インストールのステップ実行
仮想マシンマネージャーで、仮想インスタンス centos7-minimal を開き、インストールを進めます。
インストール完了後に再起動を求められますが、この時点では再起動せず以降の手順に進みます。
virsh dumpxml コマンドを使って、仮想インスタンス centos7-minimal の設定ファイルを確認します。ここでは、<disk type=… device=’cdrom’> 〜 </disk> 内にある <target dev=…> が hda であることを確認する。
$ sudo virsh dumpxml centos7-minimal [sudo] yuji のパスワード: <domain type='kvm' id='14'> <name>centos7-minimal</name> <uuid>3974c0ad-55b9-4a6b-9528-174df293df48</uuid> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>1</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <kernel>/var/lib/libvirt/boot/virtinst-vmlinuz.nqaClp</kernel> <initrd>/var/lib/libvirt/boot/virtinst-initrd.img.PLprAw</initrd> <boot dev='hd'/> </os> <features> <acpi/> <apic/> </features> <cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>Skylake-Client-IBRS</model> <feature policy='require' name='hypervisor'/> <feature policy='disable' name='arat'/> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>destroy</on_reboot> <on_crash>destroy</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/tmp/centos7-minimal.qcow2'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/DISK1/CentOS-7-x86_64-Minimal-1804.iso'/> <backingStore/> <target dev='hda' bus='ide'/> <readonly/> <alias name='ide0-0-0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='ide' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:14:df:71'/> <source network='ovsbr0' bridge='ovsbr0'/> <virtualport type='openvswitch'> <parameters interfaceid='beee5530-1bbc-4677-a45c-a63617f5b6f0'/> </virtualport> <target dev='vnet10'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-14-centos7-minimal/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5907' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </memballoon> </devices> <seclabel type='dynamic' model='selinux' relabel='yes'> <label>system_u:system_r:svirt_t:s0:c847,c948</label> <imagelabel>system_u:object_r:svirt_image_t:s0:c847,c948</imagelabel> </seclabel> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+107:+107</label> <imagelabel>+107:+107</imagelabel> </seclabel> </domain> $
virsh コマンドを使用して CD-ROM ディスクを取り出すためには、CD-ROM が前に接続された場所と同じ場所に、libvirt が空のディスクを接続する必要があるため、空のディスクをアタッチします。
$ sudo virsh attach-disk --type cdrom --mode readonly centos7-minimal "" hda ディスクが正常に接続されました $
仮想インスタンス centos7-minimal を再起動します。
$ sudo virsh reboot centos7-minimal ドメイン centos7-minimal を再起動しています $
ACPI サービスのインストール
ハイパーバイザーが 仮想インスタンス centos7-minimal を再起動やシャットダウンできるように、仮想インスタンス centos7-minimal に acpid サービスをインストールします。
[root@localhost ~]# yum install acpid 読み込んだプラグイン:fastestmirror Determining fastest mirrors * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp base | 3.6 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 (1/4): base/7/x86_64/group_gz | 166 kB 00:00 (2/4): extras/7/x86_64/primary_db | 205 kB 00:00 (3/4): base/7/x86_64/primary_db | 5.9 MB 00:01 (4/4): updates/7/x86_64/primary_db | 6.0 MB 00:03 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ acpid.x86_64 0:2.0.19-9.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: acpid x86_64 2.0.19-9.el7 base 69 k トランザクションの要約 ================================================================================ インストール 1 パッケージ 総ダウンロード容量: 69 k インストール容量: 145 k Is this ok [y/d/N]: y Downloading packages: 警告: /var/cache/yum/x86_64/7/base/packages/acpid-2.0.19-9.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY acpid-2.0.19-9.el7.x86_64.rpm の公開鍵がインストールされていません acpid-2.0.19-9.el7.x86_64.rpm | 69 kB 00:00 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-5.1804.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 上記の処理を行います。よろしいでしょうか? [y/N]y Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : acpid-2.0.19-9.el7.x86_64 1/1 検証中 : acpid-2.0.19-9.el7.x86_64 1/1 インストール: acpid.x86_64 0:2.0.19-9.el7 完了しました! [root@localhost ~]#
acpid サービスを自動起動するように設定します。
■ 自動起動の有効化 [root@localhost ~]# systemctl enable acpid [root@localhost ~]# ■ 自動起動の状態確認 [root@localhost ~]# systemctl is-enabled acpid enabled [root@localhost ~]#
メタデータ取得の設定
クラウド初期化パッケージ( cloud-init )は、メタデータサーバから公開鍵を自動的に取り出し、その鍵をアカウントに格納します。 次のコマンドを実行して、仮想インスタンス centos7-minimal に cloud-init をインストールします。
[root@localhost ~]# yum install cloud-init 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ cloud-init.x86_64 0:0.7.9-24.el7.centos.1 を インストール --> 依存性の処理をしています: python-setuptools のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: python-requests のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: python-prettytable のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: python-jsonpatch のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: python-jinja2 のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: pyserial のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: policycoreutils-python のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: net-tools のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> 依存性の処理をしています: PyYAML のパッケージ: cloud-init-0.7.9-24.el7.centos.1.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ PyYAML.x86_64 0:3.10-11.el7 を インストール --> 依存性の処理をしています: libyaml-0.so.2()(64bit) のパッケージ: PyYAML-3.10-11.el7.x86_64 ---> パッケージ net-tools.x86_64 0:2.0-0.22.20131004git.el7 を インストール ---> パッケージ policycoreutils-python.x86_64 0:2.5-22.el7 を インストール --> 依存性の処理をしています: setools-libs >= 3.3.8-2 のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libsemanage-python >= 2.5-9 のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libcgroup のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 --> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-22.el7.x86_64 ---> パッケージ pyserial.noarch 0:2.6-6.el7 を インストール ---> パッケージ python-jinja2.noarch 0:2.7.2-2.el7 を インストール --> 依存性の処理をしています: python-babel >= 0.8 のパッケージ: python-jinja2-2.7.2-2.el7.noarch --> 依存性の処理をしています: python-markupsafe のパッケージ: python-jinja2-2.7.2-2.el7.noarch ---> パッケージ python-jsonpatch.noarch 0:1.2-4.el7 を インストール --> 依存性の処理をしています: python-jsonpointer のパッケージ: python-jsonpatch-1.2-4.el7.noarch ---> パッケージ python-prettytable.noarch 0:0.7.2-3.el7 を インストール ---> パッケージ python-requests.noarch 0:2.6.0-1.el7_1 を インストール --> 依存性の処理をしています: python-urllib3 >= 1.10.2-1 のパッケージ: python-requests-2.6.0-1.el7_1.noarch --> 依存性の処理をしています: python-chardet >= 2.2.1-1 のパッケージ: python-requests-2.6.0-1.el7_1.noarch ---> パッケージ python-setuptools.noarch 0:0.9.8-7.el7 を インストール --> 依存性の処理をしています: python-backports-ssl_match_hostname のパッケージ: python-setuptools-0.9.8-7.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ audit-libs-python.x86_64 0:2.8.1-3.el7_5.1 を インストール --> 依存性の処理をしています: audit-libs(x86-64) = 2.8.1-3.el7_5.1 のパッケージ: audit-libs-python-2.8.1-3.el7_5.1.x86_64 ---> パッケージ checkpolicy.x86_64 0:2.5-6.el7 を インストール ---> パッケージ libcgroup.x86_64 0:0.41-15.el7 を インストール ---> パッケージ libsemanage-python.x86_64 0:2.5-11.el7 を インストール ---> パッケージ libyaml.x86_64 0:0.1.4-11.el7_0 を インストール ---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール ---> パッケージ python-babel.noarch 0:0.9.6-8.el7 を インストール ---> パッケージ python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 を インストール --> 依存性の処理をしています: python-ipaddress のパッケージ: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch --> 依存性の処理をしています: python-backports のパッケージ: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch ---> パッケージ python-chardet.noarch 0:2.2.1-1.el7_1 を インストール ---> パッケージ python-jsonpointer.noarch 0:1.9-2.el7 を インストール ---> パッケージ python-markupsafe.x86_64 0:0.11-10.el7 を インストール ---> パッケージ python-urllib3.noarch 0:1.10.2-5.el7 を インストール --> 依存性の処理をしています: python-six のパッケージ: python-urllib3-1.10.2-5.el7.noarch ---> パッケージ setools-libs.x86_64 0:3.3.8-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ audit-libs.x86_64 0:2.8.1-3.el7 を 更新 --> 依存性の処理をしています: audit-libs(x86-64) = 2.8.1-3.el7 のパッケージ: audit-2.8.1-3.el7.x86_64 ---> パッケージ audit-libs.x86_64 0:2.8.1-3.el7_5.1 を アップデート ---> パッケージ python-backports.x86_64 0:1.0-8.el7 を インストール ---> パッケージ python-ipaddress.noarch 0:1.0.16-2.el7 を インストール ---> パッケージ python-six.noarch 0:1.9.0-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ audit.x86_64 0:2.8.1-3.el7 を 更新 ---> パッケージ audit.x86_64 0:2.8.1-3.el7_5.1 を アップデート --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: cloud-init x86_64 0.7.9-24.el7.centos.1 updates 631 k 依存性関連でのインストールをします: PyYAML x86_64 3.10-11.el7 base 153 k audit-libs-python x86_64 2.8.1-3.el7_5.1 updates 75 k checkpolicy x86_64 2.5-6.el7 base 294 k libcgroup x86_64 0.41-15.el7 base 65 k libsemanage-python x86_64 2.5-11.el7 base 112 k libyaml x86_64 0.1.4-11.el7_0 base 55 k net-tools x86_64 2.0-0.22.20131004git.el7 base 305 k policycoreutils-python x86_64 2.5-22.el7 base 454 k pyserial noarch 2.6-6.el7 base 124 k python-IPy noarch 0.75-6.el7 base 32 k python-babel noarch 0.9.6-8.el7 base 1.4 M python-backports x86_64 1.0-8.el7 base 5.8 k python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k python-chardet noarch 2.2.1-1.el7_1 base 227 k python-ipaddress noarch 1.0.16-2.el7 base 34 k python-jinja2 noarch 2.7.2-2.el7 base 515 k python-jsonpatch noarch 1.2-4.el7 base 15 k python-jsonpointer noarch 1.9-2.el7 base 13 k python-markupsafe x86_64 0.11-10.el7 base 25 k python-prettytable noarch 0.7.2-3.el7 base 37 k python-requests noarch 2.6.0-1.el7_1 base 94 k python-setuptools noarch 0.9.8-7.el7 base 397 k python-six noarch 1.9.0-2.el7 base 29 k python-urllib3 noarch 1.10.2-5.el7 base 102 k setools-libs x86_64 3.3.8-2.el7 base 619 k 依存性関連での更新をします: audit x86_64 2.8.1-3.el7_5.1 updates 247 k audit-libs x86_64 2.8.1-3.el7_5.1 updates 99 k トランザクションの要約 ================================================================================ インストール 1 パッケージ (+25 個の依存関係のパッケージ) 更新 ( 2 個の依存関係のパッケージ) 総ダウンロード容量: 6.0 M Is this ok [y/d/N]: y Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. (1/28): audit-2.8.1-3.el7_5.1.x86_64.rpm | 247 kB 00:00 (2/28): audit-libs-2.8.1-3.el7_5.1.x86_64.rpm | 99 kB 00:00 (3/28): PyYAML-3.10-11.el7.x86_64.rpm | 153 kB 00:00 (4/28): libcgroup-0.41-15.el7.x86_64.rpm | 65 kB 00:00 (5/28): libsemanage-python-2.5-11.el7.x86_64.rpm | 112 kB 00:00 (6/28): cloud-init-0.7.9-24.el7.centos.1.x86_64.rpm | 631 kB 00:00 (7/28): checkpolicy-2.5-6.el7.x86_64.rpm | 294 kB 00:00 (8/28): net-tools-2.0-0.22.20131004git.el7.x86_64.rpm | 305 kB 00:00 (9/28): libyaml-0.1.4-11.el7_0.x86_64.rpm | 55 kB 00:00 (10/28): pyserial-2.6-6.el7.noarch.rpm | 124 kB 00:00 (11/28): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00 (12/28): audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm | 75 kB 00:01 (13/28): policycoreutils-python-2.5-22.el7.x86_64.rpm | 454 kB 00:00 (14/28): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00 (15/28): python-chardet-2.2.1-1.el7_1.noarch.rpm | 227 kB 00:00 (16/28): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00 (17/28): python-babel-0.9.6-8.el7.noarch.rpm | 1.4 MB 00:01 (18/28): python-jsonpatch-1.2-4.el7.noarch.rpm | 15 kB 00:00 (19/28): python-jsonpointer-1.9-2.el7.noarch.rpm | 13 kB 00:00 (20/28): python-markupsafe-0.11-10.el7.x86_64.rpm | 25 kB 00:00 (21/28): python-prettytable-0.7.2-3.el7.noarch.rpm | 37 kB 00:00 (22/28): python-jinja2-2.7.2-2.el7.noarch.rpm | 515 kB 00:00 (23/28): python-requests-2.6.0-1.el7_1.noarch.rpm | 94 kB 00:00 (24/28): python-six-1.9.0-2.el7.noarch.rpm | 29 kB 00:00 (25/28): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00 (26/28): setools-libs-3.3.8-2.el7.x86_64.rpm | 619 kB 00:00 (27/28): python-urllib3-1.10.2-5.el7.noarch.rpm | 102 kB 00:00 (28/28): python-backports-ssl_match_hostname-3.5.0.1-1.el7 | 13 kB 00:02 -------------------------------------------------------------------------------- 合計 1.4 MB/s | 6.0 MB 00:04 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-ipaddress-1.0.16-2.el7.noarch 1/30 更新します : audit-libs-2.8.1-3.el7_5.1.x86_64 2/30 インストール中 : audit-libs-python-2.8.1-3.el7_5.1.x86_64 3/30 インストール中 : checkpolicy-2.5-6.el7.x86_64 4/30 インストール中 : python-chardet-2.2.1-1.el7_1.noarch 5/30 インストール中 : python-prettytable-0.7.2-3.el7.noarch 6/30 インストール中 : libyaml-0.1.4-11.el7_0.x86_64 7/30 インストール中 : PyYAML-3.10-11.el7.x86_64 8/30 インストール中 : python-jsonpointer-1.9-2.el7.noarch 9/30 インストール中 : python-jsonpatch-1.2-4.el7.noarch 10/30 インストール中 : python-backports-1.0-8.el7.x86_64 11/30 インストール中 : python-backports-ssl_match_hostname-3.5.0.1 12/30 インストール中 : python-setuptools-0.9.8-7.el7.noarch 13/30 インストール中 : python-babel-0.9.6-8.el7.noarch 14/30 インストール中 : libcgroup-0.41-15.el7.x86_64 15/30 インストール中 : python-markupsafe-0.11-10.el7.x86_64 16/30 インストール中 : python-jinja2-2.7.2-2.el7.noarch 17/30 インストール中 : python-six-1.9.0-2.el7.noarch 18/30 インストール中 : python-urllib3-1.10.2-5.el7.noarch 19/30 インストール中 : python-requests-2.6.0-1.el7_1.noarch 20/30 インストール中 : python-IPy-0.75-6.el7.noarch 21/30 インストール中 : pyserial-2.6-6.el7.noarch 22/30 インストール中 : net-tools-2.0-0.22.20131004git.el7.x86_64 23/30 インストール中 : setools-libs-3.3.8-2.el7.x86_64 24/30 インストール中 : libsemanage-python-2.5-11.el7.x86_64 25/30 インストール中 : policycoreutils-python-2.5-22.el7.x86_64 26/30 インストール中 : cloud-init-0.7.9-24.el7.centos.1.x86_64 27/30 更新します : audit-2.8.1-3.el7_5.1.x86_64 28/30 整理中 : audit-2.8.1-3.el7.x86_64 29/30 整理中 : audit-libs-2.8.1-3.el7.x86_64 30/30 検証中 : libsemanage-python-2.5-11.el7.x86_64 1/30 検証中 : python-backports-ssl_match_hostname-3.5.0.1 2/30 検証中 : setools-libs-3.3.8-2.el7.x86_64 3/30 検証中 : audit-libs-python-2.8.1-3.el7_5.1.x86_64 4/30 検証中 : net-tools-2.0-0.22.20131004git.el7.x86_64 5/30 検証中 : python-jinja2-2.7.2-2.el7.noarch 6/30 検証中 : audit-2.8.1-3.el7_5.1.x86_64 7/30 検証中 : python-setuptools-0.9.8-7.el7.noarch 8/30 検証中 : pyserial-2.6-6.el7.noarch 9/30 検証中 : policycoreutils-python-2.5-22.el7.x86_64 10/30 検証中 : python-IPy-0.75-6.el7.noarch 11/30 検証中 : python-six-1.9.0-2.el7.noarch 12/30 検証中 : python-urllib3-1.10.2-5.el7.noarch 13/30 検証中 : python-markupsafe-0.11-10.el7.x86_64 14/30 検証中 : libcgroup-0.41-15.el7.x86_64 15/30 検証中 : python-babel-0.9.6-8.el7.noarch 16/30 検証中 : python-backports-1.0-8.el7.x86_64 17/30 検証中 : cloud-init-0.7.9-24.el7.centos.1.x86_64 18/30 検証中 : python-jsonpointer-1.9-2.el7.noarch 19/30 検証中 : python-jsonpatch-1.2-4.el7.noarch 20/30 検証中 : libyaml-0.1.4-11.el7_0.x86_64 21/30 検証中 : python-prettytable-0.7.2-3.el7.noarch 22/30 検証中 : python-requests-2.6.0-1.el7_1.noarch 23/30 検証中 : audit-libs-2.8.1-3.el7_5.1.x86_64 24/30 検証中 : python-ipaddress-1.0.16-2.el7.noarch 25/30 検証中 : python-chardet-2.2.1-1.el7_1.noarch 26/30 検証中 : PyYAML-3.10-11.el7.x86_64 27/30 検証中 : checkpolicy-2.5-6.el7.x86_64 28/30 検証中 : audit-2.8.1-3.el7.x86_64 29/30 検証中 : audit-libs-2.8.1-3.el7.x86_64 30/30 インストール: cloud-init.x86_64 0:0.7.9-24.el7.centos.1 依存性関連をインストールしました: PyYAML.x86_64 0:3.10-11.el7 audit-libs-python.x86_64 0:2.8.1-3.el7_5.1 checkpolicy.x86_64 0:2.5-6.el7 libcgroup.x86_64 0:0.41-15.el7 libsemanage-python.x86_64 0:2.5-11.el7 libyaml.x86_64 0:0.1.4-11.el7_0 net-tools.x86_64 0:2.0-0.22.20131004git.el7 policycoreutils-python.x86_64 0:2.5-22.el7 pyserial.noarch 0:2.6-6.el7 python-IPy.noarch 0:0.75-6.el7 python-babel.noarch 0:0.9.6-8.el7 python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-chardet.noarch 0:2.2.1-1.el7_1 python-ipaddress.noarch 0:1.0.16-2.el7 python-jinja2.noarch 0:2.7.2-2.el7 python-jsonpatch.noarch 0:1.2-4.el7 python-jsonpointer.noarch 0:1.9-2.el7 python-markupsafe.x86_64 0:0.11-10.el7 python-prettytable.noarch 0:0.7.2-3.el7 python-requests.noarch 0:2.6.0-1.el7_1 python-setuptools.noarch 0:0.9.8-7.el7 python-six.noarch 0:1.9.0-2.el7 python-urllib3.noarch 0:1.10.2-5.el7 setools-libs.x86_64 0:3.3.8-2.el7 依存性を更新しました: audit.x86_64 0:2.8.1-3.el7_5.1 audit-libs.x86_64 0:2.8.1-3.el7_5.1 完了しました! [root@localhost ~]#
パーティションのリサイズをサポートするための cloud-utils-growpart のインストール
ルートパーティションが適切にサイズ変更されるようにするには、cloud-utils-growpartパッケージをインストールする必要があるため、仮想インスタンス centos7-minimal にパッケージをインストールします。
[root@localhost ~]# yum install cloud-utils-growpart 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ cloud-utils-growpart.noarch 0:0.29-2.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: cloud-utils-growpart noarch 0.29-2.el7 base 26 k トランザクションの要約 ================================================================================ インストール 1 パッケージ 総ダウンロード容量: 26 k インストール容量: 61 k Is this ok [y/d/N]: y Downloading packages: cloud-utils-growpart-0.29-2.el7.noarch.rpm | 26 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : cloud-utils-growpart-0.29-2.el7.noarch 1/1 検証中 : cloud-utils-growpart-0.29-2.el7.noarch 1/1 インストール: cloud-utils-growpart.noarch 0:0.29-2.el7 完了しました! [root@localhost ~]#
zeroconf ルートの無効化
インスタンスがメタデータサービスにアクセスできるようにするために、デフォルトの zeroconf ルートを無効化する必要があるため、仮想インスタンス centos7-minimal で zeroconf ルートを無効化します。
[root@localhost ~]# echo "NOZEROCONF=yes" >> /etc/sysconfig/network [root@localhost ~]#
コンソールの設定
/etc/default/grub ファイルを編集し、GRUB_CMDLINE_LINUX オプションを設定する。 rhgd quiet を削除し、console=tty0 console=ttyS0,115200n8 を追加します。
[root@localhost ~]# 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=centos/root rd.lvm.lv=centos/swap console=tty0 console=ttyS0,115200n8" GRUB_DISABLE_RECOVERY="true"
以下のコマンドを実行し、設定を反映します。
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-3974c0ad55b94a6b9528174df293df48 Found initrd image: /boot/initramfs-0-rescue-3974c0ad55b94a6b9528174df293df48.img done [root@localhost ~]#
インスタンスのシャットダウン
仮想インスタンス centos7-minimal をシャットダウンします。
[root@localhost ~]# poweroff Connection to 192.168.24.90 closed by remote host. Connection to 192.168.24.90 closed. $
クリーンアップ (MAC アドレスの詳細の削除)
オペレーティングシステムは、インストール中に仮想 Ethernet カードの MAC アドレスを /etc/sysconfig/network-scripts/ifcfg-eth0 などの場所に記録します。作成したイメージを使って仮想インスタンスを起動するたびに、仮想 Ethernet カードの MAC アドレスは別の値となります。そのため、この情報は設定ファイルから削除する必要があります。
仮想インスタンスのイメージをクリーンアップします。
$ sudo virt-sysprep -d centos7-minimal [ 0.0] Examining the guest ... [ 1.6] Performing "abrt-data" ... [ 1.6] Performing "backup-files" ... [ 2.0] Performing "bash-history" ... [ 2.0] Performing "blkid-tab" ... [ 2.1] Performing "crash-data" ... [ 2.1] Performing "cron-spool" ... [ 2.1] Performing "dhcp-client-state" ... [ 2.1] Performing "dhcp-server-state" ... [ 2.1] Performing "dovecot-data" ... [ 2.1] Performing "logfiles" ... [ 2.1] Performing "machine-id" ... [ 2.1] Performing "mail-spool" ... [ 2.1] Performing "net-hostname" ... [ 2.1] Performing "net-hwaddr" ... [ 2.1] Performing "pacct-log" ... [ 2.1] Performing "package-manager-cache" ... [ 2.1] Performing "pam-data" ... [ 2.1] Performing "passwd-backups" ... [ 2.1] Performing "puppet-data-log" ... [ 2.1] Performing "rh-subscription-manager" ... [ 2.1] Performing "rhn-systemid" ... [ 2.1] Performing "rpm-db" ... [ 2.1] Performing "samba-db-log" ... [ 2.1] Performing "script" ... [ 2.1] Performing "smolt-uuid" ... [ 2.1] Performing "ssh-hostkeys" ... [ 2.1] Performing "ssh-userdir" ... [ 2.1] Performing "sssd-db-log" ... [ 2.1] Performing "tmp-files" ... [ 2.1] Performing "udev-persistent-net" ... [ 2.1] Performing "utmp" ... [ 2.1] Performing "yum-uuid" ... [ 2.1] Performing "customize" ... [ 2.1] Setting a random seed [ 2.1] Setting the machine ID in /etc/machine-id [ 2.2] Performing "lvm-uuids" ... $
libvirt ドメインの定義削除
仮想インスタンス centos7-minimal を削除します。
[yuji@localhost ~]$ sudo virsh undefine centos7-minimal ドメイン centos7-minimal の定義が削除されました [yuji@localhost ~]$
イメージの完成
このセクションで作成した /tmp/centos7-minimal.qcow2 をOpenstack にイメージ登録すれば、使用できるようになります。