ローカルlinuxをubuntu26にバージョン上げたので、本番環境として利用しているgoogle cloudの分も準備。

Google cloud分を作成

computer engineの画面でイメージの名前選ぶところにある。

resoluteってあるのがそうかな。

ubu26gcp

正式名称はresolute raccoon(堅固なアライグマ)っていう。

形容詞外した名前で普通に作ってみた。

ubu26gcp

ssh鍵作成と接続のための準備

いっつもlinuxで作ってたのを、今回はmacで作ってみる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
nari@gvis-mac ~ % ssh-keygen -t rsa -b 4096 -f ~/.ssh/gcp_key -C "nari"
Generating public/private rsa key pair.
Enter passphrase for "/Users/nari/.ssh/gcp_key" (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/nari/.ssh/gcp_key
Your public key has been saved in /Users/nari/.ssh/gcp_key.pub
:(中略)
The key's randomart image is:
+---[RSA 4096]----+
:(中略)
+----[SHA256]-----+
nari@gvis-mac ~ % nari@gvis-mac ~ % ssh-keygen -t rsa -b 4096 -f ~/.ssh/gcp_key -C "naritomitsukasa"
Generating public/private rsa key pair.
Enter passphrase for "/Users/nari/.ssh/gcp_key" (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/nari/.ssh/gcp_key
Your public key has been saved in /Users/nari/.ssh/gcp_key.pub
:(中略)
The key's randomart image is:
+---[RSA 3072]----+
:(中略)
+----[SHA256]-----+
nari@gvis-mac ~ % 

鍵作ってgoogle cloudのコンソールで登録した。

ubu26gcp

teratermで使えるようにしてくんやけど、鍵ファイル作る時のパススレーズ勘違いしててすぐにはつながらんかった。

ubu26gcp

teratermはバージョン5以降、鍵ファイルは.pubじゃないほうを指定できてることと、UTF8でLF改行保存できているか目視せなアカンで。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
include 'Y:\94_connect\connect\teraIni\gvis.ini' ⭐️インクルードファイルちゃんと書き換えとこ

; --- 接続 --------------
; connect 'gcp-gvis-nalinux.intra.gavann-it.com  /ssh /auth=publickey /passwd=gngor5207&  /user=naritomitsukasa /keyfile=Y:\94_connect\connect\GCP\key\20191018-privateKEY /F=Y:\94_connect\connect\teraIni\blue.ini'

 conSTR = 'xx.xx.xx.xx /ssh /auth=publickey  /user=naritomitsukasa /passwd='
 strconcat conSTR gvis_MAIN ⭐️自分的にここ注意
 strconcat conSTR ' /keyfile='
 strconcat conSTR gvis_KY2
 strconcat conSTR ' /F='
 strconcat conSTR gvis_iPTH
 strconcat conSTR 'Blue.ini '
 strconcat conSTR '/timeout='
 strconcat conSTR gvis_TOUT

; ---debug --------------
messagebox conSTR 'info'

 connect conSTR
 if result <> 2 goto end

wait gvis_wS1
sendln "df -h | grep -v tmpfs" ⭐️.bashrcにエイリアス書いたらdffに変更

wait gvis_wS1
sendln "w"

:end

OS設定

ちょっとずつやってく。

uid=1000のユーザ名を変更

google cloudでOS動かすとデフォルトのユーザが作成される。

ubuntuの場合はubuntuってユーザがid=1000で作成されるんやけど、ローカルlinuxとファイルの所有権をそろえたい。

gemini先生に相談しながら、過去のメモと見比べてユーザIDをそろえてく。

前回までは 自分でググって調べてやってた

今回はgemini先生に相談してみる。

■相談
1
2
3
4
5
6
7
google cloudのcompute engineでubuntu26のホストを作成した。
しかし、nariというユーザのuid/gidが1003:1004となっている。
ローカルlinuxの「nari:x:1000:1000:nari:/home/nari:/bin/bash」にそろえる方法を教えて。

rsa-key-20190112:x:1001:1002::/home/rsa-key-20190112:/bin/bash
naritomitsukasa:x:1002:1003::/home/naritomitsukasa:/bin/bash
nari:x:1003:1004::/home/nari:/bin/bash ⭐️これをローカルlinuxの「nari:x:1000:1000:nari:/home/nari:/bin/bash」にそろえたい

答えが戻る。OS Loginを有効化してたら設定が巻き戻ることあるのは知らんかった。

■回答
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Google Cloud Engine (GCE) の Linux インスタンス(OS Login などを有効にしている場合含む)では、GCP アカウント連携によって UID/GID が 1000 以降で自動採番されるため、希望する UID/GID とズレてしまうことがよくあります。

既存の /etc/passwd を見ると、すでに ubuntu ユーザーが 1000:1000 を使用しているため、単に nari の UID/GID を変更するだけではなく、ubuntu ユーザーの UID/GID を退避させて空きを作る手順が必要です。

以下の手順で安全に変更できます。
:(中略)
[!WARNING]
GCP OS Login 機能に関する注意

もし GCP プロジェクトで OS Login を有効化している場合、
GCP 側の Daemons(google-oslogin-control)がインスタンス起動時やログイン時に
/etc/passwd の UID/GID を元の値(1003:1004 など)に自動的に
上書き・巻き戻してしまうことがあります。 ⭐️なんですと!!

その場合は、GCP 側で OS Login を無効にするか、
メタデータ (sysprep / metadata) で UID を指定する必要があります。
通常の SSH キー登録運用であれば上記手順で恒久的に固定されます。

提示された手順はid更新とその結果確認で問題なさそうやったから、そのままやってみた。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
naritomitsukasa@raccoon-fslinux:~$ sudo su - ⭐️rootになって作業
root@raccoon-fslinux:~#
root@raccoon-fslinux:~# ps -ef | grep ubuntu ⭐️オーナーとして稼働しているプロセスないか確認
root        1573    1530  0 22:15 pts/1    00:00:00 grep --color=auto ubuntu
root@raccoon-fslinux:~# ps -ef | grep nari ⭐️オーナーとして稼働しているプロセスないか確認(naritomitsukasaは存在するから多少はヒット)
root        1340    1004  0 21:54 ?        00:00:00 sshd-session: naritomitsukasa [priv]
naritom+    1345       1  0 21:54 ?        00:00:00 /usr/lib/systemd/systemd --user
naritom+    1349    1345  0 21:54 ?        00:00:00 (sd-pam)
naritom+    1431    1340  0 21:54 ?        00:00:00 sshd-session: naritomitsukasa@pts/0
naritom+    1436    1431  0 21:54 pts/0    00:00:00 -bash
root        1584    1530  0 22:15 pts/1    00:00:00 grep --color=auto nari
root@raccoon-fslinux:~# groupmod -g 2000 ubuntu ⭐️グループIDを変更
root@raccoon-fslinux:~# usermod -u 2000 -g 2000 ubuntu ⭐️ユーザーIDを変更
root@raccoon-fslinux:~# chown -R 2000:2000 /home/ubuntu ⭐️ホームディレクトリの所有権を新しいIDに追従させる
root@raccoon-fslinux:~# groupmod -g 1000 nari ⭐️グループIDを 1000 に変更
root@raccoon-fslinux:~# usermod -u 1000 -g 1000 nari ⭐️ユーザーIDを 1000 に変更(プライマリグループも 1000 に)
root@raccoon-fslinux:~# chown -R 1000:1000 /home/nari ⭐️ホームディレクトリ内の所有権を新しいIDに修正
root@raccoon-fslinux:~# ls -l /home ⭐️フォルダのアカウント名が表示され、uid/gidが表示されてないか確認
total 16
drwxr-x--- 3 nari             nari             4096 Aug 14 20:34 nari
drwxr-x--- 4 naritomitsukasa  naritomitsukasa  4096 Aug 14 21:54 naritomitsukasa
drwxr-x--- 3 rsa-key-20190112 rsa-key-20190112 4096 Aug 14 20:34 rsa-key-20190112
drwxr-x--- 3 ubuntu           ubuntu           4096 Aug 14 20:34 ubuntu
root@raccoon-fslinux:~# find / -uid 1003 -exec chown 1000 {} + 2>/dev/null ⭐️旧UID(1003)のファイルを新UID(1000)に変更
root@raccoon-fslinux:~# find /gid 1004 -exec chgrp 1000 {} + 2>/dev/null ⭐️旧GID(1004)のファイルを新GID(1000)に変更
root@raccoon-fslinux:~# grep -E 'ubuntu|nari' /etc/passwd ⭐️結果確認
ubuntu:x:2000:2000:Ubuntu:/home/ubuntu:/bin/bash
naritomitsukasa:x:1002:1003::/home/naritomitsukasa:/bin/bash
nari:x:1000:1000::/home/nari:/bin/bash ⭐️できとる
root@raccoon-fslinux:~#

普段使いのユーザで接続するteratermマクロも用意して接続してみた。

ubu26gcp

sudoもできるな。

GCP OS Login機能が勝手に巻き戻すことあるって注意もあったから、それが何なのか、どう扱うのかは少し聞いてみた。

有効化されているかを確認する方法をgemini先生が教えてくれたので、ローカルubuntu26からgcloudコマンド使ってみた。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
nari@nafslinux-ubu26:~$ gcloud compute instances describe raccoon-fslinux \
    --zone=us-east1-b \
    --format="yaml(metadata.items)"
metadata:
  items:
  - key: ssh-keys ⭐️enable-oslogin の指定がなくssh-keysってあるから勝手に巻き戻らん
    value: |-
      nari:ssh-rsa 
:(中略)
      naritomitsukasa:ssh-rsa
:(中略)

To take a quick anonymous survey, run:
  $ gcloud survey

nari@nafslinux-ubu26:~$ 

gemini先生に相談すると、調査と設定の時間が半分かそれ以下に縮む。

google drive使うためのOSユーザ作成

これがいないとバックアップでrcloneできん。

1
2
3
4
5
6
7
nari@raccoon-fslinux:~$ sudo groupadd -g 1005 gavannitsales
nari@raccoon-fslinux:~$ sudo useradd -u 1005 -g 1005 -m -d /home/gavannitsales -s /bin/sh gavannitsales
nari@raccoon-fslinux:~$ sudo passwd gavannitsales
New password:
Retype new password:
passwd: password updated successfully
nari@raccoon-fslinux:~$

モジュール追加

ローカルのubuntu26でやった設定 をやっとく。ログは割愛。

日本語化できた。

1
2
3
4
5
root@raccoon-fslinux:~# echo $LANG
ja_JP.UTF-8
root@raccoon-fslinux:~# date
2026年 8月 16日 日曜日 05:07:49 JST
root@raccoon-fslinux:~#

基本的なモジュール追加もやってく。

vmwareの中で動かすんやないからopen-vm-toolsはインストールせん。

最終的に入ったモジュール数は473。ローカルubuntu26より200個少ないな。

root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2> /dev/null | grep -v 'Listing...' | wc -l ⭐️これぐらいか
473
root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2>/dev/null | grep -v 'Listing...' | grep libreof ⭐️コンテナ側にはある
root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2>/dev/null | grep -v 'Listing...' | grep cups ⭐️いらん
root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2>/dev/null | grep -v 'Listing...' | grep modem ⭐️いらん
root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2>/dev/null | grep -v 'Listing...' | grep ppp ⭐️いらん
root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2>/dev/null | grep -v 'Listing...' | grep usb- ⭐️クラウドでなんでusbあるねん?
libusb-1.0-0/resolute,now 2:1.0.29-2build1 amd64 [インストール済み、自動]
root@gcp-gvis-dklinux:/gvis/script# apt list --installed 2>/dev/null | grep -v 'Listing...' | grep wireless ⭐️クラウドで何に使うねん?
root@gcp-gvis-dklinux:/gvis/script# 

今度ローカルubuntu26のと比べてdiffして調べるか。

クラウドの中でのNTP同期先

ntpも設定するんやけど、google cloudのus-eastにあるホストで時刻同期先に利用すべきntpサーバはどこなのかをgemini先生に聞いてみた。

■相談
1
2
gcpのubuntu26がus-east-bで稼働している。
ntpで時刻同期したいが、どのntpサーバ使えばいいか。
■回答
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
ゾーン(us-east1-b や us-central1-b など)に関わらず、
GCP(Compute Engine)上の VM では Google 内部の NTP サーバー である 
metadata.google.internal を使用します。

1. なぜ metadata.google.internal なのか?
超低遅延・高信頼性VPC 内部のメタデータサーバー経由で同期するため、
外部インターネットを経由せず、最もレイテンシが低く安全に同期できます。
2. Leap Smearing(うるう秒の処理)  
Google の NTP は「うるう秒」が発生した際、
24 時間かけて少しずつ時間をずらす(Leap Smearing)処理を行ないます。
外部の NTP サーバーと混ぜて使うと時刻がズレる原因になるため、
Google 内部 NTP のみに絞るのが公式の推奨です。  
:(中略)

なるほど、google cloud内部の同期先を使えっていうことね。

時刻同期先は教えてもらったものを使う。

/etc/systemd/timesyncd.conf
1
2
3
:(中略)
NTP=metadata.google.internal
FallbackNTP=time.google.com

設定してみるとちゃんと動く。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
root@raccoon-fslinux:~#  tail -2 /etc/systemd/timesyncd.conf
NTP=metadata.google.internal
FallbackNTP=time.google.com
root@raccoon-fslinux:~# systemctl restart systemd-timesyncd
root@raccoon-fslinux:~# journalctl -u systemd-timesyncd -n 5 --no-pager
 8月 16 05:35:29 raccoon-fslinux systemd[1]: Stopped systemd-timesyncd.service - Network Time Synchronization.
 8月 16 05:35:29 raccoon-fslinux systemd[1]: Starting systemd-timesyncd.service - Network Time Synchronization...
 8月 16 05:35:29 raccoon-fslinux systemd[1]: Started systemd-timesyncd.service - Network Time Synchronization.
 8月 16 05:35:29 raccoon-fslinux systemd-timesyncd[8824]: Contacted time server 169.254.169.254:123 (metadata.google.internal).
 8月 16 05:35:29 raccoon-fslinux systemd-timesyncd[8824]: Initial clock synchronization to Sun 2026-08-16 05:35:29.781131 JST.
root@raccoon-fslinux:~# date
2026年 8月 16日 日曜日 05:38:48 JST
root@raccoon-fslinux:~#

.bashrcにエイリアス入れとく

最後の行に貼り付けとく。今のところ、google drive使うためのgavannitsalesユーザには必要ない。

/root/.bashrc
1
2
3
4
5
6
7
8
:(中略)
alias doc='cd /gvis/nari/nariDocs'
alias sc='cd /gvis/script'
alias dk='cd /gvis/nari/nariDocs/Docker'
alias tree="pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g'"
PATH=/gvis/script/proc:$PATH:$HOME/bin
alias dff='df -h | grep -v DockerSys | grep -v "dev/loop" | grep -v tmpfs | grep -v credentials'
export PATH
/home/nari/.bashrc
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
:(中略)
alias doc='cd /gvis/nari/nariDocs'
alias sc='cd /gvis/script'
alias dk='cd /gvis/nari/nariDocs/Docker'
alias tree="pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g'"
alias dff='df -h | grep -v DockerSys | grep -v "dev/loop" | grep -v tmpfs | grep -v credentials'

# 配下の.DS_Storeと._xxx を削除
function removegomi () {
  find . \( -name '.DS_Store' -or -name '._*' -or -name '.smbdelete*' \) -delete -print;
}
alias rmgomi=removegomi

PATH=/gvis/script/proc:$PATH:$HOME/bin
export PATH

本番環境のフォルダ構成

データ置き場の基礎フォルダgvisとnariを作成する。

1
2
3
4
nari@raccoon-fslinux:~$ sudo mkdir /gvis
nari@raccoon-fslinux:~$ sudo mkdir /gvis/nari
nari@raccoon-fslinux:~$ sudo ln -s /gvis/nari /nari
nari@raccoon-fslinux:~$

見比べたらこうなる。赤い背景がubuntu24-numbatで青い背景がubuntu26-raccoon。

ubu26gcp

スクリプトの流し込み

本番環境のフォルダのパーミッションそろえる。nariってフォルダはマウントポイントとして使ってて、データディスクを後でマウントする。

ubu26gcp

nari2はデータ移行のときに使うんやけど、作るの忘れたから後で足しとこか。

gvis_conf/log/scriptはそのままtar.gzしてteratermのscp機能使ってダウンロードしておき、raccoon側にコピーする。

ubu26gcp

パーミッションそろってそうやな。

ubu26gcp

確認忘れてたから後で見たけど、バックアップでgoogle driveへアップロードするときの処理フォルダもパーミッション崩れてへんかった。

OSユーザ名gavannitsalesがファイル名のオーナーに設定されてたらOKや。

1
2
3
4
5
6
7
8
9
nari@raccoon-fslinux:/gvis/script/gdr-gavannitsales$ pwd
/gvis/script/gdr-gavannitsales
nari@raccoon-fslinux:/gvis/script/gdr-gavannitsales$ ls -l
total 2380
-rwxr-xr-x 1 gavannitsales gavannitsales     860 Dec  9  2020 001_DirList.sh
-rw-r--r-- 1 gavannitsales gavannitsales 2422932 Jan 21  2021 001_DirList.sh.txt
-rwxr-xr-x 1 gavannitsales gavannitsales    1172 Dec  9  2020 002_SyncFolder.sh
-rwxr-xr-x 1 gavannitsales gavannitsales    1410 Jul  2  2024 003_SyncGavannitsales.sh
nari@raccoon-fslinux:/gvis/script/gdr-gavannitsales$

システムの起動にかかる時間

ローカルubuntu26作るときも確認したけど、google cloudの中のubuntu26でもやってみよか。

gcpのubuntu24での起動
1
2
3
4
root@gcp-gvis-dklinux:~# systemd-analyze
Startup finished in 1.585s (kernel) + 16.607s (userspace) = 18.193s
graphical.target reached after 16.190s in userspace. ⭐️ありゃりゃ。ローカルubuntu26のときと同じでgraphical.targetってなってる
root@gcp-gvis-dklinux:~#
gcpのubuntu26での起動
1
2
3
4
root@raccoon-fslinux:~# systemd-analyze
Startup finished in 1.784s (kernel) + 44.849s (userspace) = 46.634s
graphical.target reached after 44.343s in userspace. ⭐️なんで44秒もかかっとんねん?
root@raccoon-fslinux:~#
gcpのubuntu26で修正
1
2
3
4
5
6
7
8
root@raccoon-fslinux:~# systemctl get-default ⭐️どないなっとるか確認
graphical.target ⭐️ありゃりゃ
root@raccoon-fslinux:~# systemctl set-default multi-user.target ⭐️昔で言うランレベル3に変更
Created symlink '/etc/systemd/system/default.target' → '/usr/lib/systemd/system/multi-user.target'.
root@raccoon-fslinux:~# systemd-analyze
Startup finished in 1.872s (kernel) + 14.591s (userspace) = 16.464s
multi-user.target reached after 14.070s in userspace. ⭐️変更できたけどローカルubuntu26に比べたら時間長い
root@raccoon-fslinux:~#

14秒は長いな。ローカルubuntu26は3秒で終わってるから、もう少し設定してってから原因探るかな。

必要モジュールの設定

本番環境の機能をセットアップする。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
apt-get update
apt-get upgrade
apt install apache2
apt install rclone
apt-get update
apt-get install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update ⭐️忘れんように!
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker run hello-world ⭐️テスト!

インストール箇所は割愛してdocker確認のあたりはこうなる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
root@raccoon-fslinux:/gvis/script# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
d5e71e642bf5: Download complete
Digest: sha256:5dd0d3e6e255913fc30f90b9f2b1d359cc2cbdb48090cc4b65f1676e203243cc
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

root@raccoon-fslinux:/gvis/script# 

一般ユーザでdocker操作できる設定入れる。

1
2
nari@raccoon-fslinux:~$ sudo usermod -aG docker $USER
nari@raccoon-fslinux:~$

ログインしなおすと101(lxd),988(docker)が所属に増えとる。

1
2
3
nari@raccoon-fslinux:~$ id
uid=1000(nari) gid=1000(nari) groups=1000(nari),4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),101(lxd),104(netdev),988(docker),1001(google-sudoers),2000(ubuntu)
nari@raccoon-fslinux:~$

apache2/dockerは起動スクリプト使うからsystemdtlのサービスとしては停止してdisabledにしとかなアカンで。

1
2
sudo systemctl disable --now apache2
sudo systemctl disable --now docker.service docker.socket

コマンドラインでsystemctl status apache2 docker.service docker.socketってやったらこうなる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
○ apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; disabled; preset: enabled) ⭐️disabledになっとる
     Active: inactive (dead) since Sun 2026-08-16 06:46:08 JST; 1min 2s ago
   Duration: 12min 35.579s
