Windows10にリプレイスされるとWindows7なPCが余りますよね
そのまま廃棄してしまうにはもったいないスペックのPCにUbuntuServer20.04LTSをインストールしてみる
作業メモ
まずインストールイメージをダウンロードする
Bootableなisoイメージがダウンロードできるので、DVDに焼くか、Etcherのようなツールを使用してBootableなUSBメモリを作成する
インストールメディアから起動する
Install Ubuntu Server
を言語はとりあえず
English
で今回は
Continue without updating
を日本語キーボードを接続しているので
Japanese
LANは認識されていました
Proxyは設定不要な環境です
ミラーサイトはデフォルトのまま
LVM(Logical Volume Manager)は使いません
ハードディスクの割当てはおまかせでrootパーティションのみ
もうあとには戻れない
ユーザーを登録
社内LANのみからアクセスされる予定なので適当に
SSHサーバーはインストール必須
やりたいことがあるので
docker
だけインストールしておくインストーラーにおまかせして待つ
先に進めたいので
Cancel update and reboot
UbuntuServerが起動した
かんたんな初期設定が済むまではコンソールからログインする
UbuntuServerが起動したら
avahi-daemonを使えるようにする
ssh [email protected]
で接続できるようになるので便利!!
$ sudo apt install -y avahi-daemon
ネットワークの設定をする
まずはIPアドレスの確認
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:83:e2:a3 brd ff:ff:ff:ff:ff:ff
inet 172.16.99.204/16 brd 172.16.99.255 scope global dynamic ens33
valid_lft 14173sec preferred_lft 14173sec
inet6 fe80::20c:29ff:fe83:e2a3/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:e8:0b:fe:9d brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
IPv6を無効化
当面のところ社内LANではIPv6は無効化してある
カーネルのIPv6モジュールを無効化することで対応した
$ sudo nano /etc/default/grub
#GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
#GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
$ sudo update-grub
IPアドレスを固定する
avahiで名前解決できない環境に対応するためにIPアドレスも固定しておく
$ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/99_config.yaml
$ sudo nano /etc/netplan/99_config.yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
dhcp6: false
addresses:
- 172.16.99.254/16
gateway4: 172.16.99.1
nameservers:
addresses: [8.8.8.8]
$ sudo netplan apply
最低限のファイアウォールの設定をしておく
まずsshのアクセスだけを受け付けるようにする
インターネットには晒すつもりはないのでsshのポート番号はデフォルトのままにしておく
もしインターネットに晒す場合は適宜ポート番号を変更するか、ban4ipなどを導入する
$ sudo ufw status
[sudo] password for administrator:
Status: inactive
$ sudo ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
$ sudo ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
$ sudo ufw allow ssh
Rules updated
Rules updated (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
※Fromは社内LANのネットワークセグメントからに限定しておくのがベター
タイムゾーンを設定する
$ sudo timedatectl set-timezone Asia/Tokyo
ロケールを日本語に設定する
日本語ロケールがインストールされているか確認する
$ localectl list-locales
C.UTF-8
en_US.UTF-8
日本語ロケールをインストールする
$ sudo apt -y install language-pack-ja-base language-pack-ja
$ localectl list-locales
C.UTF-8
en_US.UTF-8
ja_JP.UTF-8
現在のロケールを確認して日本語に設定する
$ localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
$ sudo localectl set-locale LANG=ja_JP.UTF-8
$ localectl
System Locale: LANG=ja_JP.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
コンソール画面で文字化けした場合は
$ LANG=en_US
.bashrc
に設定を書いておけと設定が永続化される
$ echo export LANG=en_US >> .bashrc
$ source ~/.bashrc
ささっと簡単にWebサーバーを構築してみる
いろいろ設定をし忘れたりするので、ポカヨケのためにもできるだけDockerのコンテナを使うようにする
- まずhttpアクセスを受け入れるようにする
アクセスを受け入れるポートは8080にする
$ sudo ufw allow 8080/tcp
- DockerOfficialなhttpdコンテナをポート8080で動かしてみる
$ sudo docker run -d -p 8080:80 --name httpd httpd
23eb26b4cec5b6b4257d2d36a259eb84cacb39419f358d122cd4f7868068ac32
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23eb26b4cec5 httpd "httpd-foreground" 16 seconds ago Up 15 seconds 0.0.0.0:8080->80/tcp httpd
http://ubuntuserver.local:8080/
にアクセスできることを確認しておく
- httpdコンテナを止めてみる
$ sudo docker stop httpd
httpd
httpdコンテナを止めるとhttp://ubuntuserver.local:8080/
にアクセスできなくなることも確認しておくとよい
- 自分のコンテンツを公開したい
$ mkdir ~/httpd_content
# ※~/httpd_contentになにかコンテンツをコピーする
# ※さっきのコンテナは削除する
$ sudo docker rm httpd
$ sudo docker run -d -p 8080:80 -v "~/httpd_content/:/usr/local/apache2/htdocs/" --name httpd httpd
http://ubuntuserver.local:8080/
にアクセスするとコピーしておいたコンテンツが表示されることを確認する
このままコンテンツを充実させていってもよし、WordPressのコンテナを動作させてもよし
再起動したときにコンテナは動いてほしい
--restart=always
オプションで対応できる
- 自動起動を有効化する
$ sudo docker update --restart=always httpd
httpd
- 自動起動が有効化されているコンテナを確認する
$ sudo docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(sudo docker ps -aq) | grep always
/httpd always
- 自動起動を無効化する
$ sudo docker update --restart=no httpd
httpd