'sqr'atch-note

ちりはつもれど ちりぬるを

2025年買ってよかったもの

買ってよかったものを去年も書いたと思ってたのに見当たらなかったので、探してみたら下書きのまま1年が過ぎており、公開されていなかった・・・。

1位、卓上食洗機Panasonic NP-TZ500

  • 以前、一人暮らしのときに食洗機を使っていたことがあったけど、一人暮らしだとそもそも食器の量が少ないため、食洗機の恩恵を受けることもなく、逆に電気代が気になってしまい、食洗機を使わず手洗いの方がさっさと終わるから良かったが、食器の量が増えたら食洗機のありがたみを実感した
  • フライパンや鍋も入れられるが、正直そういった大物は数がないし、手洗いでも苦じゃないが、細々とした食器がたくさん出るようになったら、それらを手洗いするのが非常に手間。というか、あかぎれが出来てかなり辛くなったため、食洗機の購入を決めた
  • 洗剤の自動投入なんかいらないからNP-TH5でもいいかなと思っていたが、店舗で実機を触ってみた時に、NP-TH5は扉が勢いよく開きすぎて、倒れるんじゃないかという危うさがあったのと開閉音が大きく気に入らず、NP-TZ500はプッシュオープンドア機能で開き方が緩やかで良かったので、少し高いがNP-TZ500を買った
  • 買ってよかった

2位、XikeStor 9ポート WEB 管理スイッチ

  • VLANが切れるWeb管理のL2スイッチを買った
  • Proxmoxを家の中で飼うようになったことで仮想ネットワークが増えてしまったことと、インターネットへの出口が2つ出来たことで、VLAN切らないとめんどくさい状況になってしまったため、購入した
  • 1万円ちょっとで買えるマネージドスイッチで非常にお買い得だった
  • VLANも分けられてお家環境も快適になったので、買ってよかった

3位、ファーイーストガジェット タイプスティックス TS01

  • キーボード用のバチ
  • このエントリで書いた通り、Realfoce RC1を買ったタイミングでMBPにRC1を乗せると本体のキーと干渉してしまうため、それを防ぐために買った
  • スティック自体がマグネットでくっついてコンパクトになるので持ち運びもしやすく、だいたいのノートパソコンにも流用できる汎用性も高く、買ってよかった

選外

  • Realfoce RC1
    • お高い高級キーボードを今年も買ったが、別にRealforceはこれまでも使っていて別に目新しくQoLが変わっていないから選外とした
  • ドリップコーヒー関連グッズ
    • 一通り揃えてインスタントコーヒーとかより格段に美味しいコーヒーが飲めるようになったが、思った以上にQoLが上がるようなグッズでもなかったため、選外とした

番外編

  • 去年買ってよかったもの2位にしていたKeychron K3 Maxは、1年も立たずにキーのチャタリングが発生してしまい使い物にならなくなったので、正直微妙なデバイスだった
    • キースワップができるタイプにしておけばよかったという感想