:(中略)
○ docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; preset: enabled) ⭐️disabledになっとる
     Active: inactive (dead)
TriggeredBy: ○ docker.socket
       Docs: https://docs.docker.com
:(中略)

rcloneの設定

設定ファイルの$HOME/.config/rclone/rclone.cnfををコピって使う。

ubu26gcp

lslしてみたらリスト取れてるってことね。

1
2
3
root@raccoon-fslinux:~# rclone --config /home/gavannitsales/.config/rclone/rclone.conf lsl gvisDrive:/ | wc -l
21207
root@raccoon-fslinux:~#

ここはうまくいったんやけど、rcloneでgoogle driveへアップロードするときに失敗した。パーミッションちゃんと確認せなアカンで。

root@gcp-gvis-dklinux:/home/gavannitsales/.config/rclone# ll
total 12
drwxrwxr-x 2 gavannitsales gavannitsales 4096 Aug 16 07:48 ./
drwxrwxr-x 3 gavannitsales gavannitsales 4096 Aug 16 07:44 ../
-rw------- 1 root          gavannitsales  529 Aug 16 07:48 rclone.conf ⭐️所有権がrootになってしもてたらアカン
root@gcp-gvis-dklinux:/home/gavannitsales/.config/rclone# chown gavannitsales:gavannitsales ./rclone.conf 
root@gcp-gvis-dklinux:/home/gavannitsales/.config/rclone# ll
total 12
drwxrwxr-x 2 gavannitsales gavannitsales 4096 Aug 16 07:48 ./
drwxrwxr-x 3 gavannitsales gavannitsales 4096 Aug 16 07:44 ../
-rw------- 1 gavannitsales gavannitsales  529 Aug 16 07:48 rclone.conf ⭐️これでええ
root@gcp-gvis-dklinux:/home/gavannitsales/.config/rclone# 

