らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Python

IP アドレス計算をする「ipcalc」コンテナを Nginx Proxy 環境下で動作させる

以前に IP アドレスの計算をしてくれる Web アプリケーションを作成したのですが、distroless を使ったマルチステージビルドの練習をすべく、この Web アプリケーションを docker コンテナイメージにしてみました。 作成した Docker コンテナイメージは以下…

Python の Pillow で画像ファイルのサイズ (縦/横) を取得する

Python で pillow を使って画像イメージのサイズを取得するサンプルをメモしておきます。 テストは Rocky Linux 8 上で行いました。

Sastre で Cisco SD-WAN の全体コンフィグをバックアップ / リストアする

以前に viptela モジュールを使い CLI から vManage を操作する というメモを書きました。 Sastre を使うと Cisco SD-WAN 環境のコンフィグをバックアップ / リストア / 削除などを CLI から簡単に行うことが出来ます。 今回は Sastre を使ってコンフィグ全…

CloudMapper で AWS の構成を自動描画する

CloudMapper は Duo が開発した「AWS の構成図を自動的に作成してくれるツール」です。 Docker 版も提供されていますが、今回はローカルインストールする手順をメモしておきます。 作業は Rocky Linux8 上で実施しました。

Webex でメッセージをオウム返しする Bot の Lambda 用 Python サンプル

以前に下記のメッセージを書きました。 Python から Cisco Webex へメッセージを送信する Lambda 用の .zip ファイルを作成する場合は「zip -r .」を使う方がベター

Flask の超基本サンプル

久しぶりに Flask を書く機会があったので、ついでに超基本をメモしておきます。

CML2 を cmlutils で CML から操作する

cmlutils を使うと Cisco CML2 に関連する操作を CML から行うことが出来ます。 cmlutil の準備 Python3 のインストール cmlutils のインストール 認証情報を用意する cmlutils のコマンド コンソール接続時に no matching cipher found エラーになる場合 参…

Python で CML2 上のリンク情報を取得する

過去、以下のメモを書きました。 CML2 へ Postman から REST API アクセスする Python で CML2 へログインし、Baerer Token を取得する Python で CML2 上のラボ一覧を取得する Python で CML2 上のトポロジーを取得する 上記のコードを流用し、Python から…

Python で CML2 上のトポロジーを取得する

過去、以下のメモを書きました。 CML2 へ Postman から REST API アクセスする Python で CML2 へログインし、Baerer Token を取得する Python で CML2 上のラボ一覧を取得する 上記のコードを流用し、Python からラボのトポロジーを取得するサンプルコード…

Python で CML2 上のラボ一覧を取得する

過去、以下のメモを書きました。 CML2 へ Postman から REST API アクセスする Python で CML2 へログインし、Baerer Token を取得する 上記のコードを流用し、Python からラボの一覧を取得するサンプルコードをメモしておきます。 今回は Python 3.9.6 でテ…

Python で CML2 へログインし、Baerer Token を取得する

以前に CML2 へ Postman から REST API アクセスする というメモを書きました。 今回は Python から CML2 の authenticate REST API を呼び出し、Baerer Token を取得するサンプルコードをメモしておきます。 今回は Python 3.9.6 でテストしました。

Rocky Linux 8.3 へ Python3 をインストールする

Rocky Linux 8.4 へ Python3 系をインストールする手順をメモしておきます。 今回は Python 3.9.2 をインストールしました。

viptela モジュールを使い CLI から vManage を操作する

pip の viptela モジュールを使うと vManage へのアクセスを SDK や CLI、Ansible Module からアクセスすることが出来ます。 もちろん REST API を直接呼び出しても問題ありませんが、テンプレートの簡単な操作などは (いちいちコードを書くより) viptela モ…

netmiko で Cisco IOS へログインするサンプル

netmiko を使って Cisco IOS デバイスへログインするサンプルをメモしておきます。 TELNET / SSH アクセスする対象には CML2 上の IOSv 15.9(3)M3 を利用しました。

Cisco SD-WAN 環境へアクセスする Python3 スクリプトサンプル

Python スクリプトで Cisco SD-WAN へアクセスするサンプルをメモしておきます。 今回は Ubuntu 21.04 + Python 3.9.5 環境を利用しました。