『ゼルダ無双 封印戦記』買った

  • ゼルダの伝説 ティアーズオブキングダムの前日譚が語られる封印戦記を買った
    • 買いはしたが、今回は購入をちょっとためらった
    • というのも、9000円という値段設定とタイトル公表時に必要空き容量が45GBというとてつもない容量にビビったためだ
    • 容量については、発売が近づくにつれて最適化されて少なくなるとは思っていたけど、それでも42GB程度必要で結構容量を喰っている
      • 本体容量256GBに対して42GBは、結構重い。5〜6本しか本体に保存できないのは痛い。しかも今回は、microSDカードも高額なので、512GBや1TBのサイズは、そこそこの値段するため気軽に買いづらい。512GBで1万円を切ってくれると良いのだけど・・・
    • 値段についても、前作はAmazonでDL版が10%オフだったため、7000円台で購入できたが、今回はなぜかDL版の扱いがAmazonでは取り扱いがなく、結局ニンテンドーストアの定価で購入せざるを得なかった。待てばセールにはなると思うが、待つのも
  • このソフトが、初めて買うNintendo Switch2専用ソフトになるので、どれくらいNS1から映像が綺麗になったのかは、期待していた
    • 今回、4kテレビを購入し、せっかくだからとNS2のためにもHDR対応のものを購入していたので、NS2の性能をフルに活かせるから、期待していた
    • が、実際のところ前作との映像美という観点では違いを感じられなかった。そういう意味では、NS1のゼルダ無双がすごかったという話
  • 実際やってみて正直なところ、前作とプレイ体感が変わらないので、前作ほどの感動は少なかった
    • Nintendo Switch2になったことで解像度も上がり綺麗になったのかと思うと大して思わなかったり。封印戦記が発売する前に、Nintendo Switch2で、前作をプレイしていたが、その違いを感じることはなかった
    • もちろん、多少遊びやすくはなってる気がする
    • スペックアップして、敵の同時出現数や処理落ちなどは無くなってるのかもしれないけど、体感上ではあまり違いがわからない
    • ただ、最終戦に近くなり、敵の同時出現数が増えても全く処理落ちする感じもなくスムースだったのは、やはりスペックアップしたからなのかなとは感じた
  • たくさんの敵を倒す爽快感はあるにはあるが、前作でそれは体感してしまったため、新しい体験ではない
    • それはゼルダ無双に限ったことではなく、ティーアーズオブキングダムでも感じたこと。ティアキンでは空や地下にフィールドが広がったけど、2015年に初めてゼルダの伝説 ブレスオブザワイルドで体験した感動を再現するようなものではなかった
    • ティアキンで、空のボスと戦うのもストレスがあった。もちろん初めてではなく、時のオカリナで水の神殿で味わったストレスと似ている。平面のフィールドではいいけど、縦の動きも加わった立体的なアクションは難易度が上がるので、ストレスを感じても致し方ない部分はあると思ってる
    • 立体的とはちょっと違うと思うけど、ムジュラの仮面にあったロックビルの神殿は、上下が反転するダンジョンで、ここは非常に楽しかったし、ギミックに感動した覚えがある

新しいLinuCレベル3PSが面白そう

LPI-Japan、Linux技術者認定制度「LinuC」のレベル3で新たに「プラットフォーム」「セキュリティ」のスペシャリスト認定 - INTERNET Watch

  • 来週12/1から始まる新しいLinuCレベル3認定資格「LinuCレベル3 プラットフォームスペシャリスト」が面白そうと思った
  • これまでのLinuC レベル3は、出題される技術要素が古臭い感じがしてあまり受けようというモチベーションが湧かなかった
  • でも、今度の新しいLinuCレベル3PSは、そういった古臭い感じのする部分が無くなって、新しい部分が追加されたので、少し面白く感じるようになった
  • KVMやコンテナ部分は変わらないけれど、仮想化技術にはProxmox VEが追加された
  • 全く新しい部分としては、プラットフォームの運用管理として、AnsibleやOpneTofuなどのプロビジョニングツールを用いた自動化やcloud-init、Gitによる管理なども試験項目になっており、よりクラウド時代っぽくなってる感じがする
    • 監視がZabbixなのは、いまだにZabbixに変わるような監視ツールが無いのかという気はするがまあそれは良い
  • というような感じで、結構面白そうなので受けてみたい
  • 来年の5月末までは、再受験無料キャンペーンもやってるから受験しやすいし
     - LinuC新試験体系完成記念 再受験無料キャンペーン | IT資格といえば LinuC | Linux技術者認定試験 リナック | LPI-Japan

Reakforce RC1を買った