gcloudは最初から入ってる

クラウド側でホスト作成してるんやし、そら入っとるわな。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
root@raccoon-fslinux:~# gcloud config list
[core]
account = xxxxxxxxxxxx-compute@developer.gserviceaccount.com
disable_usage_reporting = True
project = gvis-xxxxxxxxxxxx
universe_domain = googleapis.com
[metrics]
environment = snap_google_cloud_cli_amd64

Your active configuration is: [default]
root@raccoon-fslinux:~#

postfixでメール飛ばす設定

ローカルubuntu26でやったこのあたり の設定を見ながら設定する。

syslogdがなくなったからjournalctlでログ確認する。

1
2
3
4
5
sudo journalctl -u postfix ⭐️全ログ確認
sudo journalctl -u postfix -n 100 --no-pager ⭐️最新100行をページングなしで確認
sudo journalctl -u postfix --since today ⭐️今日のログ確認
sudo journalctl -u postfix --since "1 hour ago" ⭐️1時間以内のログ確認
sudo journalctl -u postfix -p err ⭐️エラーログのみ確認

ログをjournalctl -u postfix -fって見てみたら、正常に送信できてるみたい。

 8月 17 05:48:43 raccoon-fslinux postfix/pickup[979]: 006227C92E: uid=1000 from=<nari@raccoon-fslinux.us-east1-b.c.gvis-3579.internal>
 8月 17 05:48:43 raccoon-fslinux postfix/cleanup[1868]: 006227C92E: message-id=<20260816204843.006227C92E@gcp-raccoon-fslinux.intra.gavann-it.com>
 8月 17 05:48:43 raccoon-fslinux postfix/qmgr[980]: 006227C92E: from=<nari@raccoon-fslinux.us-east1-b.c.gvis-xxxxxx.internal>, size=652, nrcpt=1 (queue active)
 8月 17 05:48:45 raccoon-fslinux postfix/smtp[1874]: 006227C92E: to=<xxxxx@gavann-it.com>, relay=smtp.lolipop.jp[157.7.107.234]:587, delay=2.7, delays=0.02/0.01/1.6/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as D28D01402FA32)
 8月 17 05:48:45 raccoon-fslinux postfix/qmgr[980]: 006227C92E: removed

