2025-01-01から1年間の記事一覧
個人開発で標準に入ってないPerlモジュールを使うコードを書こうとしたときに、ふとmiseで環境構築できるかな?と思って試してみた。 要件としてはユーザー権限で追加のモジュールを、ユーザーグローバルでなく指定のディレクトリ(アプリのプロジェクト用デ…
ドキュメントの通りに設定すればPrometheusでAWX/AAPのメトリクス情報を監視できる。 とりあえずモニタリングの設定のみ。アラートはまたそのうちどこかで。。 docs.redhat.com Prometheus設定 (prometheus.yml) scrape_config配下に、この設定を追加 - job_…
クラウドイメージのテンプレートとcloud-initを使ったProxmoxでの設定済みVMのプロビジョニングや、それをAnsibleで自動化するというのは以前にやってたけど、それをより宣言型になるようTerraform対応ってのはやるやる詐欺のまま放置したまま… ただ最近仕事…
postgresコンテナのデータを永続化するにはボリューム指定するのが定石だけど、うっかりしてコンテナ再作成後にデータが消えていた場合のサルベージ方法について。 ちなみにアプリの都合でpostgres:12を使ってるけど、2024年にサポート終了してるのね。本文…
miseの環境変数などの定義のテンプレート定義には関数があり、その中のexec(command)を使えばコマンドの実行結果を参照できる。 お題 例として、以下のようなTerraformの変数ファイルがあるとして、サーバーアドレス部分("192.168.1.89")を環境変数としても…
miseでffmpegをインストールする場合依存するあれやこれやが必要だったのでメモ。 エラー gcc nasm ビルドとインストール 追記:ver8.0 環境 コメント 参考 エラー 無邪気に入れようとすると、以下のようにエラーになる [zaki@fedora-dev ~]$ mise use ffmpe…
今月に入ってPVEのver9がリリースされていたので、個人環境をアップグレード。 www.proxmox.com pve.proxmox.com 7から使ってると対象外だが、8を新規インストールしたノードだと事前チェックでエラーがあったりしたので、ひとまず作業内容のまとめ。 基本的…
Raspberry PiのSSHサーバーにいつの間にか接続できなくなってたので調査。 結論から言うと、クライアント側に IPQoS=none の設定を加えればOK 現象 SSH接続しようとすると応答がなくタイムアウトする。 -vvvを付与してログを確認すると、以下の出力のタイミ…
おそらくpipxやuvを完全に理解したらもっと良い構成にできるかもしれないけど、今はこれが精一杯。 miseで直接ansibleやansible-coreをインストールできるけど、依存してるPythonパッケージが必要な場合にどうすればいいかわからなかったため、従来通りpipで…
教訓として、k3sのHelmChartを使って標準でインストールされるコンポーネントをHelmChartConfigで設定上書きする場合、特段の事情がない限りはイメージバージョンをカスタムしないのが吉。 k3sをv1.30から(1.31, 1.32を経て)1.33までアップグレードしたとこ…
miseはmise.tomlファイルのあるディレクトリあるいはそのサブディレクトリへ移動すると、mise.tomlファイル内の定義が使用される。 その際、Pythonのvenvを作る仕組みも用意されており、以下の手順を定義ファイルだけで実現できる。 指定ディレクトリへ移動…
デプロイ済みリソースのアノテーションを編集する必要があって操作方法を調べてみたけど、ラベルの編集と全く同じだった。 ラベルの編集は5年前に一度エントリ作っていたので、アノテーションについてもとりあえずメモ。 before $ kubectl describe -n loggi…
PythonでJSONデータを扱ういろいろのメモ オブジェクト -> JSON文字列 / json.dumps() 人が読みやすいJSON文字列 日本語(非ASCII)を含む場合のエスケープ抑止 オブジェクト -> JSONファイル / json.dump() JSON文字列 -> オブジェクト / json.loads() JSONフ…
systemdを使ってOS起動時にコマンドをワンショット実行するには、Type=oneshotを指定し、ExecStartに実行したいコマンドを指定すればだいたいOK 基本形 [Unit] Description=my one shot service sample After=network.target [Service] Type=oneshot ExecSta…
知ってれば何てことないんだけどプチはまりで時間をだいぶ溶かしてしまったので備忘録。 というか.dockerconfigjsonであれば以下の通り。 kubectl get secret ecr-credential -o jsonpath='{.data.\.dockerconfigjson}' | base64 -d ドットを含むキー名に含…
以前まとめた以下の「テンプレートの作成」をAnsibleで自動化する、という話。 zaki-hmkc.hatenablog.com 作業するのは年に数回なんでいつも心温まる手作業だったけど、コマンドの実行回数が6回くらいあってさすがに回を重ねるとダルくなってきたため、シェ…
コマンドの出力を正規表現使って文字列置換するならsedを使うことは多いけど、行ごとに処理するだけで「前の行の情報」などどうだったかとかの状態を維持する仕組みが(たぶん)ないので、例えば「特定の文字列パターンを正規表現で処理しつつ連番を振る」がse…
AWX/AAP上にジョブテンプレートのスケジュールを定義するこんなplaybook - name: create schedule awx.awx.schedule: name: sample job template schedule unified_job_template: sample job template rrule: "{{ query('awx.awx.schedule_rruleset', start_…
検証用などでリモートにSSHサーバーが必要な際に、linuxserver/openssh-server のコンテナを使うと簡単に準備できる。 github.com 認証情報やrootへの昇格設定をすべて環境変数でセットできるためアクセス方法の自由度が高いのが特徴。たぶん。 ベースはAlpi…
オンラインで使えるSaaSのホワイトボードアプリというとMiroなんか有名だが、ここでは似たようなホワイトボードアプリをローカルで動かす類似のアプリについて紹介。 miro.com 探してみたらourboardというMITライセンスのソフトウェアがあり、Dockerイメージ…
NetBoxのダイナミックインベントリは以前さわったときに使い方を以下にざっくりまとめてた。 zaki-hmkc.hatenablog.com 今回はインベントリファイルというより接続情報の書き方についておさらい。 基本的な書き方 環境変数を使った外部からの変数指定 AWX/AA…
年に1回くらい作業中にストレージが足りなくなってその都度手順を確認してるので備忘録。 docs.aws.amazon.com 基本的にAWSのドキュメント通りの手順で何も問題なくリブートも不要でサイズ拡張できる。 before ブロックデバイスを拡張 パーティションを拡張 …
以前まとめた以下の「[AWX / AAP] ジョブの実行をリモートのKubernetesクラスタで行う」内容はwebのUIで手動で設定するものだったが、本記事ではこの設定操作をplaybookで自動化する方法についてのメモ。 zaki-hmkc.hatenablog.com 大きな流れとしては以下の…
「コールするたびに処理に必要な変数を返す関数があり、その戻り値がなくなるまで繰り返し処理をする」ということをしたいとき、C/Perl/Javaあたりで育った自分的には真っ先にwhileの条件式でそのまま代入したくなる。 while (val = get_hogehoge()) { /* * …
去年同じようなことをした際は、読み込む側でimport・読み込まれる側でexportを指定したうえで、htmlで<script src>する際はtype="module"を付与していた。 で、これをやるとDOM操作で任意のタグにonclick="..."を指定しても関数が見つからないというスコープが変化する…
zaki-hmkc.hatenablog.com 昨年末にHelm版の存在に気づいて試したときはリポジトリを追加する手順がなくいきなりhelm installを実行する方式だったけど、改めて公式サイトを見てみるとリポジトリのURLなど一般的なHelmチャートインストールと同じ内容になっ…
C/Java/Perlとかで育ってるとPythonの構文はときどきギョッとすることがあって、その一つがループのelse節だったりして調べても割とすぐ忘れてしまうので、備忘録としてインパクトあるタイトルを付けたのでこれでもう大丈夫。たぶん。 TL;DR 使いどころ リス…
Ansibleでroot権限でタスクを実行したい場合はbecomeキーワードを使えばいいが、本質的にはこの仕組みは任意のユーザー権限でタスクを実行するもの。 root権限で処理されるのは、いくつかの関連パラメタを省略するとデフォルトでroot権限で動くようになって…
Ansibleでタスクを実行するリモートホストで追加のPythonパッケージが必要な場合に、プレイの中でまずpipでパッケージを入れるタスクを実行した上で依存パッケージが必要なタスク実行を一気通貫で処理する、というもの。 ありがちな例としては、ローカルホス…
他のディストリビューションだとpython3-pipパッケージをインストールすればvenvなどの仮想環境無しでもpipを使ってPythonパッケージやコマンドをインストールできるが、Ubuntu 24.04はpython3-pipパッケージがなく (4/27 訂正: apt-get updateしたらpython3…