この記事のまとめ
ISOイメージの入手
ホストOSのCPUに依存する。以下の2種類のどちらかが正解
私の場合は後者だった
VirtualBoxで箱を作成
パラメータ | 値 |
---|---|
名前 | お好きな名前をどうぞ |
Folder | お好きな場所をどうぞ |
ISO Image | ダウンロードしたiso |
Skip Unattended Installation | Enable |
メインメモリ | 2048 MB |
Processors | 2 |
Enable EFI | Disable |
Virtual Hard disk | Create Virtual Had Disk Now |
Disk Size | お好きなサイズでどうぞ |
Pre-allocate Full Size | Disable |
VirtualBoxの箱をカスタマイズ
起動中の画面なので色々グレーアウトされています。停止中であれば修正できます。
カテゴリ | パラメータ | 値 |
---|---|---|
一般/基本 | バージョン | Ubuntu(64-bit) |
ストレージ/コントローラIDE: | Live CD/DVD | Disable |
ネットワーク | 各アダプタ | お好きにどうぞ |
ネットワークについて
だいたいは以下の設定で良いと思います。
- アダプター1
- NAT
- アダプター2
- ホストオンリーネットワーク
Ubuntuのインストール
ほとんどServer Worldさんを確認すると良い
言語選択
インストーラで使用する言語の選択。English
を選んでEnterキー
キーボードレイアウト
パッケージレイアウト
最小構成でインストールした感じ
-
vi
が無い -
openssh-server
,openssh-client
は入ってる -
ufw
(Ubuntu FireWall)も無い
格好つけずに推奨パッケージ含まれているやつで構築したほうが良いと思う。マジで。
ネットワーク設定
プロキシ設定
企業内で行う場合はここで設定しないと後で後悔すると思う。ご家庭で楽しまれている方は入力せず「Done」。
パッケージリポジトリ取得
放っておけば色々検索されて画像のような表示になる。なったら「Done」。
パーティション設計タイプ選択
お試しなら基本全部/
にぶっこみたいのでカスタマイズする。Custom storage layout
にX
をつけて「Done」。
パーティション設計
ここでは以下の通りにしていますが、初めてなら/
に全部つっこんでいいと思います。
作成順 | サイズ | Format | Mount |
---|---|---|---|
1 | 20G | ext4 | /data ※ |
2 | 残り全部 | ext4 | / |
※一度「Other」を選んでから手入力で指定
-
free space
を選んでEnter - 表示されるメニューで
Add GPT Partition
- 上記の表の作成順「1」のパラメータを指定
- 再度
free space
を選んでEnter - 表示されるメニューで
Add GPT Partition
- 上記の表の作成順「2」のパラメータを指定
- 全部入力したら「Done」
データ全部消えるけどいいですか?が出るので「Continue」
管理者ユーザの作成
admin
とかroot
ではない、管理者アカウントのパラメータを入力。大事なアカウントなので使いやすい名前/パスワードにしておくこと。
Pro版への昇格
skip for now
にX
がついていることを確認して「Continue」
OpenSSH Serverのインストール
追加パッケージ選択
インストール開始
割りとすぐ終わる。オレンジ色の帯がInstall complete!
となれば完了。「Reboot Now」。
メディア取り出してくださいメッセージ
FAILED
とか出てびっくりするかもしれないけど大丈夫。VirtualBoxの枠下、CD/DVDのアイコンが比活性になっていることを確認してEnterキーを押す
本当のサーバの場合、このタイミングでCD/DVDドライブが開いてメディアが排出されている。
インストール完了
なんかゴチャゴチャっと出てびっくりするかもしれないけど、Enterを押せばログインプロンプトが表示される。
インストール後初期設定
以降は各自己の流儀があると思いますが私なりの汎用設定を記載します。まだUbuntu
は触りたてなので色々増えていくかもしれません。
SSH接続する
コンソールでいじり続けるのはしんどいので手元のTeratermでホストオンリーアダプターのIFへSSH接続します。
インストール中にopenssh-server
を拒否ったのに入ってくる。なんなのか。
接続後は以下のコマンドでroot
に昇格しておく(インストール作業中のみ)。
udon@node1:/etc/netplan$ sudo -s
ネットワーク設定
root@node1:~# cd /etc/netplan
root@node1:/etc/netplan# mv 00-installer-config.yaml 00-installer-config.yaml.org
root@node1:/etc/netplan# vi 01-netcfg.yaml
network:
ethernets:
enp0s3:
dhcp4: true
dhcp6: false
enp0s8:
dhcp4: false
addresses: [192.168.56.103/24]
dhcp6: false
version: 2
TABは使ってはいけないらしい。スペースでインデントを合わせる。以下のコマンドで反映。
root@node1:/etc/netplan# netplan apply
以下のコマンドでIPv6の息を止めておく
root@node1:/etc/netplan# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
root@node1:/etc/netplan# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
まだsysctl
が残ってるんだなぁ~と嬉しくなっちゃう。
パッケージ最新化
一度ダウンロードしてから適用する。ダウンロードしたパッケージを退避しておくことで同じサーバを作りやすくする(毎回最新パッケージでインストールすると環境差分が出るので検証/商用で構成が違う!ということにもなり得る。
root@node1:~# apt update
Hit:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 http://jp.archive.ubuntu.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@node1:~# apt -d upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
cloud-init
The following packages will be upgraded:
libldap-2.5-0 libldap-common
2 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 199 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://jp.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libldap-2.5-0 amd64 2.5.16+dfsg-0ubuntu0.22.04.1 [183 kB]
Get:2 http://jp.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libldap-common all 2.5.16+dfsg-0ubuntu0.22.04.1 [15.8 kB]
Fetched 199 kB in 2s (120 kB/s)
Download complete and in download only mode
ダウンロードしたファイルを退避しておいてローカルからインストールする。
root@node1:~# mkdir -p /home/udon/pkgs
root@node1:~# cp -p /var/cache/apt/archives/*deb /home/udon/pkgs/.
root@node1:~# cd !$
cd /home/udon/pkgs/.
root@node1:/home/udon/pkgs# apt -y install ./*deb
Ubuntu Firewall(UFW)設定
状態確認 + 有効化
(serviceレベルでの確認)
root@node1:~# systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2023-08-12 10:54:58 UTC; 23min ago
Docs: man:ufw(8)
Main PID: 573 (code=exited, status=0/SUCCESS)
CPU: 2ms
Aug 12 10:54:57 node1 systemd[1]: Starting Uncomplicated firewall...
Aug 12 10:54:58 node1 systemd[1]: Finished Uncomplicated firewall.
(ufwとしての確認: inactive = 無効)
root@node1:~# ufw status
Status: inactive
(ufwを有効化)
root@node1:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
(ufwとしての確認: active = 有効)
root@node1:~# ufw status
Status: active
SSHを許可
root@node1:~# ufw allow ssh
Rule added
Rule added (v6)
その他受信を全拒否
root@node1:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
root@node1:~#
設定反映
root@node1:~# ufw reload
Firewall reloaded
root@node1:~#
root@node1:~#
root@node1:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
ここで必要最低限のインストール作業は缶完了