メールも来てたで。

ubu26gcp

logroate忘れてた

google gloudの中では今まで完全に忘れてた。

ローカルubuntu26の設定をアレンジして入れといた。あと/etc/logrotate.confはcompressって有効にしといた。

root@gcp-gvis-dklinux:/etc/logrotate.d# cat gvislog 
/gvis/log/001_sysBackup.log
{
    missingok
    create 0664 nari nari
    su nari nari
}
/gvis/log/002_makeTar.log
{
    size 50000000
    missingok
    create 0664 nari nari
    su nari nari
}
/gvis/log/004_gdr.log
{
    missingok
    create 0664 gavannitsales gavannitsales
    su nari nari
}

root@gcp-gvis-dklinux:/etc/logrotate.d# cat /etc/logrotate.conf | grep compress
# uncomment this if you want your log files compressed
compress ⭐️圧縮してや
root@gcp-gvis-dklinux:/etc/logrotate.d# 

その後でsudo systemctl restart rsyslogしてsudo logrotate -f /etc/logrotate.confって強制ローテート。

root@gcp-gvis-dklinux:/gvis/log# ll
total 2852
drwxr-xr-x 2 nari nari    4096 Aug 21 06:30 ./
drwxr-xr-x 7 root root    4096 Aug 16 06:23 ../
-rw-rw-r-- 1 nari nari       0 Aug 21 06:30 001_sysBackup.log
-rw-rw-r-- 1 nari nari      20 Aug 21 06:26 001_sysBackup.log.1.gz
-rw-r--r-- 1 nari nari  855887 Aug 19 06:26 001_sysBackup.log.2.gz
-rw-rw-r-- 1 nari nari       0 Aug 21 06:30 002_makeTar.log
-rw-rw-r-- 1 nari nari      20 Aug 21 06:26 002_makeTar.log.1.gz
-rw-r--r-- 1 nari nari 1989891 Aug 19 06:26 002_makeTar.log.2.gz
-rw-rw-r-- 1 nari nari       0 Aug 21 06:30 004_gdr.log
-rw-rw-rw- 1 nari nari    2037 Aug 19 06:51 004_gdr.log.1.gz
-rw-r--r-- 1 root root    4884 Aug 21 05:50 200_http.log
-rw-r--r-- 1 root root   41747 Aug 21 05:50 300_docker.log
root@gcp-gvis-dklinux:/gvis/log# 