去年買ったKeychron K3 Maxのエンターキーが二重に入力されてしまうチャタリングが発生するようになり、キーボードを新しく買うかどうかを悩んでいたら、ちょうどそのタイミング(2/14)で発売だったRealforce RC1ホワイトを勢いで購入。3ヶ月ほど使ってみたが、割と満足している。

  • 試し打ちせずに3万5千円もするキーボードを買うのは躊躇われたけど、Realforceというブランドを信頼して購入した
    • Kyechron k3の浅いキーストロークに慣れていたためか、2週間ほど使っていてもRC1の深いキーストロークに慣れずにタイプミスやタイピング速度が遅くなってしまい、Keychron K3 Maxをもう一枚買えば良かったかなと後悔してたけど、APC設定で1.5mmに変更したら、びっくりするほど体感が改善して打ちやすくなった
  • RC1の難点としては、RC1の横幅がKeychron K3 MAXより少しコンパクトであるため、MBPで本体の上に置いて使おうとすると、本体キーボードに干渉してしまう点
    • なので、タイプスティックという補助器具を買ってみた
    • タイプスティックス - 打ち箸 | FAR EAST GADGET
    • このバチをこのようにMBPのキーボードの上に置き、
    • そして、RC1をこのように置く
    • K3よりキーボード本体の厚さがあるので、打ちにくいものの、使いづらいと言うほどでも無いので良しとする
  • RC1はバッテリー駆動で、似たようなHHKB Studioが乾電池仕様であり、キーボードの耐用年数が高いのでバッテリー駆動はどうかな?(バッテリーも交換出来ないので)と思っていたが、1回の充電で1ヶ月持つのと、バッテリーの寿命が300サイクルと公式で言っているため、理論的には25年(=300/12ヶ月)持つことになり、まあ十分なのかなと思うに至った
    • そもそも、普段は有線で使うのでバッテリーを使うことが無い。そういう意味では、バッテリーがあるかどうかは気にしなくても良いのかもしれない
  • あと、公式からバッテリー交換サービスも提供されるらしい。でも、有償だろうから、正直自分で交換出来るようになっていて欲しかったとも思う

  • バッテリー部分の懸念や変荷重が良かったなという不満があるけど、トータルとしては満足寄り(高い買い物をしたため、満足したと納得するしか無い感はある)

WiMAXからdocomo Home 5Gへ乗り換え

WiMAXからdocomo Home 5Gに乗り換えてから2ヶ月ほど使ってみた実録として書き出しておく。特にオチはない。

  • 去年4月からWiMAXを使っていて特に不満はなかったのだけど、なんとなくネットが遅いなと感じるようになり、ある程度は無線なので仕方無いものだと割り切っていたものの、平日昼や夜、土日といった時間帯によらず常に遅いので、通信速度を確認してみると下り20〜40Mbps程度しか出ていない
    • 時間帯を変えて計測して見ても、ほとんど変わらないので、流石におかしいなとKDDIのエリアマップを見てみたら、いつの間にか5Gエリア外になってしまっていた…
    • 確認時点での夏以降もエリア拡張の予定が無いし、この程度の速度しか出ないのに毎月4000円弱支払い続けるのは割高だと思ったため、docomoのHome 5Gに乗り換えようと検討を始めた
  • たまたまdocomo回線のケータイを持っていたため、家の中で速度計測してみたら、夜でも600Mbps程度出ることが分かったので、十分に使えるだろうと判断し乗り換えを決意
  • docomo Home 5Gに乗り換えるに当たっての懸念事項は、ホームルータであるHR02が新品価格で7万円以上もすること
    • 月額サポートがついて3年使えば実質無料になるものの、こういう回線を3年も使い続けるのか?と考えると確証が無かったので、悩んでいた
    • ネットを調べていると中古なら2万円程度で買えるようだったが、流石に値段の落差が凄いし、ジャンク品に近いのかと思ったら、こういうデバイスの中古はこういうものらしい
    • ということで、中古の端末を購入
  • Home 5GもSIMのみ契約を2/21に行い、2/25に開通処理
    • 開通処理と同時に、WiMAXを解約。WiMAXはWebで申し込みして、Webでそのまま解約出来たので良かった(電話でしか解約を受け付けないNTTフレッツは本当にめんどう)
  • 開通してから速度測定もやってみたら、夜間で最低200Mbps程度は出るので非常に優秀だなと思った
    • そして、早朝で混雑していない時間帯という条件下ではあるものの、無線で1Gbpsを超えたのは初めて見た
  • 2ヶ月ほど使ってみて、混雑する昼や夜であっても下り300〜600Mbps程度は出ており、満足している

