Ubuntu Serverのセットアップ

Ubuntuを最小限のサーバとしてセットアップする場合のメモ。

もくじ:

インストール自体は特に落とし穴はないと思いますが、
デフォルトではsshdが選択されない場合があるので、必要に応じてOpenSSH-Serverを追加します。

ネットワーク設定

インストール時に指定しなかった場合(または最近のバージョン)、NIC設定はinterfacesファイルを編集して設定します。

デフォルトではDHCPで自動取得。固定したければeth0 (または環境依存で他の名前)の記述を変更します。

Ubuntu 17で固定IPアドレスを設定する場合(netplan)

Ubuntu Server 17ではこのinterfacesファイルを書き換えるやり方では固定できなくなったようです。

インストール直後のinterfacesファイルはこんな感じ。eth0の記述がなくなっていますね。

代わりに/etc/netplan/にあるYAMLファイルから設定します。
変更前のDHCPが設定されているもの↓

DHCPを無効化して、固定アドレスを入力します。

初期状態のYAMLファイル名はセットアップ時に自動的に生成されるので、環境によって異なります。
システムの領域なので、正式には自動生成された既存のYAMLファイルを変更するよりも、新たにファイル(上の例では99_config.yaml)を作成して設定を書くほうが推奨されています。
netplanの動作としては、/etc/netplan/*.yamlに該当するファイルを全て読んでおり、英数でソートした順に上書きされていくようですので、自動生成のファイルは残しつつ、順序的に後に来る新規のファイル名にすれば良いということですね。

netplanコマンドを使って設定を適用します。--debugスイッチをつけると設定ファイルに入力ミスがあった場合にエラーとして表示されます。
問題なく成功すれば、即座にアドレスが変更されます。前のアドレスでSSHしている場合は接続しなおして下さい。

パッケージ設定

インストール時に自動更新を選択しなかった場合、念のため手動でパッケージを更新しておきます。

一通り必要なツールは入っているので、特に追加でインストールするようなものはないかも。

Pythonインストール

UbuntuではPython3がデフォルトになっているので、それでいい場合は特に何もしなくても使えますが、パスはpython3 (/usr/bin/python3)に通っているようです。
Python2を使用する際は、python-minimalを追加でインストールするとpython (/usr/bin/python)にパスが通ります。

pipのインストール

pip (python3-pip)をインストールする場合もaptでいけます。

ただし、注意が必要なのは、レポジトリの設定次第ではapt経由でインストールできない場合があることです。そんなときは以下の手順を試してuniverseレポジトリを追加してみるといいかもしれません。

問題なくインストールできていればpip3コマンドが使えるようになります。

rootによるsshログインの有効化

やらなくても特に困らないものの、ごく稀に必要になるrootログイン。
Ubuntuではrootアカウントが無効化されているので、デフォルトではsshログインができません。

一般ユーザからrootアカウントにスイッチするだけならばsudo su -を使います。
その場合はrootアカウントのパスワード作成は不要ですが、rootアカウントでSSHログインするには、以下の設定が必要です。

時刻同期

時刻の同期が必要な環境ではNTPクライアントを設定します。
Ubuntuではtimesyncdを採用しているようですね。

timesyncdはsystemdの一部なので、設定は/etc/systemd/timesyncd.confにあります。環境に合わせて参照したいNTPサーバを書いておきます。

おわり。