バックアップのログがめっちゃデカいな。

データ用ディスクのマウント

ubuntu24/26のOS停止して、データディスク接続を移動する。

ubuntu24-numbatはcpuとメモリの数も減らしておいてディスクを外す。

ubu26gcp

ubuntu26を本番環境用にディスクを追加する。

ubu26gcp

OS起動したらcpuの状態みてみる。ちょっと長い。

root@raccoon-fslinux:~# lscpu
アーキテクチャ:                        x86_64
  CPU 操作モード:                      32-bit, 64-bit
  アドレスサイズ:                      48 bits physical, 48 bits virtual
  バイト順序:                          Little Endian
CPU:                                   8
  オンラインになっている CPU のリスト: 0-7 ⭐️8コアある
ベンダー ID:                           AuthenticAMD
  モデル名:                            AMD EPYC 7B12
    CPU ファミリー:                    23
    モデル:                            49
    コアあたりのスレッド数:            2
    ソケットあたりのコア数:            4
    ソケット数:                        1
    ステッピング:                      0
:(中略)

ちょっと長い。もっと直感的にわかるnmon使う。8コアあるのとメモリ16GBある。

ubu26gcp

マウント対象になってるか確認する。lsblkってやったらloopってのが見えるのはgoogle cloud特有ってか。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
nari@raccoon-fslinux:~$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0  66.8M  1 loop /snap/core24/1643
loop1     7:1    0 344.6M  1 loop /snap/google-cloud-cli/481
loop2     7:2    0  50.1M  1 loop /snap/snapd/27406
loop3     7:3    0  50.1M  1 loop /snap/snapd/27710
sda       8:0    0    30G  0 disk
├─sda1    8:1    0  28.9G  0 part /
├─sda13   8:13   0  1023M  0 part /boot
├─sda14   8:14   0     4M  0 part
└─sda15   8:15   0   106M  0 part /boot/efi
sdb       8:16   0   150G  0 disk ⭐️見えとるな
nari@raccoon-fslinux:~$