ProxmoxでTerraformを使う

大まかな流れ

  1. Proxmoxホストで、Terraform用のユーザ/ロールの作成&APIトークンの作成
  2. Terraformのインストール
  3. テンプレートVMの準備
  4. Terraformファイルの準備&実行

Terrform用ユーザ/ロールの作成

”Docs overview | Telmate/proxmox | Terraform | Terraform Registry”: https://registry.terraform.io/providers/Telmate/proxmox/latest/docs

Terraformのセットアップは、公式ガイドの通りなんだけど、ちょっと分かりづらかったので整理しておく。

  • Terraformを使う事前準備として、Proxmoxのユーザ管理コマンドpveumを使って、Terraformで使用するためのロールとユーザを作成する
## ロールの作成
pveum role add TerraformProv -privs "Datastore.AllocateSpace Datastore.AllocateTemplate Datastore.Audit Pool.Allocate Sys.Audit Sys.Console Sys.Modify VM.Allocate VM.Audit VM.Clone VM.Config.CDROM VM.Config.Cloudinit VM.Config.CPU VM.Config.Disk VM.Config.HWType VM.Config.Memory VM.Config.Network VM.Config.Options VM.Migrate VM.Monitor VM.PowerMgmt SDN.Use"
## ユーザの作成と確認
pveum user add terraform-prov@pve --password Passw0rd!
pveum aclmod / -user terraform-prov@pve -role TerraformProv

## ロールとユーザの確認
pveum role list
pveum user list

次に認証用のAPIトークンを作成する。TerraformでProxmoxのAPIを叩くためには、パスワード認証とAPIトークンによる認証の2つがあって、今回はAPIトークンを使う。

  • APIトークンは、Proxmoxの管理画面から作成できる
    • Datacenter -">> Permisson -">> API Token
    • このとき「PriviledgeSeparation」のチェックは外す

Terraformのインストール

  • Terraformは、Proxmoxホストでは無く、クライアント端末にインストールする。そしてAPIを使ってProxmoxを利用する形
  • インストール方法は、公式サイトを参照してほしい

developer.hashicorp.com

テンプレートVMの作成

今回は、Proxmox上に予め用意したテンプレートVMから、新しいVMをTerraformで作成する。なので、まず指定する仮想マシンテンプレートをProxmoxに登録する。

  • テンプレートVMの用意は、ゼロから新しいVMを作ってテンプレートVMに変換する方法と、クラウドイメージを利用する方法があり、簡単のために今回はUbuntuクラウドイメージを使うことにする
  • 下記URLからProxmoxホストのローカルディスクにダウンロードしてくる
  • このimgファイルをインポートしてテンプレートVM(ID 9100)を作成してみると、失敗する
## これは失敗する
qm disk import 9100 noble-server-cloudimg-amd64.img proxthin
Configuration file 'nodes/pve/qemu-server/9100.conf' does not exist
  • テンプレートVM(ID 9100)の設定ファイルが存在しないという話。なので、VMの”箱”を作ってあげる必要がある
  • 管理GUIから作成してみる。このとき、ProxmoxのVM作成ウィザードで表示されるデフォルトの仮想Disksは削除してVMを作成する
  • そして、用意したクラウドイメージをそのVM(9100)にアタッチしてあげる
root@pve:~# qm disk import 9100 noble-server-cloudimg-amd64.img proxthin --format qcow2
importing disk 'noble-server-cloudimg-amd64.img' to VM 9100 ...
format 'qcow2' is not supported by the target storage - using 'raw' instead
  Logical volume "vm-9100-disk-0" created.
