Ubuntu Weekly Recipe

第820回改めてUbuntuに入門したい人向けのUbuntuサーバー講座2024

2024年もいつの間にか半分が過ぎました。夏越の祓も終わり、なぜか既に始まっている気もする本格的な夏に向けて心機一転気合を入れる時期です。

今回は、研修期間が終わった途端にもう誰がメンテナンスしているかもわからなくなった古いサーバーのリプレースを依頼された不幸な新社会人に向けて、改めてUbuntuサーバーの初歩的なインストール方法について紹介します。

ちなみにUbuntuデスクトップや基本的な部分については、第811回ゴールデンウィーク特別企画 新学生・新社会人向けのUbuntuデスクトップ講座2024を参照してください。

図1 Ubuntuサーバーのインストール画面

Ubuntuサーバーとは

まず最初にUbuntuサーバーに関する一般的な話をしましょう。⁠とりあえずUbuntuのインストール方法がわかれば良い」のであれば、Ubuntuサーバーのインストール手順まで読み飛ばしても大丈夫です。

UbuntuとはDebianをベースにしたLinxuディストリビューションのひとつです[1]。あくまでコミュニティが主体となって開発していますが、Ubuntuの創始者であるマーク・シャトルワースが出資したCanonical社がサポート企業として開発者の多くを雇用しています。そしてUbuntuサーバーとは、Linuxサーバーの構築に特化したインストール形式です。第811回ではデスクトップとしてのUbuntuを説明しましたが、Ubuntuデスクトップとサーバーのふたつは、最初にインストールされるパッケージ構成や初期設定以上の違いはありません。

図2 個人からエンタープライズまで幅広く使われているUbuntuサーバー

Ubuntuはデスクトップの分野で有名になった印象が強いですが、サーバー分野においても大きなシェアを占めています。CanonicalとしてはUbuntuサーバーが収益の柱でもあるため、Ubuntuサーバーやその周辺ツールの開発を積極的に行っている状況です。Ubuntuが登場した20年前に比べるとオンプレミス[2]よりもクラウドの比重が大きくなっているものの、オンプレミス向けの基盤であるOpenStackやKubernetes等の環境構築、クラウドも含めたコンテナのベースイメージ、AIの開発基盤におけるUbuntuサーバーそのものの人気は依然として高いと言えます。

Ubuntuをサーバーとして使う際の利点として考えられるものをいくつかあげてみましょう。

  • 定期的なリリース周期
  • Canonicalによる有償サポート(Ubuntu Pro)
  • 多種多様なUbuntu認定サーバー
  • Debian由来の豊富なパッケージ資産とPPA
  • ソフトウェアベンダーにおけるサポートの充実

Ubuntuを採用する最大の利点は、定期的なリリース周期でしょう。Ubuntuは6ヶ月ごとの通常リリースと2年に1度の長期サポート版(LTS:Long Term Support)のリリースを20年近く継続しています。サーバー用途であれば、通常リリースを使う利点ははあまりないため、基本的に長期サポート版を利用します。

つまり、最初にUbuntuをインストールしたあとのリプレース・アップグレードは、次の長期サポート版のリリースである2年後から、現在のバージョンのサポートが切れるであろう最大で5年後までの間のいずれかで対応するように事前に計画できるのです。これまでの実績からリリース周期が崩れる可能性は低く、必ず2年ごとの4月には新しいリリースが出るだろうと見込めます[3]。よって事前のテストを含めたリプレース・アップグレードの計画も立てやすいはずです。

図3 Ubuntuのリリースサイクル

サーバーマシンの一般的なリース期間や保証期間等を考えると、LTSのサポート期間である「5年」は心もとないかもしれません。その場合はCanonicalによる有償サポートサービスであるUbuntu Proの中で提供される延長サポート(ESM:Extended Security Maintenance)が使えます。ESMではLTSのサポート期間が10年まで延長されます。Ubuntu Oneアカウントを作れば5台までは無償でUbuntu Proの「ESM」と、再起動せずにカーネルにセキュリティアップデートを適用できるKernel Live Patchを利用できるため、個人用のサーバーでもUbuntu Proは役に立つでしょう。