sdbのディスク見えてるからマウントのスクリプト使える。

前にxfsでサイズ半分に作り直したデータディスクを1回だけリペア処理しとこか。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@raccoon-fslinux:/gvis/script# xfs_repair /dev/sdb
Phase 1 - find and verify superblock...
Phase 2 - using internal log
:(中略)
Phase 3 - for each AG...
:(中略)
Phase 4 - check for duplicate blocks...
:(中略)
clearing reflink flag on inodes when possible
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
:(中略)
Phase 7 - verify and correct link counts...
done
root@raccoon-fslinux:/gvis/script# sh ./006_mount_xfs.sh ⭐️マウントする
root@raccoon-fslinux:/gvis/script# dff
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        28G  3.0G   26G  11% /
efivarfs        256K   32K  220K  13% /sys/firmware/efi/efivars
/dev/sda13      989M   54M  868M   6% /boot
/dev/sda15      105M  6.3M   99M   7% /boot/efi
/dev/sdb        150G   97G   53G  65% /gvis/nari ⭐️つながった
root@raccoon-fslinux:/gvis/script#

apache2とdocker稼働

ホストOSでの設定は毎回手動でやってる。

apache2

データが見えるようになったところで、apache2の稼働設定入れる。

/etc/apache2/apache2.confへ追記
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
### gvis
<Directory "/nari/nariDocs/smb"> ⭐️使ってちょ
    Options Includes Indexes ExecCGI FollowSymLinks
    AllowOverride All
    Require all granted
    AddType text/html .html
    AddOutputFilter INCLUDES .html
</Directory>
<IfModule mod_userdir.c>
    UserDir nariDocs
</IfModule>
IndexOptions Charset=UTF-8 NameWidth=*
/etc/apache2/sites-available/000-default.confを更新
1
DocumentRoot /nari/nariDocs/smb ⭐️使ってちょ

起動ログをjournalctl -xeu apache2.serviceで確認する。

 8月 18 03:53:03 raccoon-fslinux systemd[1]: Starting apache2.service - The Apache HTTP Server...
░░ Subject: A start job for unit apache2.service has begun execution
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit apache2.service has begun execution.
░░
░░ The job identifier is 2253.
 8月 18 03:53:03 raccoon-fslinux systemd[1]: Started apache2.service - The Apache HTTP Server.
░░ Subject: A start job for unit apache2.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit apache2.service has finished successfully. ⭐️いけたかな
░░
░░ The job identifier is 2253.
lines 14-47/47 (END)

動作確認はxrdpコンテナ起動せんとできんな。

後で忘れてることに気づいた。SSIを実行させてるからコマンドラインで設定する。

root@gcp-gvis-dklinux:/etc/apache2# a2enmod include ⭐️こんなんやったかな
Considering dependency mime for include:
Module mime already enabled
Enabling module include.
To activate the new configuration, you need to run:
  systemctl restart apache2
root@gcp-gvis-dklinux:/etc/apache2# systemctl restart apache2 
root@gcp-gvis-dklinux:/etc/apache2# 

これやっとかんと、コンテナから参照してるhtmlにヘッダ・フッタが読み込まれへんし文字化けもする。

docker

サービス確認でsystemctl status docker.serviceってやったらこう見える。

○ docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; preset: enabled)
     Active: inactive (dead)
:(中略)

この中にある/usr/lib/systemd/system/docker.serviceを編集してマウントしたデータディスクのdocker永続化領域を指定する。

:(中略)
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock --storage-driver=overlay2 --data-root /gvis/nari/nariDocs/Docker/nariDockerSys
:(中略)

その後にデーモン設定をsystemctl daemon-reloadって読み込みしなおさせてdockerサービスだけ起動してみる。

root@raccoon-fslinux:/gvis/nari/nariDocs/Docker# docker ps -a
CONTAINER ID   IMAGE                          COMMAND                   CREATED        STATUS                      PORTS     NAMES
b1a461bee800   gitlab/gitlab-ce:18.7.0-ce.0   "/assets/init-contai…"   7 months ago   Exited (137) 22 hours ago             docker-SVgitlab2026-1
555631b9ec57   sv_django:5                    "supervisord -n"          8 months ago   Exited (137) 22 hours ago             docker-sv_django-1
06793347b5ea   mariadb:11.4-noble             "docker-entrypoint.s…"   8 months ago   Exited (0) 22 hours ago               docker-sv_mariadb1104-1
06474b8deb8e   steveltn/https-portal:1        "/init"                   8 months ago   Exited (137) 22 hours ago             docker-sv_https-portal-1
d271630490c4   ubu:24gvis                     "/usr/bin/run.sh"         8 months ago   Exited (0) 22 hours ago               docker-cl_ubu24-1
root@raccoon-fslinux:/gvis/nari/nariDocs/Docker#

コンテナ見えたな。ubuntu22から24に切り替えたときは dockerのコンテナうまく起動できんかった けど今回もアカンかった。

ubu26gcp

というか、起動はできたけどsshトンネリングで接続した後につながらんかった。

こういうときはコンテナもイメージも全部作り直す。永続化領域はバックアップあるから、そのまま使う。

xrdpコンテナは母艦でubuntu26のxrdpコンテナ作ったけど、今はubuntu24のdockerfileでビルドして接続確認を先にする。

サービス起動の設定

