zaki work log

作業ログやら生活ログやらなんやら

Linux

Buildahを使ったマルチアーキテクチャイメージのビルド

試してみたら意外と簡単だったので、メモるほどでもないけど(と最初は思ったけど環境によっては追加パッケージが必要なので)記録として。 TL;DR 概要 Buildahでビルドとプッシュ イメージのビルド基本 アーキテクチャを指定したイメージビルド マルチアーキ…

Linuxで6分29秒とか12分16秒とか1時間11分3秒スリープしたいときどうしてる?

TL;DR 6分29秒: sleep 6m 29s 12分16秒: sleep 12m 16s 1時間11分3秒: sleep 1h 11m 3s すでにこれ実行してる人は以降を見る必要ないです。 解説? 自分の中でこれまでsleepコマンドっていうと「引数の数値(integer)の秒数スリープするコマンド」って認識…

[Proxmox / Terraform] Cloud-initのパッケージインストール等を併用したVMプロビジョニング (bpg/proxmoxプロバイダ)

先日telmate/proxmoxプロバイダを使ったProxmoxのTerraformによる自動化を試したが、Cloud-initの自由度に難易度があり、いろいろ調査した結果、TerraformのProxmoxプロバイダっていろいろあって、試した中ではbpg/proxmoxプロバイダの使い勝手がよかったの…

miseを使ったPerl開発環境

