Overview
目的
Ubuntu 22.04 をベースとしたサーバー構築・設定の実用的手法を体系化し、単なるコマンド集ではなく、自動化と再現性を前提にしたシステム設計を重視します。
Ubuntu を選定した背景
長年使用してきた CentOS は、2021 年末をもって CentOS 8 のサポートが終了し、以後は CentOS Stream へ移行しました。
しかし、CentOS Stream では「安定版の公式コンテナイメージ」が提供されないため、運用環境としての信頼性を保つのが難しくなりました。このため、本書では Ubuntu への全面移行を採用しています。
Ubuntu は以下の理由で有利です。
- 豊富な公式イメージと APT リポジトリ
- コンテナ(Docker, Kubernetes)との親和性
- 小さな ISO サイズによる軽量性
- 更新の継続性と LTS(長期サポート)の安定性
Rocky Linux や AlmaLinux といった代替もありますが、CentOS と同系統である以上、根本的な課題(RHEL 依存)は変わりません。Ubuntu はより独立した発展路線を取っている点で、より将来性があると考えています。
CentOS と Ubuntu の違いはこちらにまとめています。
設計思想と方針
このドキュメントは、一定の汎用性を意識はしますが、基本的には私が設計している構成を前提としています。
- Ansible 化しやすい手順を意識
- デュアルスタック(IPv4/IPv6)構成
- 制限されたインターネットアクセス(プロキシ環境)
対象読者
- Ubuntu を用いたサーバー構築・運用を体系的に学びたい技術者
- CentOS/RHEL 系からの移行を検討しているエンジニア
- Docker/Kubernetes などクラウドネイティブ基盤の構築者
- Ansible など構成管理の自動化に関心がある人
インストール
Ubuntu の手動インストールは、他の Linux ディストリビューションと同じく特に難しいことはありません。インストーラーの操作もウィザードそのままですので本稿では手動インストールの説明を省略しています。
- インストール用 USB メディア: Ubuntu インストール用の USB メディアを作成します。
- PXE と Autoinstall を使用したインストールの自動化: PXE と Autoinstall を使用した自動インストール環境の構築手順です。
基本設定
基本設定の各手順は、全ホストで共通で実施することを想定しています。
- Netplan ネットワーク設定
- hosts 設定
- ホスト名設定
- タイムゾーン設定
- SSH 公開鍵設定
- sudo パスワード確認の抑止
- APT コマンドの TUI を抑止
- apt update, apt upgrage 手動システムアップデート
- SSH サーバー設定
- chrony 時刻同期設定
- timesyncd 時刻同期設定
- NFS クライアント設定
- easy-rsa 自己署名証明書の作成
- update-ca-certificates 自己署名証明書の信頼
- ACL 拡張 ACL によるアクセス制御
- Postfix ローカル MTA 設定
- Cockpit Linux WebUI
- unattended-upgrades 自動システムアップデート
各サービスの構築
Web サーバー
- Apache Web サーバー構築 基本的な Web サーバー
- Apache Web サーバー構築 TLS 有効化
- Apache Web サーバー構築 HTTP/2 有効化
- Apache Web サーバー構築 PHP 有効化
- Apache Web サーバー構築 WAF 有効化
- Apache Web サーバー構築 Userdir 有効化
DNS サーバー
- BIND 内部向け DNS サーバー構築
- BIND 外部向け DNS サーバー構築
- BIND View を使用した DNS サーバーの集約
LDAP サーバー
- 389 Directory Server LDAP サーバー構築 #1 インスタンスの作成
- 389 Directory Server LDAP サーバー構築 #2 TLS 有効化
- 389 Directory Server LDAP サーバー構築 #3 ベースエントリーの登録
- 389 Directory Server LDAP サーバー構築 #4 アクセス制御
- 389 Directory Server LDAP サーバー構築 #5 グループとユーザーの登録
ネットワークストレージ
メールサーバー
データベースサーバー
ロードバランサー
プロキシサーバー
仮想化
KVM
KVM 環境構築
KVM 仮想マシンのデプロイ
KVM PCI パススルー
コンテナ
開発環境
その他
Ubuntu 22.04 設定マニュアル


