zaki work log

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

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

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

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

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

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

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

[Proxmox VE] PVEホスト名の変更

年末にデスクトップPCを衝動的に購入してそれまで使っていたIntel NUC(元ESXi -> win11)がまた余ってしまい、それならProxmoxでクラスタを組んでみるかと思ったので、準備としてホスト名を整理することにした。 平たく言うとデフォルトのpveでセットアップし…

[K3s] opensslで用意した自前のサーバー証明書でTraefik Ingress Controllerを運用する設定

K3sインストールで標準でついてくるTraefik Ingress Controllerは、デプロイしたPodへ簡単にHTTPSアクセスを実現できるので大変便利です。 デフォルトではダミーの証明書が使われるので、プライベート環境などであれば証明書エラーを無視して運用するという…

[K3s] 手動のクラスターアップグレード備忘録

ドキュメント通りなので特に問題ないけどメモとして残してなかったので一応。 docs.k3s.io 概要 ポイントは「インストールした時と同一のオプションで」再度インストールスクリプトを実行すればOK たとえば使用するIPアドレスなどを指定してインストールした…

[NetBox on arm64 K3s] NetBox公式のHelmチャートを使ったKubernetesへのデプロイ

しばらくキャッチアップしてなかったNetBox、職場のチームの周りでNetBoxを使ったあれやこれやがにぎわってたのでなんとなく検索してみたら、いつのまにか公式でHelmチャート版が出てたのを見つけたので試してみた。 本記事ではNetBoxをデプロイして外部から…

[Bluesky / TOKIMEKI] もっとときめくためのChrome拡張

本エントリは「Bluesky Advent Calendar 2024 - Adventar」の10日目のエントリです。 Chromeブラウザでweb版TOKIMEKIを使ってる方、webページ見てるときにBlueskyのリンクを開くと「これ、TOKIMEKIで開けたらいいのに…」と思いつつアドレスバーのURLを手入力…

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

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

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

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

[Terraform] HashiCorp Configuration Language(HCL)コードのドキュメンテーションとGitHub Actionsで自動化 (terraform-docs)

本エントリは「エーピーコミュニケーションズ Advent Calendar 2024」の2日目のエントリです。 TerraformのコードのREADME作成時に何かいいのが無いか調べてみたらterraform-docsというプロダクトを見つけたので、使い方について簡単にまとめました。 github…

[Hahicorp Vault] K3sにデプロイするときの公開設定のHelmチャート (Ingress/LoadBalancer)

K3sは標準でIngressもLoadBalancer Serviceもどちらも使える。 VaultデプロイのHelmチャートのパラメタはそれぞれ異なる場所にあるのでメモ。 Ingress LoadBalancer Service Ingress K3sはTraefik Ingress Controllerが標準でインストールされる。 Vaultデプ…

[html/css] 使用するCSSファイルをJavaScriptを使って動的に切り替える

WebアプリのスタイルをテーマごとにCSSファイルで定義し、設定画面のフォーム操作などで使用するCSSファイルを切り替えてスタイルを更新する、というのをできるか試してみたところDOM操作で普通にできたので、そのやり方について。 通常のCSSファイル指定 通…

[JavaScript / Python] 配列内に指定の要素が含まれるかどうかをチェック (備忘録)

よく使うけとすぐ忘れるので。 JavaScript 基本構文 例:httpステータスチェック Python 基本構文 例:httpステータスチェック 辞書の場合 集合(追記) JavaScript includesを使う。 developer.mozilla.org 基本構文 array.include(item); 例:httpステータス…

[Terraform / AWS] externalデータソースを使った外部コマンド実行でセキュリティグループに自分のIPアドレスをセットする

Terraformで環境を作成する際のアクセス元IPを設定したい場合に、AWSのwebポータルだと「マイIP」でアクセス元グローバルIPを簡単にセットできるけどTerraformなどは機能として提供されてなさそうだっため、事前にアドレスを取得してそれをセットするという…

[ブラウザJavaScript] クリップボード操作 (テキストのコピー/ペースト)

developer.mozilla.org 基本的にサンプルコード通りで動作した。 クリップボードへのテキストコピー HTTPの場合 動的に動作を変えるには ペーストの場合 動作環境 クリップボードへのテキストコピー テキストをクリップボードへコピーするのは簡単で、以下の…

[Terraform / AWS] Data Sourcesでデフォルト(メイン)のルートテーブルを参照する