エンタープライズ向けの用途なら有償サポートは外せないかもしれません。このあたりはRed Hat Enterprise Linux(RHEL)やSUSE Linux Enterprise Server(SLES)のサービスと、Ubuntu Proとの比較になるでしょう。Ubuntuの場合は、有償サポートありなしに関わらず使えるパッケージリポジトリは原則として同じです。有償サポートはあくまで「有償サポート」でしかなく、普通のUbuntuサーバーをインストールしたあとに、任意のタイミングで有償サポートの追加ができるようになっています。

ちなみにUbuntu Certifiedでは動作確認済みのハードウェアの一覧を閲覧できます。サーバーハードウェアの選択においても役に立つことでしょう。

もうひとつの利点は豊富なパッケージ資産です。正確にはDebian由来の強力なパッケージ管理システムが使えることです。Debianではパッケージの品質を高めるためさまざまな仕組みを導入しています。そのおかげでUbuntuでも、パッケージ管理由来の問題はそこまで起きないようになっています[4]。また、パッケージの作成方法についてもドキュメントも充実しているため、PPAを利用したソフトウェアの公開も盛んです。公式のパッケージリポジトリに比べると品質にばらつきはあるものの、パッケージ管理システムを利用したソフトウェアのインストール・更新は何にもまさる魅力になることでしょう。

Ubuntuが登場した当初ならともかく、現在ではユーザーや採用例の多さからUbuntuも「Linuxサーバーにおける最初の選択肢のひとつ」に成長しました。Linux向けのソフトウェアを提供するベンダーも、そのほとんどがRHELと並んで「Ubuntuでのインストール方法」も紹介しています。結果的にサードパーティのソフトウェアベンダーにおいてもUbuntuのサポートが充実し、他のLinuxと遜色なく使えます。初心者としてはUbuntuを選んでおけばまず問題ないと考えて良いでしょう。

このようにUbuntuは、実サーバーにおいても十分に利点のある選択肢となっています。よって固有の事情がない限りはUbuntuサーバーの採用を咎められることはないはずです。

様々な形式で提供されるUbuntuサーバー

一口に「Linuxサーバー」と言ってもその用途は多岐に渡ります。

古典的なLinuxサーバーと言えば「LAMP」[5]という言葉に代表されるような、ウェブサーバーやデータベースに各種CMS[6]などのウェブアプリケーションを組み合わせてインストールする環境が想像されるでしょう。さらに近年では、IoT/Edgeデバイス上で動く低ワークロードなサービスから、AI/ML[7]向けの学習処理に代表される高ワークロードなサービス、自動運転などでも使われている推論処理、パブリック/プライベートクラウドのような多種多様なワークロードが混在する基盤プラットフォームにいたるまで幅広い種類や用途においてLinuxサーバーが動いています。またSDN[8]のような「ソフトウェア定義なんとか」も増えてきて、本来ハードウェアがやっていたネットワーク処理もUbuntuをはじめとしたLinux上で動くOpen vSwitchやDPDK/XDPといったソフトウェアスタックを使い、サーバー上のCPUとLinuxが担うようになっています。

Ubuntuではそれぞれの用途を意識した「Ubuntuサーバー」のインストーラーやイメージを用意しています。代表的なものをいくつかあげてみましょう。

  • Ubuntuサーバーのインストーラーイメージ
  • インストール済みのUbuntuイメージ(クラウドイメージ)
  • コンテナ向けのベースイメージ(DockerやIncus/LXDなど)
  • WSL向けのイメージ

初心者向けにおすすめなのはUbuntuサーバーのインストーラーイメージです。何か物理マシン・仮想マシンにUbuntuサーバーをインストールするのであればこの方法を取ります。

任意のクラウドサービスを使うのであればクラウドイメージを使います。クラウドイメージの場合は「インストール」ステップは存在せず、cloud-initを用いて初期設定を行うことになり、その手順についてはクラウドサービスに依存します。パブリッククラウドにおいてUbuntuのイメージはそのサービスの仕組みの中で提供されていますが、UbuntuではUbuntu Cloud Imagesとしても配布しているのです。これによりプライベートクラウドでも同じようなイメージを利用できます。さらに仮想マシンシステムによってはクラウドイメージを直接インストールできるようにもなっています。このあたりは第565回のサーバー向けインストール済みイメージを活用しようも参照してください。

