はじめに
先日以下のエントリでDjangoアプリのデプロイをAnsibleで自動化しました。
今回はansible-jupyter-kernelを使用し、同等の作業をJupyter Notebook上から実行してみます。
ノートブックにAnsibleのプレイブックを記述することで、実行結果の保存、Markdownセルを用いた手順のドキュメント化など、Jupyter Notebookの利点を享受できます。
実行環境
$ python --version Python 3.7.4
ansible-jupyter-kernelのインストール
適当な仮想環境を用意し、 ansible-kernel
をインストールします。
$ python -m venv venv $ . ./venv/bin/activate $ pip install ansible-kernel $ python -m ansible_kernel.install
Jupyter Notebookの起動
以下のコマンドを実行するとhttp://localhost:8888/が開き、カレントディレクトリのファイル一覧が表示されます。
$ jupyter notebook
ノートブックの作成
New ▼
からAnsibleのノートブックを作成します。
プレイブックの記述
こちらの説明に従い、 #inventory
、 #play
および #task
のセルを作成していきます。
inventory
#inventory
から始まるセルにインベントリの情報を記述します。ansible_ssh_private_key_fileは ansible-playbook
の --private-key
に対応する設定です。
play
#play
から始まるセルにプレイ部分を記述します。
task
あとはタスクをひたすら書いていきます。
先頭に #task
を書くことでタスクのセルであることを明示的できますが、省略可能です。
ノートブックの実行
これでセルを実行すればインベントリに指定したサーバにDjangoアプリをデプロイできるようになりました。
以下のように実行結果がセルごとに残るため、変更内容を確認することができ、また環境構築作業のエビデンスを残すことができるため大変便利です。
ノートブックの実行後、デプロイされたアプリに問題なくアクセスできることを確認しました。