🐈

Ubuntu22.04 LTS Serverをセットアップする

2024/08/26に公開

はじめに

Ubuntu22.04 LTS Serverをインストールしたときのセットアップメモです

パスワードの変更

初期のユーザ名、パスワードは、
username: ubuntu
password: ubuntu
なので、パスワードを変更する

$ passwd ubuntu
  • 任意のパスワードに変更

キーマップの変更

英語キーボードの場合

$ sudo localectl set-keymap us

日本語キーボードの場合

$ sudo localectl set-keymap jp

一般的には、日本語のキーマップ(jp)が選ばれた場合、デフォルトで日本語の109キーボードのレイアウトが適用されます。
具体的に日本語キーボードのレイアウトを指定する場合は以下

  • 日本語106キーボードの場合
$ sudo localectl set-keymap jp106
  • 日本語109キーボードの場合
$ sudo localectl set-keymap jp-OADG109A

キーマップの別の設定方法は以下

$ sudo dpkg-reconfigure keyboard-configuration

一時的にキーマップを変更する場合

sudo loadkeys us
sudo loadkeys jp

パッケージの更新

$ sudo apt -y update
$ sudo apt -y upgrade

apt upgradeは、以前はapt-get upgradeでしたが、今はapt upgradeが使われるようです
この違いについては、以下の動画が勉強になりました
https://youtu.be/IekJyk-lN4c?si=yA8wDt_P25QsOEBo&t=1972

  • apt-get upgradeは、カーネルの更新ができない
    apt-get upgradeでは、新規パッケージのインストールができないため、カーネルメタパッケージのバージョンが上がって、依存関係が変わっても、新規パッケージのインストールが保留されてしまう
  • apt upgradeは、カーネルの更新ができる
    apt upgradeでは、新規パッケージのインストールができるため、カーネルの更新ができる

テキストエディタ(vim)のインストール

$ sudo apt install vim

タイムゾーンの設定

$ sudo timedatectl set-timezone Asia/Tokyo

タイムゾーンの別の設定方法は以下

$ echo TZ="Asia/Tokyo"
$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ロケールの設定

日本語ロケールが対応されているか検索する

$ grep ja /usr/share/i18n/SUPPORTED
  • 検索結果に、ja_JP.UTF-8があることを確認する

ロケールの追加

$ sudo locale-gen ja_JP.UTF-8

ロケールの設定

$ sudo localectl set-locale LANG=ja_JP.UTF-8

日時の設定

$ sudo timedatectl set-time "2024-01-29 19:47:00"
  • NTPが有効になっている場合は、無効にしてから設定する

日時の別の設定方法は以下

$ sudo date 01291947002024
$ sudo hwclock -w
  • hwclockのオプション
    -r or --show : 現在のハードウェアクロックの表示
    -w or --systohc: システムクロックをハードウェアクロックへ設定
    -s or --hctosys: ハードウェアクロックをシステムクロックへ設定

IPアドレスの設定

netplanとsystemd-networkdを使ってIPアドレスを設定する

yamlファイルの追加

$ sudo vim /etc/netplan/99-manual-ip.yaml
  • 接頭辞の番号(XX-)、アルファベットの順に設定が読み込まれる
99-manual-ip.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses:
        - 192.168.0.111/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
              addresses:
                - 192.168.0.1
              search: []
      optional: true

vimでsudo権限を付け忘れてしまった時のファイルの保存方法

vim内で以下のコマンドを実行すると、強制的に上書き保存される

:w !sudo tee % > /dev/null
  • %: 編集中のファイル名

ファイルの権限の変更

netplanを適用しようとすると、権限がオープンすぎると怒られるので、権限を変更する

$ sudo chmod 600 /etc/netplan/99-manual-ip.yaml

systemd-networkdの有効化

初期状態だと、systemd-networkdがinactiveとなっている
サービスがマスクされている場合は、マスク解除する

$ sudo systemctl unmask systemd-networkd.service
$ sudo systemctl start systemd-networkd.service

netplanの適用

$ sudo netplan apply

nmcli(NetworkManager)を使ってIPアドレスを設定する

こちらは調べただけで、実際には試していません
Ubuntu Serverの場合、netplanとsystemd-networdを使用するようです

デバイスにコネクションを追加、IPアドレスを設定

$ sudo nmcli connection add type ethernet con-name eth0 ifname eth0
$ sudo nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.0.111/24 connection.autoconnect yes
$ sudo nmcli connection modify eth0 ipv4.gateway 192.168.0.1
$ sudo nmcli connection modify eth0 ipv4.dns 192.168.0.1

すべてのコネクションの再読み込み

$ sudo nmcli connection reload

コネクションの無効化、有効化

$ sudo nmcli connection down eth0
$ sudo nmcli connection up eth0

デバイスをコネクションから削除

$ sudo nmcli connection delete eth0

sudoの設定

ubuntuユーザで、sudo実行時に、パスワードを要求されないようにする

$ sudo visudo
/etc/sudoers
ubuntu ALL=(ALL:ALL) NOPASSWD:ALL

最初のALLは、ホストに対する許可
()内の左のALLは、どのユーザーになれるか
()内の右のALLは、どのグループになれるか
()外のALLは、どのコマンドを実行できるか

Swap領域の設定

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
$ sudo mkswap /swapfile
$ sudo chmod 600 /swapfile
$ sudo swapon /swapfile
  • 2GBのスワップ領域を追加する

自動マウント設定

$ sudo vim /etc/fstab
/etc/fstab
/swapfile swap swap default 0 0

システムが新しい/etc/fstab設定を登録するように、マウントユニットを再生成する

$ sudo systemctl daemon-reload

以上

Discussion