Ubuntu 21.04 へ Python 3.10 をインストールする

私の Ubuntu 21.04 環境には Python 3.9.5 がインストールされていました。 これを apt で Python 3.10 系へ差し替える手順をメモしておきます。 尚、今回は Python 3.9 と 3.10 を併存することとします。

googletrans でエラーが出た場合は PRE-RELEASE で回避可能

以前に Python で Google API Key を使わずに Google 翻訳を利用する というメモを書きました。 しかし、現時点で googletrans の安定版である 3.0.0 では AttributeError: 'NoneType' object has no attribute 'group' エラーになってしまいます。 これは G…

Python から Cisco Webex へメッセージを送信する

Python から Cisco Webex へメッセージを送信する方法をメモしておきます。 ライブラリは webexteamssdk を利用します。

scapy で CoS や ToS 付きパケットを送信するサンプル

以前に Python3 で scapy を用いてパケットを送信するサンプルスクリプト というメモを書きました。 このスクリプトを拡張し、CoS や ToS (DSCP) 値を付与出来るようにしたサンプルスクリプトをメモしておきます。 テストは Ubuntu 21.04 上の Python 3.9.5 …

Python3 で scapy を用いてパケットを送信するサンプルスクリプト

Python3 で scapy を用いてパケットを送信するサンプルをメモしておきます。

Python3 で連続したアルファベットを出力するサンプルスクリプト

Python3 で「連続したアルファベットを出力するサンプルスクリプト」をメモしておきます。

Ubuntu 20.10 で scapy の「No such file or directory: b'liblibc.a'」を解消する

Ubuntu 20.10 で scapy を利用とすると、以下のエラーが出ました。 # python sample.py Traceback (most recent call last): ・ ・ ・ FileNotFoundError: [Errno 2] No such file or directory: b'liblibc.a' これは以下のように実行することで回避出来まし…

Ubuntu 20.10 で固定アドレスを設定する簡易スクリプト

Ubuntu 20.10 用に、簡単な固定アドレス設定スクリプトを作成したのでメモしておきます。 作り込みの要素は多々あると思います。

Ubuntu 20.10 に pyenv で Python 3.9.1 をインストールする

以前に CentOS7 に pyenv で Python 3.7.x 系をインストールする というメモを書きました。 今回は Ubuntu 20.10 に pyenv で Python 3.9.1 をインストールする手順をメモしておきます。

Cisco ACI のイベントをリアルタイムで検知する Python サンプルスクリプト

以前に Cisco ACI のイベントをリアルタイムで検知する Node.js サンプルスクリプト というメモを書きました。 このメモの Python バージョンを作ったので、改めてメモしておきます。

VIRL 2 Client Library で CML を Python から操作する

VIRL 2 Client Library を使うと Python から CML を操作することが出来ます。 簡単な Python スクリプトを書いて CML 上にラボを作成する手順をメモしておきます。

Python の FastAPI Web アプリで pydantic を使わずに POST メソッドを処理する

Python で FastAPI を使ったアプリケーションを Web アプリケーションを作成する際、POST メソッドで渡されるリクエストの処理は公式サイトの Request Body 説明ページ によると pydantic を使ったクラスで処理するサンプルが掲載されています。 しかし、例…

Python で「ハイフンを含んだデータ名」の JSON を pydantic で受け取る場合の処理

Python で「JSON でデータを受け取る」ようなケースを考えた場合、データを pydantic でクラス化するケースがあると思います。 例えば FastAPI で POST された JSON を受け取る Web アプリケーションを開発する場合などです。 こういった場合、「JSON 内のデ…

AWS API Gateway + Lambda + mangum + FastAPI な Python アプリケーションに POST された JSON を処理する

以前に mangum + FastAPI で ASGI な Python アプリケーションを AWS Lambda + API Gateway 上で動かすというメモを書きました。 mangum と mangum-cli を使うと FastAPI を使った Web アプリケーションを AWS の Lambda と API Gateway を使って簡単に公開…

pyenv 自身をバージョンアップする

pyenv 自身をアップデートしたい場合、以下のように pyenv のインストールディレクトリで git pull するだけで可能です。 cd ${PYENV_ROOT} git pull プラグインを利用したい場合は pyenv-update を ${PYENV_ROOT}/plugins/ 配下にコピーします。 git clone …