サービス開始のスクリプトを systemctlで管理 させて利用してる。

データディスクをマウントして、gvis.serviceってサービス名から起動するスクリプトを使ってるので稼働させるのに使う。

/gvis/script/000_serviceStart.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
## -------------------------------------------------------------------------
## Script Name  : serviceStart.sh
##  Created by  : T.Naritomi
##          on  : 2019.10.18
##  Updated by  : 2023.09.06
##          on  :
##  Parameters  :
##  Return Code : 0=Normal End
##     Comments : for gvis.service before os start (os base process and X11,xrdp,sshd)
##                systemd require /etc/systemd/system/gvis.service
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------

sleep 20
/usr/bin/hostnamectl set-hostname gcp-gvis-dklinux

### /bin/sh /gvis/script/006_mount_ext4.sh ⭐️昔はext4使ってたな
/bin/sh /gvis/script/006_mount_xfs.sh

/bin/sh /gvis/script/202_httpdStart.sh

/bin/sh /gvis/script/302_dockerStart.sh

sleep 10
/bin/sh /gvis/script/009_startMail.sh ⭐️OS起動したらメール飛ばす

sleep 50
sync ; sync ; sync
/bin/sh /gvis/nari/nariDocs/Docker/dockerStart.sh

このスクリプトをOS起動時に動くようにしとく。

root@gcp-gvis-dklinux:~# systemctl enable gvis.service 
Created symlink '/etc/systemd/system/multi-user.target.wants/gvis.service' → '/etc/systemd/system/gvis.service'.
root@gcp-gvis-dklinux:~# systemctl status gvis.service 
○ gvis.service - gvis daemon
     Loaded: loaded (/etc/systemd/system/gvis.service; enabled; preset: enabled) ⭐️OS起動するときに呼び出される
     Active: inactive (dead) ⭐️動き終わったら終了やから常にdead
root@gcp-gvis-dklinux:~# 

dockerコンテナが使える状態になったらメールが来るんやけど、OS起動してから2分程度で届くのは前と同じぐらい。

宅内DNSの変更

宅内ルータにあるDNS定義を変更。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
+----------------+    +---------------------------------------------+    +-----------------+
|windows11       |    |Router                                       |    |GCP              |
| +------------+ |    | +-----------------------------------------+ |    | +-------------+ |
| |vm ubuntu26 | |    | |DNS                                      | |    | | raccoon     | |
| +------------+ | -> | | gcp-gvis-dkLinux.intra.gavann-it.com =  | | => | | xx.xx.xx.xx | |
| +------------+ |    | | xx.xx.xx.xx                             | |    | +-------------+ |
| |vm windows11| |    | +-----------------------------------------+ |    | +-------------+ |
| +------------+ |    |                                             |    | | numbat      | |
+----------------+    +---------------------------------------------+    | | yy.yy.yy.yy | |
                                                                         | +-------------+ |
                                                                         +-----------------+

参照名をgcp-gvis-dkLinux.intra.gavann-it.comって定義してるから、向き先をyy.yy.yy.yyからxx.xx.xx.xxに変更。

tertermマクロに書いてある参照名は同じにしてるから、向き先が変わってくれる。

別ホストになって鍵ファイルが変わるから、macosの${HOME}/.ssh/known_hostsにある記述はいったん削除したら新規登録してくれてつながる。

docker環境の利用

xrdpのコンテナがないとブラウザ接続とか、ファイル置き場のデータ確認ができんので最初に使える状態作る。

xrdpとdjangoのコンテナ

母艦では ubuntu26のxrdpコンテナ を作ったんやけど、今はgoogle cloudの中の動作確認やからいったんubuntu24のxrdpコンテナでやってく。

xrdpコンテナ使うときのメモ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cd /gvis/nari/nariDocs/Docker/nariDockerDat/cl_ubuntu/download/wk_container
git clone https://github.com/danchitnis/container-xrdp.git ⭐️まだ残ってる
cp -p ../../Dockerfile-gcp-gvis.txt ./container-xrdp/ubuntu-xfce/ ⭐️Dockerfileは工夫して使ってる
cd container-xrdp
 
1)gvis用のxrdpコンテナをビルドする
  docker build -f ./ubuntu-xfce/Dockerfile-gcp-gvis.txt -t ubu:24gvis .
  
2)古いほうのコンテナ停止してからcompose.yml更新して新しいほうのコンテナ起動する
  docker stop xxx
  docker run -it -v /gvis/nari/nariDocs/Docker/nariDockerDat/cl_ubuntu:/gvis -p 33389:3389 ubu:24gvis nari booboo yes

3)rdpログインしてGUIでの設定をする
  ※ vscodeは"--no-sandbox"のオプションつきで起動するようにランチャを設定する
  ※ chromeは"google-chrome --no-sandbox --disable-dev-shm-usage --disable-gpu"のオプションがいる
 
4)ブラウザのfavoritesに入れる
  http://gcp-gvis-dklinux.intra.gavann-it.com/

  xrdp環境のフォントやキーボード設定、ブラウザの基本設定とかもやる

5)dockerコンテナから保存イメージを作成して永続化する
  docker commit `docker ps | grep 24gvis | awk '{print $NF}'` gvis-ubu24:24gvis

メモ見ながらコンテナをビルドしてcomposeで動かす。

djangoのアプリでmariadbに接続してデータ見えてるのと、ドキュメントもvscodeからgitの履歴参照しながらubuntu24のxrdpコンテナ使えた。

ubu26gcp

mariadbへの接続

mariadbへローカルPCからつながるか。linuxでポート転送してるから、ポート53306に向かってつないでみる。

ubu26gcp

参照できてた。

gitlabのコンテナ

コンテナ作り直したからか、認証情報が崩れてブラウザでログインできんようになってた。

rootと利用ユーザのパスワード初期化せなつながらん。