しかしながら近年のサーバーでは「コンテナの中にサービスを構築する」⁠コンテナオーケストレーションツールを使って、コンテナ同士を連携させる」ほうが主流かもしれません。つまりUbuntuの上に直接サービスをインストールするのではなく、DockerやKubernetesなどのコンテナ管理システムのレイヤーを用意し、さらにその上で必要なコンテナをデプロイする形になります。この場合に出てくるのがコンテナのベースイメージであるUbuntuです。

たとえばDocker系列だと、Ubuntuイメージがベースイメージとしてよく使われます。ベースイメージも含めて作りたいならUbuntu Baseを使う方法もあります。もちろんコンテナイメージの場合は、Ubuntuをベースにする必要性は低いのですが、それでも少し複雑なコンテナイメージやイメージ作成の手習いにおいてはUbuntuを使うほうが楽なこともあります。クラウドイメージと同じく「Ubuntuのインストール」は必要ありません。ただしUbuntuをベースイメージとして使う場合は、Ubuntuの使い方に慣れておいたほうが良いでしょう。本当の意味での初心者の場合は、先に普通の物理マシン・仮想マシンにUbuntuサーバーを入れてみることをおすすめします。

WSL(Windows Subsystem for Linux)を使うと、Windows上で気軽にLinux環境、特にUbuntu環境を構築できます。このWSLはMicrosoftがサポートしている点もポイントです。WSL上のUbuntuは原則としてCLI環境になります。つまり見た目や使い方はUbuntuサーバーのそれと一緒です。特にsystemdをサポートするようになってからは、軽く使う分においてUbuntuとの違いはなくなってきていますので、UbuntuサーバーやCLIの基本的な使い方を知るにはお手軽な環境と言えるでしょう。

また、UbuntuサーバーはPC/amd64だけでなく、Raspberry PiなどのAArch64/arm64やRISC-V/riscv64、IBM Z/s390xなどのアーキテクチャーでも使えるようになっています。おうちにRaspberry PiやRISC-Vなどのシングルボードコンピューター、さらにはメインフレームなどが余っている場合は、そちらにUbuntuサーバーをインストールしてみるのも面白いかも知れません。

Ubuntuサーバーを動かすために必要なもの

今回は一番基本的な、インストーラーを用いたUbuntuサーバーのインストール方法を紹介します。必要な機材は次のとおりです。

  • インストール先の物理マシンもしくは仮想マシン
  • Ubuntuインストーラーのイメージ
  • 4GiB以上のUSBストレージ(物理マシンのみ)
  • キーボード・ディスプレイ(物理マシンのみ)
  • LANケーブル(物理マシンのみ)

マシンのスペックは1GHz以上のCPU、1GiB以上のメモリ、5GiB以上のストレージが最低ラインです。実際のところUbuntuサーバー上で様々なソフトウェアを動かすことを考えると、CPUコアにしろメモリにしろストレージにしろ多いに越したことはありません。最近流行りの「Intel N100等が載ったミニPC」であれば、何の問題もなく動作します。

最新版のインストーラーのイメージのダウンロードは公式サイトのダウンロードボタンを押すことが一番わかりやすいでしょう。もし日本のミラーサイトからダウンロードしたかったり、古いバージョンがほしければ、イメージが配置されているサーバーから選択できます。何らかの理由でサポートが切れたイメージが必要な場合はold-releases.ubuntu.comにアクセスしてください。日本の他のミラーサーバーからダウンロードしたい場合はこちらのミラーリストにある「Japan」から選択してください。

Ubuntuサーバーのインストールイメージは、およそ3GiB弱のサイズになっています。よってCD-Rには書き込めず、DVDもしくはUSBストレージが必要です。実際のところDVDも遅すぎるため、選択肢はUSBストレージ一択となるでしょう[9]。もちろん仮想マシンにインストールするだけであれば、イメージファイルだけあれば大丈夫です。

