Pandora Pocket

IT系と日常系の備忘録。三日坊主。

元々はWordPressで運用していたこのブログ。
その後ブログだけのためにVPSを運用するコストが高すぎてはてなブログに移行し、そして静的サイトジェネレータを利用したブログ構築が流行り始めたのでその波に乗ったのが3年ちょっと前。

はてなブログ Pro、機能的には申し分なくて便利に利用していたのですが、月額利用料金がそれなりのお値...
[はてなブックマークで表示]

以降ブログ更新が捗るか・・・といえばそうでもなく、中途半端にOEmbed対応した結果、ブログのビルドに10分近くかかってしまう(並列処理できてなかった)問題がありました。
後で直そうと思っていたもののずっと放置していたのですが、久しぶりに(1年ぶりに)ブログを書こうかと思ってみたら、エントリをGitHubにプッシュした後に動作するGitHub Actionsでエラーが。

ずっと放置していた関係で.NET SDKのバージョン指定が古く(.NET5だった)、処理不能になっていたのが原因だったんですが、それだけでなく指定されたURL遷移先がエラーだった場合のOEmbedの処理がよろしくなくて動作不全を起こしていることも発覚。

仕方がないので重い腰を上げて書き換えることに。

続きを読む

SSHの秘密鍵、皆さんどうやって管理されてるんでしょう。

私はこれまで秘密鍵についてはCryptmatorを使って暗号化したうえでOneDriveに保存するようにしていました。
これだと複数マシンで楽に利用できますし、Cryptmatorの仮想ドライブ機能で復号したファイルを参照できるのでいちいちファイル暗号化、復号を行う必要がないわけです。

ここ数年はこれで問題なく運用してきましたし、別にこれで困ったことはありません。

ただ、普段パスワード管理で利用している1PasswordにSSHエージェント機能が搭載され(2022年のv8.6で)、わざわざ秘密鍵をファイルとして管理しなくとも、統一的かつ安全に管理することができるようになったので、重い腰を上げてそちらに置き換えることにしました。

続きを読む

これまでRaspberryPi上にISC DHCPをインストールして自宅内DHCPサーバーを運用してたんですが、USBメモリーブートのRaspberryPiだと長期間運用が厳しく、かといってこのためだけにUSB接続のSSDを導入するのももったいない。
今回仮想化プラットフォームのProxmoxを導入したので、この機会に環境を一新。

今回はただDHCPサーバーを構築するだけだとつまらない(?)ので、

  • DHCP機能
  • DNS機能
  • 広告ブロック機能
  • VPN機能

を持ったサーバーを立ち上げることに。

というわけで、AdGuard HomeをインストールしてDHCP、DNS、広告ブロックを行いつつ、Tailscaleで自宅の外から広告カットできるVPN接続を行える環境構築。

続きを読む

今回構築したProxmoxマシンは録画マシンも兼ねているため、大容量HDDを直接VMから読み書きできるようにしたい。

VMware ESXiの頃はRDMの設定を行って直接読み書きできるようにでき、10年近く前にブログ記事にまとめていた。

一年前にESXiサーバーを構築し、録画サーバーを仮想マシンとして運用しているのですが、録画ファイルを...
[はてなブックマークで表示]

Proxmoxでも同じように設定できたので覚書き。

続きを読む

ProxmoxではKVMを利用した仮想マシン作成だけでなく、LXCコンテナの作成も可能。

LXCはまるで仮想マシンのようにそれぞれのコンテナ単位で独立したOSをインストールして構築するわけではなく、一つのLinuxカーネルを利用して複数の独立した環境を作ることができるため、リソースの消費が少ないのが特徴。
またDockerとは違い1コンテナ当たり1プロセスというわけではないので、複数のプロセスを同時に動かせることがメリット。

Dockerはアプリケーションの隔離環境で、LXCは軽量な仮想マシン環境というイメージ。

続きを読む

これまでVMWare ESXiを利用して仮想環境を構築していたんですが、

  • ESXi 7.0からRealtekのNICドライバがインストールできない
    • 正確にはこれまでコミュニティが提供していたが、最新のドライバ形式に対応できない
  • 無償ESXiはTPM対応ができないか、手段が複雑

という問題があり、また今後も継続的に無償で使うことができない可能性も否定できないこともあり、そろそろ別の仮想化ソリューションを検討したいなぁと。

そんなわけでいろいろ調べたところ Proxmoxというソリューションが大変よさげだったので導入しました。

なお、今回は一旦ESXi上で作っていた仮想化環境をすべてふっ飛ばして一から作ることにしたので移行作業はなし。

続きを読む

Windows 11の再インストールをする際、OOBE画面の操作でいちいちUSB接続のマウスを使う必要があるのは面倒だなぁと思っていたところ、知り合いから良い方法を教えてもらったのでメモ。

OOBE画面では Shiftキーを押しながらF10を押すとコマンドプロンプトが起動する。

コマンドプロンプトで start ms-settings: を実行すると、Windowsの設定画面が表示されるので、あとは頑張ってキーボードでBluetooth接続すればOK。

ネットワークを切断した状態でOOBE画面を進めることができる oobe\bypassnro も別途覚えておくとローカルアカウントでセットアップしたいときに便利。

ウェブサイト構築中にちょっとはまったのでメモ。

Formタグの中にSubmitを行うボタンをおけない場合、 input="submit" のボタンをFormタグ内にhidden状態で記載し、Formの外のボタンを置きたい場所にラベルタグとfor属性を利用してボタンを設けるという方法がありますが、これだとEnter押下時にSubmitが走ってしまうという問題があったため、 HTMLFormElement.submit()を利用して回避。

ただ、これはMDNにも記載されている通りsubmitイベントが発生せず、制約検証も行われない問題が。

HTMLFormElement.reportValidity()

HTML5.1から HTMLFormElement.reportValidity() という制約検証を行うための機能が追加されてた模様。知らなかった・・・。

これを HTMLFormElement.submit() 実行前に呼び出して結果が true だった場合にだけsubmit処理させるようにしてやればOK。

reportValidity() はエラーが存在する場合、required などの制約検証に対するメッセージが該当のフォーム要素に表示されるそう。

似たようなもので checkValidity() があり、こちらは制約検証結果をtrueかfalseかで返すだけ。エラーメッセージは表示されないので、独自にメッセージを調整したい場合などには有用。