venv 環境の Python responder アプリケーションを Apache 経由で動作させる
以前に Python + responder + gunicorn + systemd + Nginx で Web アプリを起動する というメモを書きました。 Apache2 + responder に置き換えた内容で改めてメモしておきます。 Python アプリケーションは venv 環境の中に作成します。
以前に Python + responder + gunicorn + systemd + Nginx で Web アプリを起動する というメモを書きました。 Apache2 + responder に置き換えた内容で改めてメモしておきます。 Python アプリケーションは venv 環境の中に作成します。
responder でアプリケーションを書いても AttributeError: module 'typesystem' has no attribute 'SchemaDefinitions'
というエラーになる場合があります。 例えば以下のように pip で gunicorn や responder をインストールせずにインストールし、アプリケーションを実行した場合にエラーになるかも知れません。
Python で venv 環境を作成した際、該当ディレクトリに移動する毎に source venv/bin/activate
する必要があります。 direnv を使うことでこれを自動化することが出来ます。 direnv は現時点で Release v2.31.0 が最新ですがバイナリが登録されていない為、今回は Release v2.30.3 を利用します。 尚、今回は Ubuntu 20.04LTS 上でテストしました。
batfish に同梱されているサンプルスクリプトや、インターネット上で見かけるスクリプト例は「スナップショットの有無に関わらず、スナップショットを生成する」ものが多いと思います ("例" なので、そういうものなのだと思います)。 仮に何度もスクリプトを実行し直す場合は、「コンフィグに変化が無いのであれば、毎回のスナップショット再作成は不要」という場合もあると思います。 そういった場合の実装例をメモしておきます。
例として Question には ipOwners を利用していますが、どの Question を利用してもスナップショット初期化部分の考え方は同じです。
Python でディレクトリを再帰検索し、ハッシュ値を取得するサンプルコードをメモしておきます。 ハッシュ値の計算には hashlib を使い、アルゴリズムには SHA1 を利用しています。
Python3 で標準ライブラリの argparse を使うことで「サブコマンドを理解出来るコマンド」を実装することが出来ます。 今回はサンプルスクリプトと実行例をメモしておきます。
以前に Ubuntu 21.04 へ Python 3.10 をインストールする というメモを書きました。 Ubuntu 20.x 系の標準リポジトリでは現時点で Python 3.10 系がリリースされていない為、Python 3.9 をインストールする手順をメモしておきます。
1 2 |
|
venv で Python の仮想環境を作成する例は以下の通りです。
1 2 3 4 5 |
|
Python は標準の tarfile モジュールで gzip、bz2、tar などの読み書きを行うことが出来ます (zip を扱う場合は zipfile モジュール)。
python-keycloak を使うと Keycloak の操作をプログラムから自動化することが出来ます。 今回は python-keycloak の基本的な使い方をメモしておきます。 検証は RockyLinux8 と Python 3.9.6 で実施しました。
Keycloak 自体の REST API ガイドは Keycloak Admin REST API にあるものの、現時点で python-keycloak のドキュメントはあまり充実しておらず、keycloak_admin.py のソースコード などを直接、読んだ方が理解が進みそうです。
scrapli はネットワーク機器へ TELNET や SSH などを実行し、制御を自動化するのに利用出来るライブラリです。 今回は scrapli の基本的な使い方をメモしておきます。 自動化の対象は CML2 上に作成した CSR1000v としました。