個人開発で標準に入ってないPerlモジュールを使うコードを書こうとしたときに、ふとmiseで環境構築できるかな?と思って試してみた。 要件としてはユーザー権限で追加のモジュールを、ユーザーグローバルでなく指定のディレクトリ(アプリのプロジェクト用デ…

[Proxmox VE] Terraformを使った設定済みVMプロビジョニング (telmate/proxmoxプロバイダ)

2025.11.08:再実行時の変更について追記 2025.11.24:proxmox_cloud_init_diskリソースを使ったCloud-init設定と、bpg/proxmoxプロバイダについて追記 クラウドイメージのテンプレートとcloud-initを使ったProxmoxでの設定済みVMのプロビジョニングや、それ…

[mise] 環境変数などにコマンドの実行結果をセットする

miseの環境変数などの定義のテンプレート定義には関数があり、その中のexec(command)を使えばコマンドの実行結果を参照できる。 お題 例として、以下のようなTerraformの変数ファイルがあるとして、サーバーアドレス部分("192.168.1.89")を環境変数としても…

miseでffmpegを入れる場合はバイナリインストールでなくビルドが行われるのでgccなどが必要 (追記:最新8.0も可)

miseでffmpegをインストールする場合依存するあれやこれやが必要だったのでメモ。 エラー gcc nasm ビルドとインストール 追記:ver8.0 環境 コメント 参考 エラー 無邪気に入れようとすると、以下のようにエラーになる [zaki@fedora-dev ~]$ mise use ffmpe…

Proxmox VE(2ノードクラスタ)の8から9へのアップグレード

今月に入ってPVEのver9がリリースされていたので、個人環境をアップグレード。 www.proxmox.com pve.proxmox.com 7から使ってると対象外だが、8を新規インストールしたノードだと事前チェックでエラーがあったりしたので、ひとまず作業内容のまとめ。 基本的…

ラズパイへのSSH接続が「set_sock_tos: set socket 3 IP_TOS 0x48」で停止したときの回避策

Raspberry PiのSSHサーバーにいつの間にか接続できなくなってたので調査。 結論から言うと、クライアント側に IPQoS=none の設定を加えればOK 現象 SSH接続しようとすると応答がなくタイムアウトする。 -vvvを付与してログを確認すると、以下の出力のタイミ…

[Linux / systemd] OS起動時に1回だけコマンド実行する

systemdを使ってOS起動時にコマンドをワンショット実行するには、Type=oneshotを指定し、ExecStartに実行したいコマンドを指定すればだいたいOK 基本形 [Unit] Description=my one shot service sample After=network.target [Service] Type=oneshot ExecSta…

[Linux] AWKで正規表現置換

コマンドの出力を正規表現使って文字列置換するならsedを使うことは多いけど、行ごとに処理するだけで「前の行の情報」などどうだったかとかの状態を維持する仕組みが(たぶん)ないので、例えば「特定の文字列パターンを正規表現で処理しつつ連番を振る」がse…

[AWS] EC2のストレージ(EBS)を手動で拡張する手順 (RHEL)

年に1回くらい作業中にストレージが足りなくなってその都度手順を確認してるので備忘録。 docs.aws.amazon.com 基本的にAWSのドキュメント通りの手順で何も問題なくリブートも不要でサイズ拡張できる。 before ブロックデバイスを拡張 パーティションを拡張 …

[Ansible] 別ユーザー(非root)権限でのタスクの実行 (become)

Ansibleでroot権限でタスクを実行したい場合はbecomeキーワードを使えばいいが、本質的にはこの仕組みは任意のユーザー権限でタスクを実行するもの。 root権限で処理されるのは、いくつかの関連パラメタを省略するとデフォルトでroot権限で動くようになって…

Ubuntu版FortiClientを使ってCLIでVPN接続

Windows版だと(特に業務で)割とよく使ってると思うFortiClient、公式でLinux版もリリースされているのでUbuntuで接続を試してみた。 www.fortinet.com Ubuntuは22.04向けの手順だが24.04でも全く同じ手順でインストール可能。 他にはCentOS 7+ / RHEL7+ / Fe…

[Proxmox VE] AnsibleプレイブックでPVEのVM作成やクローンをより効率化する (community.general)

AnsibleのCommunity.GeneralコレクションにはProxmoxVEを操作するためにモジュールがいくつか含まれており、これを使ってVMを作ったり、作成済みテンプレートからクローンしたりできる。 特にクラウドイメージを使ったVMのクローンにおける追加パッケージイ…

[Proxmox VE] 複数のPVEノードでクラスタを構築しゲストVMのマイグレーションを試す

年末に衝動的にデスクトップ用途のPCを購入し、それまで使っていた「最初はESXiを入れてたけど新PCのProxmox VEに移行したため(それ以前のPCはwin10からアップグレードできなかったので)Windows11で使ってたIntel NUC」が再び役割を終えて部屋のオブジェにな…

SSH秘密鍵のパスフレーズを変更(セット / 解除)する小ネタ

TL;DR 以下のコマンドで、対象の秘密鍵のパスフレーズを変更できる。 空入力すればパスフレーズ無しになる。 ssh-keygen -f <秘密鍵のパス> -p 確認のログ パスフレーズのセット パスフレーズが設定されてない秘密鍵でsshログインする。 zaki@cloud-dev2:~$ …

Pythonインタプリタを入れるために開発環境セットアップツールのmiseを使ってみた

以前はpyenvを使ってPython実行環境をセットアップしたりしてたが、Pythonをビルドするところから始めるために必要なdev系パッケージが必要だったり、そのために管理者権限が必要だったりするので、もっと他に手軽な方法が無いか調べたところ、asdfやmiseが…

古いバージョンのDockerをインストールする

事情によりクローズドな環境などで古いバージョンのDockerを運用で使い続けている中で、その調査・検証用に同じバージョンのシステムを構築したくなった、とか。 基本的には、古いパッケージファイルを探してきて手動(rpmやdpkg)でインストールすれば良い。 …

[cloud-init] /etc/hostsを手動で編集してもリブートすると復元されてしまう場合の対処

普通にISOからインストールした環境でなく、クラウドイメージなどからcloud-init使ってプロビジョニングしたOSの場合、/etc/hostsファイルは外部管理となって直接編集してもOS起動時に所定の内容に上書きされる。 平たく言うと、以下の仕掛けで作った環境で…

[Git] SSHサーバーとGitコマンドのみで構築するGitリポジトリサーバー

ユースケースとしてはコンピュートリソースが乏しいクローズドな環境でGitリポジトリサーバーの用意・利用が困難な場合に、gitコマンドでベアリポジトリを作ればSSHサーバーが動作している普通のLinuxを簡易的なGitリポジトリサーバーとして利用する、など。…

dnf updateでGPGの期限切れエラーになったときの対処方法

メインマシンのFedoraのパッケージアップデートでkubectlの更新がエラーになったのでその対処方法についてメモ。 最初の頃は登録が少なかったヘイシャアドカレのいつのまにか全部埋まってたので特に何も紐づけずに公開(笑) 初期状態 コマンドバージョン アップデ…

SSHの秘密鍵から公開鍵を生成する (小ネタ)

たとえばプロジェクトで共有の秘密鍵(というのも微妙だけど)はあって、それを使ってアクセスしたいホストがあるけど公開鍵がない、みたいな場合。 ssh-keygen -yコマンドを使って、秘密鍵から公開鍵を生成できる。 実行するコマンドは以下 ssh-keygen -y -f …

Caddyコンテナでローカルに自己署名の検証用途などのHTTPSサーバーをシュッとたてる

ローカルでの検証などで、静的なweb系のファイルアクセスをオレオレな証明書で構わないのでHTTPSで行いたいとき、nginxやApacheでやろうとするとダミーのSSL証明書を作成する必要があって若干面倒です。 そんなときはDocker版Caddyの自動HTTPS機能のlocal HT…

[rsyslog] タイムゾーンが異なるリモートからのログ受信時にローカルの時刻で記録する (RHEL/Ubuntu)

リモートのrsyslogへのログ転送は、ログ情報としてはタイムゾーンは持っていないため、例えば日本時間4月30日の20時に、JSTに設定されているrsyslogサーバーへ、UTCのシステムからログを送信すると、9時間ズレて11時のログとして記録されてしまう。 手っ取り…

[Proxmox VE] Cloud-Initのvendorデータを使ってサブスクリプション済みRHELのVMをサクッと作成する

Proxmox VEのWeb UIから設定できるCloud-Init項目は以下の通りで、最低限必要な設定はできるけど、追加パッケージの指定とかがデフォルトでは現状できない。 ユーザ パスワード DNSドメイン DNSサーバ SSH公開鍵 プロビジョニング時のパッケージアップグレー…

[Proxmox VE] テンプレートとクローンとCloud-Initを使ってVMをサクサクシュッと生やす (Fedora / Ubuntu)

Proxmox VEには、VMのテンプレート化とクローン機能があり、さらにCloud-Initを使って初期設定込みで簡単にVMをプロビジョニングできる機能がある。 もうすぐFedora40やUbuntu 24.04がリリースされそうなので、その時にサラサラとテンプレート作成できるよう…

Proxmox VEのVMのIPアドレスをサマリーに表示する

特にESXiから移行したVMなんかで表示されない「サマリー画面」のIPsですが、次の2点を対応すればVMのIPアドレスが表示されます。ほぼ小ネタ。 1. VMオプションの「QEMU Guest Agent」の有効化 [オプション]->[QEMU Guest Agent]の値がデフォルトは無効になっ…

Proxmox VEのweb管理画面にCPUの温度を表示する

去年の春に構築して灼熱の夏は無事に乗り越えたMINISFORUM NAB6だけど、以前使ってたIntel NUC(現在win11が入ってる)はちょいちょい熱暴走起こしてたので、念のために簡単にモニタリングできるようにしてみた。 2024.04.01 パッケージバージョンアップで変更…

[Ansible / AAP / AWX] EEのコンテナイメージ作成にAnsible Builderは必ずしも必要ないかを確認してみた (小ネタ)

AAPやAWXでジョブ実行に必要なExecution Environments(EE)を作るために通常はAnsible Builderを使ってコンテナイメージをビルドするが、要件を満たせばDockerfileを直接書いて自前でビルドしても動くのでは…と思ったので確認してみた。 結論としては、以下が…