Python から subprocess モジュールで外部プログラムを起動する
Python から外部プロセスを起動する場合は subprocess モジュールを使う方法があります。 非同期処理等を考えない、簡単なサンプルをメモしておきます。 subprocess.run()
の実行結果はバイト配列なので sys.stdout.buffer.write()
を使って標準出力しています。
Python から外部プロセスを起動する場合は subprocess モジュールを使う方法があります。 非同期処理等を考えない、簡単なサンプルをメモしておきます。 subprocess.run()
の実行結果はバイト配列なので sys.stdout.buffer.write()
を使って標準出力しています。
Python から AWS を操作出来るライブラリには有名な boto3 があります。 boto3 から EIP を扱うサンプルは Using Elastic IP Addresses in Amazon EC2 にまとまっています。 ほぼこの内容そのままですが、簡単なサンプルを書いてみたのでメモしておきます。
Python で falcon と gunicorn を使い、シンプルな Web アプリケーションを作り、更にそれを systemd に登録するまでの手順をメモしておきます。
macOS 10.15.2 (Catalina) に bash 5.x をインストールする手順をメモしておきます。
Windows 10 に Fluent Termianl をインストールする手順をメモしておきます。
しばしばテスト用の Amazon Linux2 を構築するのですが、自分なりの初期設定をスクリプト化してみました。「初期設定を手間なくすませる」方法は、他に以下が考えられると思います。
Ansible は手軽だし、エージェントも不要なので「良い手段」のひとつだと思います。 大量にテスト用 Linux を用意するのであれば AMI 化するのもひとつの方法だと思いますが、そこまで頻度が高いわけでは無いのであれば、毎回 AWS が提供する最新ベースイメージを Ansible やスクリプト等で設定しても良いと思います。 cloud-init も手軽な方法のひとつですが、「cloud-init が使えない環境には応用し辛い」という点はデメリットだと思います。
macOS のパッケージマネージャとしてお馴染みの homebrew が WSL にも対応したそうなので、実際に WSL2 へインストールしてみました。 インストール手順は公式サイトに記載されています。
Amazon S3 で Bucket を「意図しないリージョン」で作成してしまった際、やむを得ず、一旦 Bucket を削除して「意図したリージョン」で作成するケースがあるかも知れません。 但し同じ名前で S3 Bucket を再作成する場合、(リージョンの一致・不一致に関わらず) しばらく下記のようなエラーが出て Bucket が作成出来ないことがあります。
1 2 |
|
正確に「どの程度の間隔をおけば再作成可能なのか?」は分かりませんが、大凡 30 分 ~ 1 時間程度待てば Bucket を再作成出来るようになるはずです。
Cisco SD-WAN (旧 Viptela) の REST API を curl
を使って簡単に試してみましたのでメモしておきます。
Python には PyPi に ntplib というライブラリがあり、手軽に NTP の動作をコーディングすることが出来ます。