transferred 0.0 B of 3.5 GiB (0.00%)
transferred 3.5 GiB of 3.5 GiB (100.00%)
Successfully imported disk as 'unused0:proxthin:vm-9100-disk-0'
  • 最後に、管理GUIを開いて、9100のVM画面から"More"メニューからテンプレートに変換する
  • この手順は、CLIGUIを行ったり来たりしてるので、GUIだけ、もしくはCLIだけで操作出来ると良いのだけど・・・

Terraformファイルの準備

  • 次に、作成したテンプレートVMから仮想マシンを作成するために、Terraformに渡すタスクファイルを作成する必要がある
  • tfファイルに記載するパラメータの詳細は以下の公式サイトを参照してほしい

以下のファイルを「create-vm.tf」ファイルとして用意する。途中、値が埋め込まれているので、自身の環境に応じたパラメータに変更してあげる必要がある

variable proxmox_token_id {}
variable proxmox_token_secret {}

variable cores {}
variable memory {}
variable disk_size {}

terraform {
  required_providers {
    proxmox = {
      source  = "Telmate/proxmox"
      version = "3.0.1-rc4"
    }
  }
}

provider "proxmox" {
  pm_api_token_id = "${var.proxmox_token_id}"
  pm_api_token_secret = "${var.proxmox_token_secret}"
  pm_api_url = "https://172.16.1.3:8006/api2/json"   ## デプロイするノード名のIPアドレスに変更する
  pm_tls_insecure = true
}

resource "proxmox_vm_qemu" "clone-vm" {
  name = "clone-vm"
  target_node = "prx01"  ## デプロイするノード名に変更する
  clone = "al8"  ## 使用するテンプレート名に変更する
  full_clone = true
  os_type = "cloud-init"
  scsihw = "virtio-scsi-pci"

  cores   = "${var.cores}"
  memory  = "${var.memory}"

  disk {
    slot = "scsi0"
    storage = "data"
    type = "disk"
    size = "${var.disk_size}G"
  }
  boot = "order=scsi0;net0"

}

同様に、以下を「create-vm.tfvars」ファイルとして作成する。

proxmox_token_id = "<your token id>"
proxmox_token_secret = "<your token secret>"
cores = 4
memory = 4096
disk_size = 32

実行

まずtfファイルを用意したディレクトリで、terraform initを実行する

╰─$ terraform init                                                                                                                                                                               1 ↵
Initializing the backend...
Initializing provider plugins...
- Finding telmate/proxmox versions matching "3.0.1-rc4"...
- Installing telmate/proxmox v3.0.1-rc4...
- Installed telmate/proxmox v3.0.1-rc4 (self-signed, key ID A9EBBE091B35AFCE)
Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
  • Terraform has been successfully initialized!と出力されていればOK
  • 次に、planで実行に問題がないか確認してみる
    • terraform plan -var-file="create-vm.tfvars"
  • 特に問題がなさそうであれば、applyする。途中で、実行するかどうか確認があるので「yes」を入力して実行する
    • terraform apply -var-file="create-vm.tfvars"
  • 少し待って以下のようにCreation completeとなればOK
  Enter a value: yes

proxmox_vm_qemu.clone-vm: Creating...
proxmox_vm_qemu.clone-vm: Still creating... [10s elapsed]
proxmox_vm_qemu.clone-vm: Still creating... [20s elapsed]
proxmox_vm_qemu.clone-vm: Still creating... [30s elapsed]
proxmox_vm_qemu.clone-vm: Still creating... [40s elapsed]
proxmox_vm_qemu.clone-vm: Creation complete after 41s [id=prx01/qemu/102]

Proxmox側でVMが作られていて、無事にOSが起動していればOK
作ったVMを削除する場合は、以下のコマンドを実行すれば良い
- terraform destroy -var-file="create-vm.tfvars"

今回は、以上。