gemini先生に教えてもらったコマンドライン打ち込んでみたんやけど、rails環境に入って初期化するんやて。こんなん前にやったかなぁ。

nari@gcp-gvis-dklinux:/gvis/nari/nariDocs/Docker$ docker exec -it 6e37803ea39e gitlab-rails console -e production ⭐️コンテナにログイン
--------------------------------------------------------------------------------
 Ruby:         ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [x86_64-linux]
 GitLab:       18.7.0 (ef8306c4594) FOSS
 GitLab Shell: 14.45.5
 PostgreSQL:   16.10
-----------------------------------------------------------[ booted in 106.76s ]
Loading production environment (Rails 7.2.3)
gitlab(prod)> user = User.find_by_id(1) ⭐️rootユーザ選ぶ
=> #<User id:1 @root>
gitlab(prod)> user.password = 'xxxxxxxxx' ⭐️パスワード設定
=> "xxxxxxxxx"
gitlab(prod)> user.password_confirmation = 'xxxxxxxxx' ⭐️パスワード確認
=> "xxxxxxxxx"
gitlab(prod)> user.save! ⭐️保存してちょ!
=> true
gitlab(prod)> exit
nari@gcp-gvis-dklinux:/gvis/nari/nariDocs/Docker$ 

はい、ログインできた。

ubu26gcp

rootやないユーザのプロジェクトでリポジトリ使えるんか確認。大丈夫そう。

ubu26gcp

push/pullに問題あったとしてもエクスポートしといたデータあるからなんとかなるやろ。

gitlabは長らく使ってきたけど処理が重たい。pushしたらメモリいっぱい使う。

取り扱いも面倒になってきたし、そもそも脆弱性多すぎ。

1年で何回もバージョンアップあるからすぐ陳腐化する。

来年からはもっと軽快に動いてくれるgitサーバに変えなアカンな。

rcloneでバックアップ

バックアップ処理で接続に使ってる鍵ファイル(teratermマクロの中でkeyfileとして指定してる箇所)を変更して、バックアップ起動のマクロ動かす。

ubu26gcp

rsync動くのにかかる時間は20分ぐらいか。

-------Backup Start---- 2026-08-19_06:17:17_
sending incremental file list
./
compose-GVISweb.yml
compose.yml
nariDockerDat/cl_ubuntu/backup/
nariDockerDat/cl_ubuntu/download/
nariDockerDat/cl_ubuntu/download/wk_container/container-xrdp/ubuntu-xfce/
nariDockerDat/cl_ubuntu/download/wk_container/container-xrdp/ubuntu-xfce/Dockerfile-gcp-gvis.txt
:(中略)
nariDockerDat/sv_mariadb11conf/nari/DDLdefine.txt
nariDockerDat/sv_mariadb11conf/nari/MySQLTuner-perl-master/
nariDockerDat/sv_mariadb11conf/nari/MySQLTuner-perl-master/Vagrant/
nariDockerDat/sv_mariadb11conf/nari/MySQLTuner-perl-master/build/
nariDockerDat/sv_mariadb11conf/nari/fullback/

sent 17,122,241 bytes  received 2,237 bytes  2,634,535.08 bytes/sec
total size is 3,001,438,746  speedup is 175.27

google cloud側はアップロード処理は、google drive使うためのOSユーザにsudoして実行してるから、rcloneの設定ファイルのパーミッションに気を付ける。

----Start Sync 2026-08-19_06:43:49 -----
/GCP  Sync Success... 2026-08-19_06:43:52
/GCP  Sync Success... 2026-08-19_06:43:54
/GCP  Sync Success... 2026-08-19_06:43:57
/GCP  Sync Success... 2026-08-19_06:46:39
/GCP  Sync Success... 2026-08-19_06:51:34
----End Sync 2026-08-19_06:51:34 -----

5個アップロードできとるな。

ubu26gcp

バックアップからローカルlinuxへクローン

samba経由で使ってる業務データのファイルも本番から持ってくる。

ubu26gcp

バックアップの直前でmariadbのDDLのみ取得しなおしてる箇所を除いて、内容完全一致ということでOK。

ubu26gcp

アップロードされたファイルをローカルubuntu26のmariadbコンテナの永続化領域へ展開してからつないでみる。

ubu26gcp

zipとtarの展開は処理時間5分ぐらいで前と変わらず。SQLでDBのパラメータとか実際の登録レコードとか確認できてOK。

費用感

毎週末にデータ入力してるから月4回ぐらい使う。月に2回google drive経由でローカル環境へデータ反映して消費税込みで1700円ぐらい。

今日は20日。us-eastリージョン使ってるから午後2時頃に今日の分の費用が反映されるんやけど、それでも毎月使ってるぐらいの課金になっとる。

課金のグラフ見たら13日にraccoonのホスト作ってて、毎日少しずつ作って移してった。

ubu26gcp

細かいところ確認するのに月末までもう少し使うやろけど、2000円ぐらいで抑えられたらええなぁ。

ubuntu24から26へ引っ越しするときの利用課金は400円アップぐらいで済むってことで。

費用増えるからubuntu24から26へのxrdpコンテナの切り替えは来月にしとこ。

その後

後始末作業やってく。

ubuntu24の削除

費用が逼迫してるからさっさと消す。本番環境維持してくれたnumbatごくろー。

ubu26gcp

IPアドレスも返納。

ubu26gcp

結局費用は、2500円に膨らんだ。

ubu26gcp

OS切り替えにかかるのは、普段利用の維持費から1000円ほどアップってことで。

iosから接続

スマホは画面小さいし見づらいしあんまり使わんけど、前も設定やってたし今回もやってみよか。

まず鍵ファイルをもってくる。

numbatの設定残ってるのを書き換えて、鍵と接続先を指定する。

sshでつないでみる。

パスワード設定してたのになんで聞いてくるんやろな。

はいつながった。