CentOS 8.0.1905 がリリースされました。
新しい OS はまず試してみたいところですが、今回はサーバー運用を前提に ConoHa で利用してみます。
ConoHa はテンプレートイメージが多いですが、さすがにリリース翌日にはないので、ISO イメージを利用する API を使用してインストールしてみます。
今回も、過去の記事同様 PowerShell を利用します。
ISO イメージからインストール手順
認証系
このあたりは、他の API を利用する際にも使える部分です。
# アカウント情報より確認すること
$apiUser = "gncu00000000"
$apiPassword = ""
$tenantId = "00000000000000000000000000000000"
$identityServiceUrl = "https://identity.tyo[12].conoha.io/v2.0"
$computeService = "https://compute.tyo[12].conoha.io/v2/$tenantId"
# トークンの取得
$body = '{"auth":{"passwordCredentials":
{"username":"' + $apiUser + '","password":"'+$apiPassword+'"}
,"tenantId":"'+$tenantId+'"}}'
$url = $identityServiceUrl+"/tokens"
$mytokens = Invoke-RestMethod $url -Method POST -Body $body
$token = $mytokens.access.token.id
$tokenHeader = @{"X-Auth-Token" = $token}
ISO の選択
CentOS 8 stream というのもあるようですが、今回は従来のバージョンの延長線上にある「CentOS-8-x86_64-1905-dvd1.iso」を利用します。
適当なミラーされているところから、URL を取得します。
CentOS 7 だと、DVD、Everything、Minimal など複数ありましたが、8 だと dvd1 と boot のみのシンプルな構成になっていました。
ISO のダウンロード
# ISO 一覧
$result = Invoke-RestMethod -Method GET -Headers $tokenHeader -Uri "$computeService/iso-images"
$result
iso-images
----------
{}
ダウンロード前なので、何も出力されないことを確認します。
# ISO ダウンロード
$body = '{
"iso-image": {
"url": "http://~~~/pub/linux/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso"
}
}'
$result = Invoke-RestMethod -Method POST -Headers $tokenHeader -Uri "$computeService/iso-images" -Body $body
# ISO 一覧
$result = Invoke-RestMethod -Method GET -Headers $tokenHeader -Uri "$computeService/iso-images"
$result.'iso-images'
url : http://~~~/pub/linux/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso
path : /mnt/isos/repos/tenant_iso_data/(テナントID)/CentOS-8-x86_64-1905-dvd1.iso
ctime : Fri Aug 16 06:59:26 2019
name : CentOS-8-x86_64-1905-dvd1.iso
size : 7135559680
7GB程度あるため、しばらく待ってかかりますが、完了すると上記になります。
ISOイメージの挿入
VM の作成も API で可能ですが、Flavor や Image など考慮事項が多いので、コントロールパネルにて実施しました。
作成後、VM は停止させます。
# VM 状況確認
$uuid = "00000000-1111-2222-3333-444444444444"
$result = Invoke-RestMethod -Method GET -Headers $tokenHeader -Uri "$computeService/servers/$uuid"
$result.server.status
'SHUTOFF'
$result.server.metadata.properties
'{"vnc_keymap":"ja","hw_video_model":"vga","hw_vif_model":"virtio","hw_disk_bus":"virtio","cdrom_path":""}'
SHUTOFF 状態であること、cdrom_path が null であることを確認します。
# ISO マウント
$body = '{
"mountImage": "/mnt/isos/repos/tenant_iso_data/(テナントID)/CentOS-8-x86_64-1905-dvd1.iso"
}'
$result = Invoke-RestMethod -Method POST -Headers $tokenHeader -Uri "$computeService/servers/$uuid/action" -Body $body
# VM 状況確認
$result = Invoke-RestMethod -Method GET -Headers $tokenHeader -Uri "$computeService/servers/$uuid"
$result.server.metadata.properties
'
{"vnc_keymap":"ja","hw_video_model":"vga","hw_vif_model":"virtio","hw_disk_bus":"virtio","cdrom_path":"/mnt/isos/repos/tenant_iso_data/(テナントID)/CentOS-8-x86_64-1905-dvd1.iso"}'
このように、cdrom_path が入っていれば OK です。
インストール
このようにメニューが表示されたら、ISO の認識は完了しています。
CUI で利用するので、デフォルトのサーバー(GUI使用)ではなく、サーバーにてインストールしました。
ISO 排出のため、この画面で一旦 VM をシャットダウンします。
# ISO 取り出し
$body = '{
"unmountImage": ""
}'
$result = Invoke-RestMethod -Method POST -Headers $tokenHeader -Uri "$computeService/servers/$uuid/action" -Body $body
# VM 状況確認
$result = Invoke-RestMethod -Method GET -Headers $tokenHeader -Uri "$computeService/servers/$uuid"
$result.server.status
'SHUTOFF'
$result.server.metadata.properties
'{"vnc_keymap":"ja","hw_video_model":"vga","hw_vif_model":"virtio","hw_disk_bus":"virtio","cdrom_path":""}'
ISO 排出後改めて起動します。
起動
CentOS 8 が無事起動しました。
スペックについて
CentOS 8 リリースノートには下記の記載がありました。
CentOS-8 (1905) のインストーラーおよび利用には、最低限 2GB の搭載メモリーが必要です。搭載メモリー 4GB 以上を推奨致します。
ja/Manuals/ReleaseNotes/CentOS8.1905 – CentOS Wiki
CentOS 7 では 1280MB 以上だったので、1.6倍になっていますね。
今回は、ConoHa の1GBプランで作成しましたが、インストールおよび起動でメモリ不足のエラーは確認しませんでした。
ConoHa には 512MB プランもあるので、CentOS 8 が動くのか気になるところです。
IPv6 について
DHCP で IPv4 アドレスやホスト名は自動設定されたのですが、IPv6 アドレスは一つも付与されませんでした。
ConoHa の IPv6 の実装は変わっているようで、ConoHa 標準のテンプレートイメージにはなにか工夫がされているのかもしれません。
OS のパッケージ面
いろいろありますが、下記があるようです。
- Python 3 が標準になったこと
- yum から dnf に移行した
iptables が nftables に変わっているのですが、CentOS 7 の時点で、Firewalld になっていたので、nftables は導入していません。
削除されたパッケージとして、Ansible、sshpass、whois がインストールできないのも地味に痛いです。
また、curl の挙動が変わっていて、 –tls1.1 オプションを付けた場合、今までは、tls1.1「のみ」だったのが「以上」になってます。
なので、サーバー側で、TLS1.1を拒否するかの検証が困難になりました。
外部のパッケージも、RHEL / CentOS 8 に対応していないものもありますが、Fedora 用をいれたら動く物もありました。
まとめ
ConoHa の ISO API を使って簡単に CentOS 8 を試すことができました。
新しいOSにも慣れていきたいです。