Jaybanuan's Blog

どうせまた調べるハメになることをメモしていくブログ

2022-01-01から1年間の記事一覧

upcallとdowncall

はじめに upcall downcall upcallとdowncallの図示 はじめに Linuxのカーネルの機能を調べているときに、upcallとdowncallという言葉を見つけた。 普通の辞書には載っておらず、専門用語のようなので、メモを残しておく。 upcall ここの辞書に掲載されていた…

AWXの情報源

GitHub AWX AWX Operator ドキュメント トップ API CLI Ansible Module GitHub AWX github.com AWX Operator github.com ドキュメント トップ docs.ansible.com API docs.ansible.com CLI docs.ansible.com Ansible Module docs.ansible.com

bashでのkubectlの補完

kubernetes.io

コンテナのデバッグで入れたくなるコマンド

はじめに ネットワーク はじめに コンテナイメージには日常的に開発や運用で利用するコマンドが入っていない場合が多い。 毎度パッケージ名を調べるのが大変なので、ここにまとめていく。 ネットワーク コマンド Debian系 RedHat系 ip iproute2 (調べる) pin…

カレントディレクトリのサブディレクトリに接尾辞をつけるシェルスクリプト

諸般の理由により、そういう処理が必要になったので。 renameという今まで使ったことがないコマンドを知ったので、記録として残しておく。 #!/bin/bash test -n "$1" || { echo "argument must be specified" >&2 exit 1 } find -maxdepth 1 -mindepth 1 -ty…

KubernetesでのHeadless Serviceと普通のServiceの併用について

はじめに DNSラウンドロビン 考察のようなもの はじめに Kubernetesの以下のドキュメントを読んだ時に湧いた疑問。 kubernetes.io このドキュメントではMaster/Slave構成のMySQLに対して、書き込み用のHeadless Serviceと、読み込み用の普通のServiceの両方…

SNAPでインストールしたkustomizeは一部機能が使えない

Kubernetesのマニフェストファイル関連のツールでkustomizeというのがあるが、利用中に以下のissueで挙げられているものと同じ現象が発生した。 github.com issueからの抜粋になるが、kustomizeの実行時に以下のエラーが発生した。 $ kustomize build . | ku…

Composeファイルでのversion指定は意味なし

はじめに Docker Composeのドキュメントより Compose Specificationとは Compose Specificationでのversionの取り扱い はじめに Docker ComposeのComposeファイルでのversion指定は、現在では意味がないらしい。 ここで言うversionとは、以下に示すようなCom…

AWX 21.6.0をdocker composeで動かす

はじめに 環境 AWXのバージョン AWXの構築 (1) GitHubからソースコードをcloneする (2) ビルドに必要なツール/ライブラリをインストールする (3) AWXをビルドする (4) AWXのコンテナを立ち上げる (5) AWXのWeb UIを構築する 動作確認 (1) AWXのWeb UIにアク…

Pythonでコマンドライン引数を解析するライブラリ

argparse (標準ライブラリ) Click argparse (標準ライブラリ) docs.python.org Click click.palletsprojects.com

Pythonのdictのための便利ライブラリ

github.com github.com github.com github.com

APIサーバでのデータの送信方式の整理

はじめに 送りたいデータ: なし 送りたいデータ: JSON 送りたいデータ: YAML 送りたいデータ: Key-Value (1) Content-Type: application/x-www-form-urlencodedを利用 (2) Content-Type: multipart/form-dataを利用 送りたいデータ: ファイル (1) Content-Ty…

YAMLのMedia Type (application/yaml)

APIを設計していて、YAMLのMedia Type (application/yaml)って見たことないけどあったっけ?と思って調べてみた。 2022年8月時点では、YAMLはまだIETFのMedia Typeの一覧に載っていない。 https://www.iana.org/assignments/media-types/media-types.xhtml …

Nginx Unitのコンテナのdocker-entrypoint.sh

Nginx Unitをベースとしたコンテナイメージを作る際に、/docker-entrypoint.dというドロップインディレクトリにNginx Unitの設定ファイルを配置する。 unit.nginx.org ただ、詳細な説明がないので、挙動の確認はドキュメント読むよりもコード読んだほうが早…

ContentType: application/x-www-form-urlencodedの使い道

curlでPOSTのbodyを送るときに、オプションの付与の仕方が何種類かあって、その中でURLエンコードってなんだっけとなって悩んだ。 はるか昔に調べて納得した記憶はあるが、詳細は忘れてしまった。 ズバリの回答が以下にある。 teratail.com 当該部分を引用し…

URIにおけるQueryとSearchは同じもの(だと思う)

ちょっとだけJavaScriptを勉強中。 URIのクエリ(query)とは、URIの文字列中で?の後に続くキーバリューの値で、RFC 3986では以下のように説明されている。 The following are two example URIs and their component parts: foo://example.com:8042/over/there…

