Overview
Ubuntu をベースとした実用的な設定内容や手法についての”ゆるい”まとめです。
モチベーション
長らく CentOS を使用してきましたが、2021 年 12 月を最後に CentOS8 のサポートが終了して以降は全て CentOS Stream となります。仮想マシンだけなら CentOS Stream でも良いのですが、CentOS Stream では公式のコンテナイメージが提供されない為、CentOS から Ubuntu へ移行しました。ISO が小さいのも良いと思います。
最近、CentOS の代替えとして Rocky Linux が良く紹介されていますが、かなりネーミングに抵抗があったのも Ubuntu に切り替えた理由のひとつです。
CentOS と Ubuntu の違い
こちらを参照して下さい。
このサイトのポイント
このサイトのポイントをいくつか紹介します。
エディタの不使用
設定ファイルの編集が必要な手順は、最終的に Ansible や Dockerfile で扱いやすくするために vi 等のエディタは使用していません。ありがちなコメントアウト、アンコメント等の作業は Linux ビギナーが vi の使い方に慣れる意味では良いかもしれませんが、だるい作業でもあります。
- コメントを除く最小のデフォルト値を出力。
- それに対して必要な設定を追記・編集したテキストを用意し、ヒアドキュメントでコマンドから直接書き込む。
APT コマンド
CentOS の Yum/DNF と同じように、Ubuntu では APT を使用しますが、APT はパッケージのインストール時に TUI が表示され、インストールタイプ等の選択が必要になる場合があります。CentOS に慣れているとこの挙動はかなりうっとおしいのですが、こちらの方法でそれを抑止することができます。
デュアルスタック
可能な範囲でデュアルスタック (IPv4/IPv6) で稼働できるようにしています。IPv6 に抵抗がある人はその部分は読み飛ばして下さい。
仮想化
仮想マシンは KVM 上で稼働させ、必要なサービスを実行します。
コンテナ
コンテナは KVM 上の仮想マシンで Kubernetes を稼働させ、Kubernetes 上でコンテナを実行します。部分的に MicroK8s も使用しています。
インストール
Ubuntu の手動インストールは、他の Linux ディストリビューションと同じく特に難しいことはありません。インストーラーの操作もウィザードそのままですので本稿では手動インストールの説明を省略しています。
- インストール用 USB メディア: Ubuntu インストール用の USB メディアを作成します。
- PXE と Autoinstall を使用したインストールの自動化: PXE と Autoinstall を使用した自動インストール環境の構築手順です。
基本設定
基本設定の各手順は、全ホストで共通で実施することを想定しています。
- Netplan ネットワーク設定
- sudo パスワード確認の抑止
- hosts 設定
- ホスト名設定
- タイムゾーン設定
- APT コマンドの TUI を抑止
- apt update, apt upgrage 手動システムアップデート
- SSH 公開鍵設定
- 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 グループとユーザーの登録
ネットワークストレージ
メールサーバー
データベースサーバー
ロードバランサー
プロキシサーバー構築 Squid
仮想化
KVM
KVM 環境構築
KVM 仮想マシンのデプロイ
KVM PCI パススルー