キーボード・ディスプレイ・LANケーブルも物理マシンのみに必要です。キーボードとディスプレイは、サーバーがIPMIに対応しているもしくはシリアルコンソールで接続できるのであれば不要です。LANケーブルについてもインストール時に必須ではないのですが、インストール時の便利機能を使ったり、最終的にサーバーとして用意するのであればほぼ必須と思っておけば良いでしょう。

物理マシンの場合は、ダウンロードしたインストールイメージをUSBストレージに書き込みます。このあたりは第811回でも紹介しているようにbalenaEtcherなど好みの書き込みツールを使ってください。あとは物理マシンにUSBストレージを接続してそこから起動するか、仮想マシンであればそのイメージを選択してください。

Ubuntuサーバーのインストール手順

Ubuntuサーバーも、デスクトップと同様にインストーラーの質問に応えるだけで簡単にインストールできます。しかしながらデスクトップと異なり基本的にマウスでの操作ができないTUI(Text User Interface)であり、回答が必要な項目が多めになります。とはいえ次の操作方法だけおぼえておけば、操作に手間取ることはないはずです。

  • 項目間の移動:Tabキーないしカーソルキー
  • 項目の選択・選択解除:SpaceキーないしEnterキー
  • カーソル位置のサブメニューの表示:SpaceキーないしEnterキー
  • 各種項目の確定:SpaceないしEnterキー

ちなみにあらかじめ回答内容をファイルに用意しておいて、インストールそのものを自動化することも可能です。ただ事前準備などが必要になりますので、複数台のマシンにUbuntuサーバーをインストールするケースで初めて意味が出てくるでしょう。詳しい手順は第615回のサーバー版インストーラーに導入された自動インストール機能を参照してください。

図4 起動直後の画面

起動直後の画面はブートローダーである「GRUB」の画面が表示されますが、基本的にそのまま放っておけば問題ありません。

図5 言語の選択画面

次に表示されるのが言語の選択画面です。現在のUbuntuサーバーのインストーラーは、ディスプレイにおける日本語の表示には対応していません。ここで選択できるのはコンソールに直接文字を表示できる言語だけとなっています。ここでは「English」を選ぶことになるでしょう。この場合、インストールされるロケールも英語になります[10]。必要に応じてインストール後に日本語ロケールを追加することになります。

もしインストール時点でロケールを日本語にしておきたければ、まずインストール環境にSSHでアクセスします。具体的には右上のHelpにカーソルキーで移動し、Enterキーでメニューを表示します。

図6 Helpメニューを表示した状態

ここで「Help on SSH access」を選択すれば、IPアドレスとユーザー名・パスワードが表示されますので、それで任意の端末からSSHログインしてください。

図7 ユーザー名はinstaller固定。パスワードはランダムな文字列になる
図8 SSHログインするとインストーラーが表示され、日本語も選択できるようになった

ただし日本語を選択しても標準のロケールが日本語になるだけで、インストーラーのUIは引き続き英語のままです。これについては何か技術的な制約があるわけではなく、たとえば中国語でもSSH経由であればUIは簡体字・繁体字で表示できますので、将来的には日本語UIも追加される予定です。

ちなみにHelpメニューには「Enter shell」なる選択肢もあります。これを選択するとLiveセッションにログインできます。

図9 Liveセッションでは管理者権限でシェルが立ち上がる

これはいわゆるデスクトップ版のLiveセッションと同じで、インストーラーを起動した状態で動くUbuntu環境です。もちろんaptでパッケージをインストールできます。ストレージの完全消去時など、デスクトップ環境はいらないけれども何か軽いLinuxを動かしたい場合に便利でしょう。

さてインストール作業に戻ります。言語選択画面でEnterキーを押せば、次はキーボード選択画面です。

図10 キーボード選択画面

サーバーでは、インストール時やトラブル時以外に直接キーボードを触ることはないため、ここではインストール時に使う物理的に接続されたキーボードのレイアウトを選択してください。言語選択で「English」を選択すれば英語キーボードが、⁠日本語」を選択していれば日本語キーボードが選択されています。

