Ubuntu Weekly Recipe

第495回Ubuntu Serverの新しいインストーラー「Subiquity」

Ubuntuでは現在、サーバー向けの新しいインストーラーである「Subiquity」を開発しています。Ubuntu 17.10からはSubiquity採用のイメージも実験的に配布されるようになりました。今回はこのSubiquityの使い方を紹介しましょう。

サーバー版のライブイメージ

Ubuntuでは主にデスクトップ版とサーバー版のインストールイメージをリリースしています。

このうちデスクトップ版については、ライブイメージとして提供していました。つまりDVDやUSBといったインストールメディアに書き込んで起動することで、インストールすることなくデスクトップ環境を試せるのです。またインストーラーそのものもUbiquityという独自のソフトウェアを開発し、なるべくシンプルにインストールできるようになっています。これはデスクトップLinuxとしてのUbuntuが、広く受け入れられる要因のひとつとなりました。

それに対してサーバー版はDebian Installerをそのままインストーラーとして採用していました。Debian Installerはより多くの環境・ハードウェアにおいて、さまざまな方法でゼロから確実にDebianをインストールできるように注意深く作られています。このためデスクトップ向けのUbiquityに比べると設定項目が多く、またステップごとに順番にデバイスを認識していくためにあまりお手軽とは言えません[1]⁠。

サーバー版であってもデスクトップ版と同じくらい「よりかんたんにUbuntuをインストールできる」ようにすることは、長年の課題ではありました。特にMAASの導入によって多数のマシンに対してUbuntuサーバーを素早くインストールする必要がでてきたため、ここ数年はcurtinやcloud-initなどのインストーラーとその補助ツールの拡充を行っていたのです。インストーラーのコア部分となるcurtinの準備が整ったおかげで、あとはUI部分を作るだけでサーバー版のインストーラーを作成できるようになりました。

今回紹介する「Subiquity」はまさにそのUI部分となるソフトウェアです。⁠Subiquity」のテクニカルプレビュー版がリリースされたのが半年前の4月のことで、その際はUbuntu Weekly Topicsでも取り上げたので名前を覚えている人もいるかもしれません。UbuntuがIoT向けに提供しているUbuntu Coreでは、OEMインストールのように初回起動時にアカウント設定などを行う仕組み(console-conf)を導入しています。Subiquityはconsole-confの機能を発展的にサーバーインストールにも使うようにした新しいインストーラーなのです。

Ubuntu 17.10では通常のイメージとは別扱いではあるものの「Live Serverイメージ」と呼ばれる、インストーラーとしてSuiquityが立ち上がるイメージも提供されるようになりました。来年4月にリリースされる予定のUbuntu 18.04 LTSでは、ひょっとするとサーバー版はこのライブイメージが標準のイメージになっているかもしれません。

ライブイメージのダウンロード

サーバー版のライブイメージは、ARM64やPPC64などの他のアーキテクチャ用と同様に「Unsupported Ubuntu Images」というカテゴリーに属しているため、残念ながら公式的なミラーサーバーからはダウンロードできません。よってcdimage.ubuntu.comか、cdimage.ubuntu.comをミラーしているサーバーからイメージをダウンロードすることになります。

17.10の正式版であれば、以下から「ubuntu-17.10-live-server-amd64.iso」をダウンロードしましょう。

Bionic(18.04のコード名)のイメージビルドが開始したら、http://cdimage.ubuntu.com/ubuntu-server/daily-live/からより新しいイメージをダウンロードできるようになるかもしれません。

イメージファイルの使い方はこれまでと同じです。適当なUSBスティックに書き込んで起動するか、仮想マシンマネージャーなどにイメージファイルを読み込ませて起動します。

インストールの流れ

ここからはスクリーンショットを使って、インストールの流れを紹介していきましょう。

図1 いつものGRUBメニュー
画像
図2 言語の選択メニュー
画像