VPCの作成を行うコードからそのままデフォルトのルートテーブルを使いたい場合は何も問題ないけど、VPCは作成済みで、そのデフォルトのルートテーブルを使いたい場合にプチはまりしたのでその備忘録。 Resourcesで実装する元のコード Data Sourcesの場合 ass…

[Ansible] password_hashフィルター使用時はpasslibパッケージを入れておく

Ansibleクックブックの「2-3-3 パスワードをハッシュ化する」にも載っているpassword_hashフィルターで発生したエラーについて簡単にまとめ。 docs.ansible.com Ansible10 (ansible-core 2.17)の場合 Ansible9 (ansible-core 2.16)の場合 どういうこと? 環…

[ブラウザJavaScript] htmlから<script src>したJavaScriptでさらにimportするときのエラーと対処法

htmlファイルから<script>でJavaScriptのソースコードを読み込み、そこから更にimportで外部ファイルに実装した処理を読み込みたい、という構成で数日ハマったのでメモ。 html/javascriptコード (before) エラーと対応 Cannot use import statement outside a module…

[JavaScript] URLSearchParamsを使ったクエリ文字列の解析

URL中のQuery StringはURLSearchParamsを使って簡単にparseできる。 developer.mozilla.org const param = new URLSearchParams(('key1=%E3%82%AD%E3%83%BC1&key2=%E5%80%A41')); なお、URLデコードも自動で行われる。 値の参照 これはキーが分かってる場合…

[K3s] 設定ファイルを使ったインストール時のパラメタ指定

K3sのインストール時にコマンドラインオプションや環境変数でパラメタをいろいろ設定できるが、数が多くなると見通しが悪くなりメンテ性も落ちる。 そんな時は設定ファイルにパラメタを指定すれば管理しやすい。 設定のコメントも書ける docs.k3s.io ファイ…

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

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

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

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

[HashiCorp Vault] KVシークレットエンジンのデータの更新と削除メモ (CLI/REST)

前回のエントリの残件だった「更新」と「削除」についてまとめ。 zaki-hmkc.hatenablog.com CLIはサブコマンド毎にページが分かれてるけど、RESTは全部以下に集約されてる。 developer.hashicorp.com update CLI REST delete latest(最新)バージョンの削除 …

[Terraform] EC2プライベートIPアドレスの固定とパブリックIPの割り振り

AWSのEC2のプライベートIPは、使用するサブネットアドレスから自動で割り当てられるが、複数のEC2間で通信したい場合などであらかじめ固定したIPアドレスを使いたいという場合にTerraformでどう設定するかについて。 固定プライベートIPの設定 通常はaws_ins…

[Ansible] community.general.slackモジュールでSlack通知を行うタスク

先日AAP/AWXの通知機能でSlack連携をまとめたので、ついでにPlaybookのタスクから任意のメッセージを通知する方法について。 使うモジュールは以下 docs.ansible.com たとえばAAP/AWX構築Playbookで資材内にSlackのトークンを持っているのであれば、ついでに…

[AWS] VPCとS3エンドポイントを使ってインターネット接続が制限されたEC2(サブネット)からECRに接続する [修正済み]

6/23: S3へのエンドポイントも必要なことを追記 概要 webポータルから VPCエンドポイントの作成 S3用ゲートウェイエンドポイントの作成 Terraformで構築 参考 6/23追記 概要 インターネットゲートウェイを設定せずにインターネット接続が制限されたサブネッ…

[Ansible / AAP / AWX] 通知機能を使ってジョブの実行状態をSlackへ通知する

AAP(Controller)とAWXには「通知」の機能の一つ(連携先の一つ)としてSlackにジョブの起動・終了(成功・失敗)等を通知することができる。 大まかな流れは以下の通り。 Slackに投稿用botを用意しトークンを作成 作成したトークンを使ってAWX/AAPに通知リソース…

コンテナ化されたAAPのContainerized Ansible Automation Platform (tech preview)を試してみた(AAP 2.4)

最近AAPのインストーラーの新しいバージョンをダウンロードしようとしたら、見慣れない「Tech Preview: Ansible Automation Platform 2.4 Containerized Setup」というインストーラが(日付を見る限り1月の時点ですでに)あったので試してみた。 access.redhat…

AWXのバックアップ・リストアが付属のpostgresql-15-c9s:latestでうまくいかないときのワークアラウンド

原因 現在標準のquay.io/sclorg/postgresql-15-c9s:latestはUID 26で動くので、「UID 26のユーザーがRead/Writeできない領域のボリュームへのバックアップ」が失敗する。 例えば↓のような「rootか特定のUIDでないと書き込めないNFSサーバー領域」とかね。 ro…