図11 インストール方式の選択画面

インストール方式では、Ubuntuサーバーのインストール方法を選択します。通常は上の「Ubuntu Server」を選択すれば大丈夫です。⁠Ubuntu Server (minimized)」は、さらに不要なパッケージを除去することでストレージやメモリの使用量を減らします。具体的にはテキストエディタ類やmanページ類等がインストールされなくなります。これはサーバーの設定をAnsibleなどの構成管理ツールで自動化し、人類かそれに類するものがログインして操作することを想定していない場合に有効です。

最後の項目はサードパーティ製のドライバーを検索しインストールするかを選択します。おおよそサードパーティのドライバーが必要になるのは、GPU・NIC・ストレージのいずれかでしょう。最初から必要とわかっていない場合はチェックを入れずに、インストール後に対応することをおすすめします。

図12 ネットワークインターフェースの設定画面

ネットワークインターフェースのIPアドレス等を設定します。サーバーの場合は固定のIPアドレスがあらかじめ決まっていることも多いと思いますので、その場合はこの画面で設定してください。何も指定しなければIPv4はDHCPv4で取得し、IPv6/DHCPv6は無効化されています。IPv6/RAは何もしなくても使用します。

複数のインターフェースが存在し、そのすべてでDHCPv4が有効化されていると、起動時にすべてのインターフェースのアドレスが取得できるかタイムアウトするまで待つことになります。これは1ポートだけネットワークケーブルが繋がっているケースにおいて、起動完了に時間がかかってしまいます。構成にもよりますが、もし複数のインターフェースがあるもののその、一部はインストール時点では使わない予定であるならば、使わないインターフェースのIPv4も「disabled」にしておきましょう。もちろんインストール後に、Netplanによって最有効化できます。

図13 ネットワークプロキシーの設定画面

ネットワークプロキシーを使う場合はここでアドレスを設定します。使わない場合は空のままでかまいません。

図14 ミラーリポジトリの設定画面

ミラーリポジトリのURLを設定する画面です。こちらは任意のミラーリポジトリを使わない場合は選ばれたものをそのまま利用すれば良いでしょう。ミラーリポジトリが選択された時点で自動的にアクセス可能かどうかのチェックを行っています。上記の図では日本語ロケールでチェックした結果、実行結果の一部を日本語で表示しようとしてうまく表示できなくなっています。

図15 ストレージの設定画面

ストレージの設定画面では、ストレージのパーティションレイアウトを設定します。これも各自の環境に依存しますが、初期設定である「Use an entire disk」を選択した場合は次のように設定されます。

  • 指定したストレージのみがフォーマットされる
  • ストレージの一部はEFI System Partitionとなる
  • 残りの領域はLVMを使ってフォーマットされる
  • ストレージが10GiB未満なら、すべての領域がルートファイルシステムに使われる
  • ストレージが10GiBから20GiBなら、ルートファイルシステムのサイズは10GiB
  • ストレージが20GiBから200GiBなら、ルートファイルシステムのサイズはストレージの半分
  • ストレージが200GiBを超えると、ルートファイルシステムのサイズは100GiB固定

つまりどんなに大きなストレージであっても、何も設定しなければ100GiBまでしか使われません。これはLVMにおいて領域の拡張自体は比較的かんたんであるのに対して、あとで用途ごとにパーティションを分割したくなったときはいろいろと面倒になるためです。Ubuntuシステムそのものはそこまで容量を必要としないこと、たとえば仮想マシンやコンテナなどは別のパーティションに保存する設定も可能であることから、初期設定としては妥当な判断と言えるでしょう。

個人で利用する際に、あまり複雑な構成をせずにすべてのストレージをルートファイルシステムとして使いたい場合は、⁠Use entire disk」のまま一度「Done」を選択肢、次のページで「ubuntu-lv」を選択して「Edit」から「Size」フィールドを空にして「Save」しましょう。

図16 ⁠Use entire disk」でも次の画面で微調整が可能