GRUBメニューはいつものとおり「Install Ubuntu Server」を選択してください。上の画像はUEFIブートの場合で、古いBIOS上で起動した場合はもう少しグラフィカルなメニューになります。言語については、表示されているものしか選択できません。今のところ日本語には未対応です。

UIはurwidを用いてPythonで構築しています。以降は基本的にカーソルキーやエンターキーで操作していくことになります。

ちなみにこの時点でCtrl+Alt+F2キーを押してtty2に移動すると、ライブ環境のシェルに切り替わります。インストールせずにUbuntu Serverを使用したい場合は、このように仮想端末を切り替えましょう。

図3 ネットワーク設定
画像

インストールに利用するネットワークインターフェースを設定します。基本的にインターネット上のパッケージリポジトリからもパッケージをダウンロードするため、インターネットへの接続は必須です。インターネットへの接続ができないとエラー終了してしまいます。また残念ながらプロキシの設定は未実装です。インターネット必須・プロキシ環境不可はいずれもユースケースによっては不便なので、何らかの対応が行われる予定です。

図4 ファイルシステムの設定
画像
図5 対象ディスクの選択
画像
図6 パーティションレイアウトの確認
画像
図7 変更を適用するかどうかの最終確認
画像

「Use An Entire Disk」を選択すると、ディスク全体をext4のルートファイルシステムとして構築します。UEFIブートの場合はさらにEFIシステムパーティションも作成します。

図8 Manualを選択した場合は手作業で設定する
画像

「Manual」を選択した場合は、手作業でパーティションレイアウトを設定することになります。このあたりはデスクトップ版のインストーラーと同じですね。

図9 アカウントの設定
画像

システム管理者となるアカウントを設定します。ユーザーのフルネーム・ホスト名・ユーザー名・パスワードあたりはこれまでのインストーラーの設定と同じです。

図10 SSH公開鍵の登録
画像

Subiquityでは、パスワードに加えてSSH鍵を登録することも可能です。具体的にはssh-import-idコマンドを使ってGitHubやLaunchpadから公開鍵をダウンロードします。⁠Ubuntu One account」を指定した場合は、初回起動時にUbuntu Single Sign-Onシステムを利用してアカウントへのログインと公開鍵のダウンロードを行うことになるようです。

図11 インストール中のログ
画像
図12 インストール後の作業
画像
図13 システムの再起動
画像

アカウント設定まで行えば、インストール開始です。ここから先はひたすら流れるログを眺めるだけの作業になります。このログはタブキーでフォーカスをあわせれば、PageDownキーなどでスクロールバックできます。

インストールが完了したら再起動するかどうか問い合わせてくるので、そのまま「Reboot Now」を選択しましょう。

図14 インストールエラー時の表示
画像

インストールに失敗するとエラー内容が表示されます。現時点ではエラーが発生してもリカバリーする手段はありません。原因を調べて最初からやり直すことになります。

もし外的要因でエラーになっている場合(たとえばLANケーブルが抜けていた、など⁠⁠、外的要因を解消したら再起動することなくインストーラーを再実行できます。⁠Exit To Shell」を選択してシェルを起動した上で、シェルからsudo subiquityコマンドを実行してください。再びインストーラーが立ち上がります。

図15 シェルに移動すると普通のUbuntuであることがわかる
画像

snap世代のインストーラー

実はこのSubiquityはsnapパッケージとして提供されています。つまりライブ版のサーバーイメージには、Core snapとsubiquity snapが最初からインストールされているのです。

このため既存のライブイメージ上のインストーラーを新しいバージョンに置き換えることもとてもかんたんです。既存のイメージファイルのSquashFS上にOverlayFSで新しいsnapパッケージの中身を展開し、ISOイメージとして固め直すだけで完了するのです。手順そのものは、Subiquityプロジェクト上のスクリプトとしてまとまっていますので、ライブイメージのカスタマイズなどに興味のある人は中身を見てみると良いのでないでしょうか。

おすすめ記事

記事・ニュース一覧