4月も中旬にさしかかりこの時期の風物詩である「新人さん」もそろそろ職場や学校に行きたくなくなる時期かと思います。そこで今回は、新しい職場や研究室によっては新人の最初の作業として発生するであろう「新人研修の一環として空いたマシンにサーバーとしてのLinuxディストリビューションをインストールする」というイベントをUbuntuによって無難にこなすことで、職場や学校での居場所を確保する術をお届けします。
Ubuntuサーバーとは
「Ubuntu 」とはDebianをベースにしたLinxuディストリビューションのひとつです[1] 。あくまでコミュニティが主体となって開発していますが、Ubuntuの創始者であるマーク・シャトルワースが出資したCanonical社がサポート企業として開発者の多くを雇用しています。そして「Ubuntuサーバー」とは、そのUbuntuのインストール形式のひとつであり、インストールイメージでもあります。第463回 ではデスクトップとしてUbuntuをインストールする際のあれやこれやを説明しましたが、基本的にUbuntuデスクトップとサーバーの2つは最初にインストールされるパッケージ構成以上の違いはありません。
[1] Debianは、歴史があり現在も活発に開発が行われ、サーバーとしても広く使われているLinuxディストリビューションです。DebianをベースにしたディストリビューションはUbuntu以外にもたくさん存在します。Debian自身もまもなくリリースされるであろう9.0(Stretch)の最終調整中なので、こちらを試してみるのも良いでしょう。
Ubuntuはデスクトップの分野で有名になったという印象が強いようですが、サーバー分野においても大きなシェアを占めています。先週のTopics の記事でも言及されているように、むしろサーバーのほうが稼いでいます。たとえばウェブサイトのシグネチャからOSやツールのシェアを調べているw3tech の場合、UbuntuはLinuxサーバーの中で一番多い3割強のシェアを占めていますし、Apacheに限定した調査を行っているsecurity space の結果でも3割弱とCentOSと拮抗しています[2] 。他にもOpenStackが毎年行っているユーザーへのアンケートの調査結果(PDF) によると、1,000人以上のユーザーがいるクラウドシステムの実に6割近くがOpenStackのインストールベースとしてUbuntuを採用しているようです(P45のFigure
5.9やFigure 5.9.1参照) 。
[2] この手の調査で無視できないのはOSを判別できなかった「Unknown」です。w3techの場合、調査対象のうち3割強がWindowsで、3割弱が「Unknown」なので、実質的にUbuntuである可能性が高いサーバーは全体の1割程度ということになります。ちなみにUnknownにWindowsは含まれないようなので、Unknownの分布が既知のものと同じであれば、Ubuntuは全体の2割程度ということになります。
Ubuntuサーバーを使うメリットとして考えられるものをあげてみましょう。
定期的なリリース周期
豊富なパッケージ資産とPPA
クラウドとコンテナへの対応
Canonicalによる有償サポート
Ubuntuを採用する最大のメリットは、定期的なリリース周期 でしょう。第463回 でも述べたように、Ubuntuは6ヶ月ごとの通常リリースと2年に1回の長期サポート版のリリースを10年近く継続しています。サーバー用途であれば、通常リリースを使う利点ははあまりないため、基本的に長期サポート版に利用になると思います。最初にUbuntuをインストールしたあとのリプレース・アップグレードは、最大で2年後の次の長期サポート版のリリース以降からインストールしたリリースのサポートが切れるであろう最大で5年後までの間のいずれかで対応すればいいことになります。またこれまでの実績からリリース周期が崩れる可能性は低く、必ず2年ごとの4月には新しいリリースが出るだろうと見込めます。よって事前のテストを含めたリプレース・アップグレードの計画も立てやすいはずです[3] 。
[3] サーバーマシンのリースが5年の場合、サポート期間が5年は心もとないかもしれません。その場合は有償ではあるもののUbuntu Weekly Topicsの2017年3月17日号 に言及がある「延長サポート」が使えるようになるかもしれません。ただし今のところはUbuntu 12.04 LTSのみが対象であること、今後の継続性があるかどうかはまだまだ不安であることから、あくまで「そういうものもある」程度の位置づけでしかないでしょう。真面目に5年以上のサポートを考えるなら、RedHat
Enteprise LinuxやSUSE Linux Enterpriseのようなよりサポート期間の長いディストリビューションを選ぶべきです。
もうひとつのメリットはパッケージ資産 です。正確にはDebian由来の強力なパッケージ管理システムが使えることです。Debianではパッケージの品質を高めるためさまざまな仕組みを導入しています。そのおかげでUbuntuでも、パッケージ管理由来の問題はそこまで起きないようになっています。また、パッケージの作成方法についてもドキュメントも充実しているため、PPAを利用した ソフトウェアの公開も盛んです。公式のパッケージリポジトリに比べると品質にばらつきはあるものの、パッケージ管理システムを利用したソフトウェアのインストール・更新は何にもまさる魅力になることでしょう。
クラウドとコンテナ はいずれもかなり早い段階からUbuntuも関わってきた技術です。たとえば9.04の時点でAmazon EC2互換のプライベートクラウド環境の構築機能としてEucalyptusを導入していましたし、2009年の時点でAmazon EC2向けにUbuntuサーバーのAMIなどを公式に配布していました。その後、OpenStackの標準プラットフォームとしてリリース初期から携わり、2011年にはUbuntuにも正式に取り込まれています。コンテナ技術についても、Dockerが登場するよりも数年前の2010年の時点でアプリケーションのサンドボックス環境としてLXCを利用する仕組みを作っていましたし、その後もLXDという形で現在もメインのプロダクトとして積極的に開発を続けています。仮想環境や仮想イメージの提供は、インストール・利用するだけであればサブスクリプションの必要がないLinuxディストリビューションならではの強みですね。
Canonicalの有償サポート は、個人でサーバーを構築する場合はあまりお世話になることはないかもしれません。ただ企業で使う場合は必要になってくることもあるでしょう。CanonicalはUbuntu Advantage という名前でデスクトップやサーバーの有償サポートを提供しています。またUbuntu Certified には、Ubuntuで動作することが確認済みのハードウェアがリストアップされていますので、サーバーを選択する際の参考にしてください。
このようにUbuntuは、実サーバーにおいても十分にメリットのある選択肢となっています。よって特別な事情がない限りはUbuntuを使うことを咎められることはないはずです。ただ万が一「Ubuntu……? ハンッ そこは(適当な別の何か)だろう」と特に理由もなく言われた場合、高い確率で説得が不可能な負け確定イベントですので、下手に抗わずおとなしく従っておくことをおすすめします。
Ubuntuサーバーのインストールイメージ
UbuntuデスクトップもUbuntuサーバーも、インストーラーと最初にインストールされるパッケージのセットが異なるだけで、パッケージそのものに差異はありません。UbuntuデスクトップをインストールしたあとにHTTPサーバーをインストールしたり、Ubuntuサーバーをインストールしたあとにデスクトップ環境を構築することが可能です。ただ、サーバーはできるだけ余計なソフトウェアをインストールしないほうが賢明です。よって新規にUbuntuサーバーを構築するのであれば、素直にUbuntuサーバーのイメージを使いましょう。
Ubuntuの長期サポート版はおおよそ6ヶ月ごとに「ポイントリリース」という形で、アップデート適用済みのインストールイメージをリリースしています。たとえばUbuntu 16.04 LTSの場合は「16.04.1」「 16.04.2」と言った具合に末尾の数字が増えていくのです。このポイントリリースイメージには、より新しいバージョンのカーネルイメージも含まれています。16.04以降であればカーネルのバージョンはインストール時に選択可能なので、インストール時の最新のポイントリリースイメージをダウンロードするのが良いでしょう。本記事公開時点の最新ポイントリリースはUbuntu 16.04.2 LTS です。リンク先の「64-bit PC (AMD64) server install image」を選んでおけば、最新版のサーバーイメージをダウンロードできます。
あとはこのISOイメージをDVDのような光学メディア か、USBスティック に書き込みます。Ubuntu上でダウンロードしたのであれば、次のようにUSBスティックに書き込む方法がいちばん簡単です。「 /dev/sdb/
」の部分は、USBスティックのデバイスファイル名に置き換えてください。
$ sudo dd if=ubuntu-16.04.2-server-amd64.iso of=/dev/sdb \
status=progress bs=1M
あとは光学メディアもしくはUSBスティックから起動するだけです。仮想マシンにインストールするのであれば、起動デバイスとしてダウンロードしたISOイメージファイルを指定しましょう。
光学メディアもしくはUSBスティックから起動するためには、インストールするマシン側のUEFI/BIOSの設定を変更する必要があるかもしれません。UEFIモードとBIOSモードどちらでもインストール可能です。またセキュアブートにも対応しています。ただしサードパーティのドライバーをインストールする予定であれば、セキュアブートはオフにしておいてください 。サーバーマシンではあるものの、インストール時はディスプレイとキーボード・マウスをつなげておきましょう。
Ubuntuサーバーのインストール手順
Ubuntuサーバーも、デスクトップと同様にインストーラーの質問に応えるだけで簡単にインストールできます。しかしながらデスクトップと異なり基本的にマウスでの操作ができないCUIであり、回答が必要な項目が多めになります。とはいえ次の操作方法だけおぼえておけば、操作に手間取ることはないはずです。
項目間の移動:Tabキーまたはカーソルキー
項目の選択・選択解除:Spaceキー
「はい」「 いいえ」などの確定:Enterキー
ちなみにあらかじめ回答内容をファイルに用意しておいて、インストールそのものを自動化することも可能です。ただ事前準備などが必要になりますので、複数台のマシンにUbuntuサーバーをインストールするケースで初めて意味が出てくるでしょう。詳しい手順はたとえば第154回 などを参照してください。
図1 起動直後の画面
起動直後の画面は、UEFIモードかBIOSモードかで見た目が異なります。上記はUEFIモードの場合です。BIOSモードの場合は、紫を基調としたもう少しグラフィカルな見た目になります。見た目が変わるとはいえ、選択できる項目は同じです。マシンのディスクが空の状態であれば、次のような項目が表示されます。
Install Ubuntu Server
OEM install (for manufactures)
Install MAAS Region Controller
Install MAAS Rack Controller
Check disc for defects
Rescure broken system
Boot and Install with the HWE kernel
迷ったらいちばん上の「Install Ubuntu Server」を選んでおきましょう。
「OEM install」は基本的なシステムをインストールした上で、ユーザーアカウントの設定などは初回起動時に後回しするモードです。MAASとついている項目は複数の物理マシンをクラウドインスタンス的に管理できるMAAS を構築するための項目です。よって初めてUbuntuサーバーを構築する人にはあまり関係ありません。
「Check disc for defects」はインストールメディアのチェックに、「 Rescure broken system」はレスキューシステムを起動しマシンの復旧のために使用します。「 Boot and Install with the HWE kernel」はLTSカーネルではなくHWEカーネルで起動し、インストールするオプションです。HWEカーネルについては、最近サポートのポリシーが変わったため、詳しいことはUbuntu Weekly Topicsの2016年12月2日号 を参照してください。よっぽど新しいマシンやディスクでない限りは、サーバー用途でHWEカーネルにお世話になることはないはずです。
ここからはスクリーンショットベースで選択肢について説明します。
言語や地域の選択
図2 言語の選択
言語の選択では、インストーラーやインストール後のシステムの表示言語を指定します。正確にはあとの「地域」の設定と組み合わせることでシステムのロケールやタイムゾーン、リポジトリミラーの初期設定値が変わります。ロケールの設定は、コマンドのエラーメッセージなどの言語、日付や時刻、通貨などの表示方法に影響します。
デスクトップと異なりサーバーにおいては、日本人がメインユーザーであっても英語ロケールで統一してしまう環境も多いようです。たとえばシステムやサービスのログメッセージは、日本語ロケールだと日本語で記録されることがあります。そこを日本語ではなく英語で記録しておいたほうが検索性などで便利なことがあるためです。よってここでは「英語」を選択することも考慮に入れてください。
本記事では日本語化されたインストーラーのスクリーンショットを撮影する都合上、以降は日本語設定で話を進めていきます。
図3 インストーラーの一部は英語のままであることの通知
図4 地域の設定
前に設定した「言語(Launguage) 」とここで設定する「地域(Country) 」によって、インストール後のシステムのロケールやタイムゾーン、リポジトリミラーの設定が決まります。
最初に選択されている項目は「言語の選択」に依存します。英語を選択していたら「United States」が、日本語を選択していたら「日本」が選択されているはずです。そのままEnterキーを押すと、その地域ごとに適切なロケールやタイムゾーンが自動的に選択されます。
地域はタイムゾーンやリポジトリのミラーサーバーの選択にも影響します。ロケールは英語にしたいものの、タイムゾーンやミラーは日本がいい場合は、「 言語の選択」で「英語」を選択した上で「地域」では「other」「 Asia」「 Japan」「 en_US.UTF-8
」を順番に選択してください。最初の言語の選択で「日本語」を選んだ場合も、「 戻る」「 その他」を選択することで別の地域に変更できます。ただし言語の選択で日本語を選んでいる場合のロケールは地域に依らず常に「ja_JP.UTF-8
」が選択されますので注意してください。
ちなみに地域の設定を米国に設定していると、パッケージリポジトリのサーバーとして「archive.ubuntu.com」を選択します。日本に存在するサーバーだと日本のミラーサーバーのほうが高速ですので、インストール後に「/etc/apt/sources.list」の「archive.ubuntu.com」を「jp.archive.ubuntu.com」に置き換えた上で、「 sudo apt update
」を実行することで変更できます。地域を日本にしていると自動的に日本のミラーサーバーを選択します。
図5 キーボード配列:日本語配列や英語配列なら「いいえ」が無難
キーボード配列を自動的に検出する場合、インストーラーがいくつかのキーの入力を問い合わせてきます。その入力されたキーの組み合わせで配列を確定する仕組みです。おもに欧文圏の微妙に異なるキー配列向けの機能ですので、日本語配列や英語配列なら素直に「いいえ」を選んでリストから配列を指定したほうが良いでしょう。
図6 配列の選択:物理的につながっているキーボードの配列を選択
図7 特別なキーボードでなければ「Japanese」で
キーボードのレイアウトで設定する配列は、あくまでサーバーマシンにUSBやPS/2でつながっているキーボードの配列を指定します。たとえばネットワークがつながらなくなって、ディスプレイとそのキーボードを使ってコンソールから操作するときに意味が出てきます。SSH越しのリモート操作の場合は、ここで設定したキー配列と関係ありません。
インストーラーの準備
図8 インストーラーの準備のためにしばらく時間がかかる
図9 DHCP設定:つながっていない場合は「キャンセル」
ネットワークやユーザーアカウントの設定を行います。環境によっては質問項目が増える場合もあるでしょう。たとえばネットワークカードが2つある場合は、どちらをメインに使うか選択する必要があります。
図10 ホスト名の設定
ユーザーアカウントの設定
図11 ユーザーアカウントのフルネームの設定
Ubuntuのインストーラーは「root」アカウントを無効化した状態でインストールします。正確には「rootをあらゆるパスワードが無効であるアカウント」として設定します。管理者権限が必要な場合はsudoグループに所属するユーザーが、sudoコマンドを使って管理者権限を取得して実行します。インストール時に作ったアカウントは、自動的にsudoグループに所属します。複数のアカウントを作成したい場合は、インストールを終えてから、ここで作ったアカウントでログインしたうえで、作成することになります。
図12 ユーザーアカウントのアカウント名の設定
図13 パスワードの設定
パスワードとして使える文字の種類は制限されています。またこの制限はソフトウェアやバージョンによって異なる場合もあります。どのようなパスワードを使うべきかについてはさまざまな意見がありますが、最低でもアルファベットの大文字小文字・半角数字・句読点をランダムに組み合わせた8文字程度の文字列にすべきです。ランダムな文字列であることを保証するために「パスワードジェネレーター」を使うのも良い考えでしょう。
CAPS LOCKキーが入っているために実は大文字小文字が逆転していたということもありますので、不安であれば周囲に人がいないことを確認した上で、「 Show Password in Clear」で表示させるのもひとつの手です。
図14 パスワードの設定の確認
図15 eCryptfsによるホームディレクトリの暗号化:わからなければ「いいえ」で
図16 ntp.ubuntu.comを使った時刻同期:外部に接続できない環境なら「キャンセル」でスキップ
プロキシ環境によってはNTPによる時刻同期が終わらない可能性があります。何度もリトライしているようであれば、「 キャンセル」を押してスキップしてしまいましょう。時刻同期についてはインストール後にも設定可能です。
パーティションの設定
図17 パーティショニング設定
パーティショニングはストレージのレイアウトを設定します。サーバーであればデュアルブートなどはまず行わないと思いますので、「 ガイド - ディスク全体を使いLVMをセットアップする」を選びましょう。ストレージをLVMとして設定した上で、ext4のボリュームグループを作成します。また、UEFIの場合はEFIシステムパーティション(ESP)なども自動的に作ってくれます。
「ガイド」を使わない場合は、ファイルシステムやレイアウトを自由に変更可能です。またガイドで設定・反映した上で「戻る」を選択し、ファイルシステムだけあとから変更するといった手法も使えます。ただしパーティショニングはインストールにおいてもっとも「つまづきやすい」部分ですので、よくわからないうちはガイドを使っておくことをおすすめします。
ここから先の項目は後戻りできない変更を行うため、基本的に「いいえ」が選択状態で表示されます。本当に問題ない場合のみ「はい」を選んでください。
図18 対象ディスクの選択
図19 パーティションテーブルの変更:問題なければ「はい」を選択
図20 ストレージのサイズの設定:わからなければ設定済みの最大値をそのまま使用する
図21 EFIシステムパーティション(ESP)を作るかどうか:UEFIモードで起動するなら「はい」を選択
図22 パーティショニングの最終確認:問題なければ「はい」を選択
パッケージ管理の設定
図23 パッケージインストール時のプロキシ設定:設定不要なら空のままで
図24 パッケージリストの更新
図25 自動アップデートを有効にするかどうか:Landscapeは有償サービスなので注意する
「自動アップデート(Unattended Upgrade) 」は、ユーザーによる操作を待たずにアップデートを適用するプログラムです。「 セキュリティアップデートを自動的にインストールする」を選択すると、システムが動いている途中で定期的にリポジトリを更新し、セキュリティアップデートを検知したら(security.ubuntu.comの「リリース名-security」に新しいバージョンのパッケージが存在すれば) 、自動的にパッケージをインストールします。
セキュリティアップデートによっては反映するために再起動が必要になります。自動アップデートの設定によっては、再起動が必要になったら自動的に再起動することも可能です。ただインストーラーによる設定ではそこまでは行いません。
Unattended Upgradeには、シャットダウン時に更新するなどさまざまなオプションがありますので、より詳細に設定したい場合はインストール後に有効にすると良いでしょう。詳しいことは第173回 を参照してください。
図26 一緒にインストールするソフトウェアの選択
ここではインストーラーがインストールするソフトウェアセット(タスク)を選択します。あらかじめサーバーの用途が決まっているのであれば、選択しておくのもひとつの手です。もちろん、インストールが完了したあとにタスクを選択することも可能ですので、ここでは「standard system utilities」以外を選択しなくてもいいでしょう。そうすることでシステムにインストールされるソフトウェアを最低限の状態に保てます。ただしリモートから管理したいのであれば、「 OpenSSH server」だけでも選択しておくことをおすすめします。
図27 パッケージのダウンロードとインストール:時間がかかるので放置する
インストールの完了
図28 インストールの完了:「続ける」を選択すると自動的に再起動する
図29 再起動が完了しログインできるようになった状態
「ロケール」を日本語に設定していたため、上記の画面では日本語部分が化けています。サーバー版のコンソール(マシンに直接つながったディスプレイ)で、日本語を表示するのは若干手間がかかりますし、コンソールを使うことはあまりないため、そういうものだと思って諦めてしまうのがいいでしょう。もちろんローカルのデスクトップ環境からSSH経由でサーバーに接続した場合は、ローカルの日本語対応がしっかりなされていれば化けることはありません。ちなみにサーバー用途であれば最初にも述べたようにロケール(言語の設定)を英語にしてしまう手も一般的です。
これでUbuntuサーバーのインストールは完了しました。デスクトップに比べると選択項目は多いものの、基本的に初期設定値をそのまま選んでいけば良いはずなので、難易度はそこまで高くありません。もちろんデスクトップ版をインストールしてから、サーバーのセットアップを行うという手もあるにはあるのですが、せっかくUbuntuサーバーを構築するのであれば必要最低限なものだけインストールされるサーバーイメージを使ったインストールをおすすめします。
もしインストール中に何か問題が起きるようなら、何度かESCキーを押すと表示される「Ubuntuインストーラーメインメニュー(Ubuntu installer main menu) 」から「シェルの実行(Execute a shell) 」を選択し、次のコマンドでインストールログを確認すると良いでしょう。
~ # more /var/log/syslog
このログファイルにはインストーラーの操作ログが一通り残っているので、エラー原因の追求に役に立つはずです。ちなみにインストール完了後、上記のファイルは「/var/log/installer/syslog
」に保存されますので、あとからでも閲覧できます。インストール時の選択肢を再確認する場合に利用しましょう。