Open20

LarkBox X 2023 Ubuntu環境構築メモ

でぶねこでぶねこ


起動直後の画面、ちゃんと新規インストールのように見える

でぶねこでぶねこ

Rufusの設定はこんな感じ、スタート後に出るホップアップはYESで
作成できたらLarkBox Xに挿入する

でぶねこでぶねこ

BIOSを保存して抜けると、Ubuntuのインストーラが起動する
あとはインストーラの指示通り作業を行う、OpenSSHのインストールは忘れずに

でぶねこでぶねこ

下記コマンドでdebを入手

wget https://kernel.ubuntu.com/mainline/v6.6.3/amd64/linux-headers-6.6.3-060603-generic_6.6.3-060603.202311281236_amd64.deb
wget https://kernel.ubuntu.com/mainline/v6.6.3/amd64/linux-headers-6.6.3-060603_6.6.3-060603.202311281236_all.deb
wget https://kernel.ubuntu.com/mainline/v6.6.3/amd64/linux-image-unsigned-6.6.3-060603-generic_6.6.3-060603.202311281236_amd64.deb
wget https://kernel.ubuntu.com/mainline/v6.6.3/amd64/linux-modules-6.6.3-060603-generic_6.6.3-060603.202311281236_amd64.deb

続いてインストール(ほかのファイルがない場所で)

sudo dpkg -i *.deb

完了したら再起動

でぶねこでぶねこ

netplanの設定ファイルを作成

sudo vim /etc/netplan/99-network-config.yaml

設定内容はこんな感じ

network:
  version: 2
  wifis:
    wlp0s20f3:
      dhcp4: false
      access-points:
        "SSID-Name":
          password: asdfghjk
      addresses: [192.168.*.*/24]
      nameservers:
        addresses: [192.168.*.*]

下記コマンドで有効化

sudo netplan apply
でぶねこでぶねこ

有効化しようとすると権限のエラーが出たのでパーミッション修正

sudo chmod 600 /etc/netplan/00-installer-config.yaml
sudo chmod 600 /etc/netplan/99-network-config.yaml
でぶねこでぶねこ

「ovsdb-server.service」が動作していない言われたのでaptからインストール

sudo apt update && sudo apt install openvswitch-switch

再度有効化、今度はエラーが出ない

sudo netplan apply

自分の環境では再起動後に動作するようになった

でぶねこでぶねこ

公開鍵認証でssh接続できるようにする
作業用PCはWindowsなのでPowerShellで秘密鍵と公開鍵を作成

ssh-keygen -t ed25519

「~/.ssh/」以下に生成される。.pubの拡張子がついているほうが公開鍵
続いてWinSCP等を利用して公開鍵をサーバの「~/.ssh」にコピーする
コピー後、以下のコマンドで鍵を登録する

cat id_ed25519.pub >> authorized_keys

ターミナルソフトから秘密鍵でSSH接続できることを確認する(大事)

でぶねこでぶねこ

sshの設定を行う
netplanのように上書きする設定ファイルがあったのでそちらを編集

sudo vim /etc/ssh/sshd_config.d/50-cloud-init.conf

以下の編集を行う

# パスワードログインは拒否
-PasswordAuthentication yes
+PasswordAuthentication no
# Rootログインは拒否
+ PermitRootLogin no
# 公開鍵認証を有効化(もともと出来ていたような?)
PubkeyAuthentication yes
# ed25519のみ受け付ける
PubkeyAcceptedKeyTypes ssh-ed25519
# チャレンジレスポンスは無効
ChallengeResponseAuthentication no

sshを再起動

sudo systemctl restart sshd

既存の接続は維持したまま
パスワード認証は拒否され、鍵認証でのみ接続できることを確認する

でぶねこでぶねこ

下記を参考にセキュリティアップデートを自動化する
https://skrum.co.jp/blog/ubuntu-automatic-application-of-security-updates/

■ 50unattended-upgrades
- //  "${distro_id}:${distro_codename}-updates";
+ "${distro_id}:${distro_codename}-updates";

- //Unattended-Upgrade::Remove-Unused-Dependencies "false";
+ Unattended-Upgrade::Remove-Unused-Dependencies "true";

- //Unattended-Upgrade::Automatic-Reboot "false";
+ Unattended-Upgrade::Automatic-Reboot "true";

- //Unattended-Upgrade::Automatic-Reboot-Time "02:00";
+ Unattended-Upgrade::Automatic-Reboot-Time "02:00";

修正後サービスを再起動

sudo systemctl restart unattended-upgrades.service

aptのログは下記で確認できる

less /var/log/apt/history.log
でぶねこでぶねこ

公式を参考にdockerをインストールする
https://docs.docker.com/engine/install/ubuntu/
2023年12月の場合では下記手順、まずdockerをリポジトリに追加する

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

続いてインストール

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

hello-worldが動作するかを確認する

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:ac69084025c660510933cca701f615283cdbb3aa0963188770b54c31c8962493
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly
でぶねこでぶねこ

続いて同じく公式を参考にcomposeも入れる
https://docs.docker.com/compose/install/linux/

$ sudo apt-get update
$ sudo apt-get install docker-compose-plugin

バージョンを確認する

$ sudo docker compose version
Docker Compose version v2.21.0

2023年12月時点では「docker-compose」ではなく「docker compose」なんですね