Visual Studio CodeにPythonのコードのパスを認識させる

はじめに 諸般の事情で、Gitのリポジトリの少し奥の方にあるPythonのコードを開発することになった。 例えば、以下のような感じ。 python-path-on-vscode `-- calc |-- src | `-- calc.py `-- tests `-- test_calc.py Visual Studio Codeで開発するのだが、P…

pymongoでのコネクションプールについて

PythonのWebアプリ(Flask)からMongoDBを利用する際に、コネクションプールはどう扱ったらいいんだろうと思って調べた。 すると、MongoDBに接続するドライバpymongoそのものに、コネクションプールの機能があることが分かった。 以下のpymongoのFAQを参照。 p…

GitHub ActionsでのWorkflowの再利用とComposite Actionの再利用の比較

次の記事が分かりやすく纏まっている。 chris48s.github.io

GitHub Actionsでワークフローと同じリポジトリにあるComposite Actionを利用する

はじめに usesの記載方法 参考 アクションの配置場所 はじめに GitHub Actionのワークフローの一部を再利用したくて、いくつかのステップをComposite Actionとして利用できるように切り出した。 その際に、usesの指定方法を見つけるのに苦労したので、メモし…

PHPのデバッグ

PHPは殆ど触れたことがないが、諸事情でデバッグすることになった。 PHPに標準的なログ出力の機能があるのかどうか(そして当該Webアプリで使っているのかどうか)は、よく分からない。 とにかく、エラーが発生したコンテキストが分かればいい。 デバッグ対象…

Docker Composeの仕様

Docker Composeの仕様は、Compose Specとして以下の場所で標準化されている。 github.com Compose Specの実装はDocker Compose、Kompose、Nerdctlなど幾つかあり、その中でもDocker ComposeはReference Implementation (参照実装) という位置づけのようだ。 …

コンテナで簡易NFSサーバを構築

はじめに 環境 利用したコンテナイメージ NFSサーバの構築 (1) ディレクトリの準備 (2) docker-compose.ymlの作成 (3) NFSサーバの起動 動作確認 (1) ホストからマウント (2) コンテナからマウント 参考 ドキュメントどおりでは動かなかった部分 NFSのバージ…

複数のGitのユーザを使い分ける

はじめに ユーザをグローバルに設定しない Bashのプロンプトにユーザ名を表示する 複数のユーザを管理できるCredential Helperを使う 参考 はじめに 複数のGitサーバ/サービスを利用する場合、Gitのユーザの切り替えが必要になる。 適切に切り替えを行わない…

Minikubeを構築して、ローカルのコンテナイメージをデプロイする

はじめに 環境 手順 (1) Minikubeのインストール (2) kubectlのインストール (3) Minikubeの起動 (4) ダッシュボードで動作確認 (5) テスト用のWebサーバのイメージを作成 (6) Minikubeにデプロイ (7) 動作確認 はじめに コンテナの開発環境を構築する際のメ…

Keycloak 16 + OAuth2 ProxyをDocker Composeでお試し環境を構築

はじめに 環境 今回の構成 docker-compose.ymlの作成 Makefileの作成 Keycloakでレルムを設定 (1) Keycloakを立ち上げる (2) WebブラウザでKeycloakにログインする (3) レルムを作成する (4) issuerのURLを確認する (5) クライアントを作成する (6) クライア…

Ubuntu 20.04LTSでウィンドウのスクリーンショットをとったら周辺に透明な領域があって邪魔だった

はじめに ウィンドウのスクリーンショットを取ると、何故かウィンドウの周辺に透明な領域(drop shadow ?)がある。 邪魔なので消そうと思った。 環境 $ cat /etc/os-release | grep PRETTY_NAME PRETTY_NAME="Ubuntu 20.04.4 LTS" やったこと ウィンドウのエ…

Flaskアプリのデバッグではloggerを使う

Flaskでアプリを作成している時に、デバッグ情報をprintで出力しようとしたが、出力されなかった。 調べてみると、出力がバッファリングされるようなので、以下のような感じでloggerを使うのがよいとのこと。 from flask import Flask import logging app = …

PythonにおけるMixin

PythonにおけるMixinについて、以下のブログの説明が分かりやすかった。 www.thedigitalcatonline.com Mixinの説明を以下に引用する。 Python doesn't provide support for mixins with any dedicated language feature, so we use multiple inheritance to …

authlib - PythonのOAuth2/OpenID Connectのライブラリ

authlibがよさげ。 Webサイト docs.authlib.org GitHub github.com ドキュメント docs.authlib.org メモ デフォルトだと認証/認可の情報はSQLAlchemy + SQLite、すなわちRDBで取り扱うようだが、世の中の認証ミドルとの連携方法が分からなかった。 まだ試し…