またソフトウェアRAIDも利用できます。ソフトウェアRAIDの設定方法については、次の記事を参照してください。

あとは「Done」を選択すると、最後の確認画面が表示されますので「Continue」を選んでおきます。

次に行うのがホスト名とユーザー名・パスワードの設定です。

図17 ホスト名とユーザー名・パスワードの設定画面
  • Your name:GECOSフィールドに入る名前(一般的にはフルネーム)
  • Your servers name:ホスト名
  • Pick a username:ログイン用のユーザー名
  • Choose a password:パスワード

ここで設定できるユーザーは1名だけです。またUbuntuの伝統としてrootパスワードは設定しません。⁠root」アカウントを無効化した状態でインストールします。正確には「rootをあらゆるパスワードが無効であるアカウント」として設定します。管理者権限が必要な場合はsudoグループに所属するユーザーが、sudoコマンドを使って管理者権限を取得して実行します。ここで作成したアカウントは、自動的にsudoグループに所属します。

ちなみに入力したパスワードを表示する手段はありません。また現在のインストーラーはパスワードの比較以外のバリデーションも行わないため、パスワードの入力間違いにはよくよく注意しましょう。

図18 Ubuntu Proの設定画面

有償サポートサービスであるUbuntu Proを有効化する画面です。これについてはあとからでも設定可能ですので、⁠Skip for now」を選んでおけば良いでしょう。

図19 SSHサーバーの設定画面

一般的にサーバーには、SSHでリモートログインして操作します。ただしSSHサーバーをインストールしない選択肢も可能です。もしインストール時点でSSHサーバーをインストールしたければ「Install OpenSSH server」にチェックを入れてください。

UbuntuのSSHサーバーの初期設定は「パスワードログイン不可」となっています。パスワードログイン可能にしたい場合は、⁠Allow password authentication over SSH」にチェックを入れておきましょう。ただしサーバーのインストール時点で、~/.ssh/authorized_keysの設定も可能です。⁠Import SSH key」を選択すると、次のような画面が表示されます。

図20 公開鍵のインポート画面

ここではGitHubもしくはLaunchpad上の任意のアカウントに登録された公開鍵を取得します。具体的にはhttps://github.com/ユーザー名.keyshttps://launchpad.net/~ユーザー名/+sshkeysが使われます。パスワードログイン不可のまま公開鍵ログインしたい場合は、ここで公開鍵ログインしておかないと、リモートログインする前に一度物理マシンへのアクセスが必要になります。

図21 snapパッケージのインストール画面

あらかじめ任意のsnapパッケージをインストールしておきたい場合はここで選択します。ただし身も蓋もないことを言うと、ここで選択することはまずありません。snapパッケージが必要ならインストール後に設定するほうが確実ですし、インストール時にあえて入れておきたいものもないからです。

図22 インストールログの表示

ここまで進めばインストール処理が開始されます。自動的にインストールログが表示されるために完了するまで待ちましょう。と言ってもおそらくインストール処理そのものはすぐに終わるでしょう。インストール後にセキュリティアップデートの適用作業に入ります。もしすぐに再起動したい場合は、⁠Cancel update and reboot」を選択してください。

さらに待つと次のように「Reboot Now」ボタンが表示されます。

図23 インストールが完了し「Reboot Now」が表示された

あとは再起動の完了を待ちます。シャットダウンの途中で「Please remove the installation medium, then press ENTER:」と表示されますので、USBストレージを取り外してEnterキーを押してください。

図24 サーバー版のインストールメディアの除去メッセージはわかりづらい
図25 無事にUbuntuサーバーにログインしたらインストール完了

Ubuntuはデスクトップであってもサーバーであっても、インストール時は何も考えずに初期設定を選んでおけば問題ないように作られています。インストール手順として事細かに説明しましたが、実際はそこまで複雑ではなくひたすら「Done」を選んでいけば良いだけですので安心してください。

インストールの説明でだいぶ分量を使ってしまいましたので、Ubuntuサーバーの基本的な使い方についてはまたいずれ別の機会に紹介しましょう。

おすすめ記事

記事・ニュース一覧