LoginSignup
11
13

More than 5 years have passed since last update.

Jupyter+AnsibleをBash on Ubuntu on Windowsにインストール

Posted at

今お仕事させていただいている国立情報学研究所では Literate Computing for Reproducible Infrastructureと銘打って、仮想環境の整備をするNotebookとかHadoopクラスタを構築するNotebookとかを公開しているわけですが、最初のとっかかりとしてJupyterとAnsibleがインストールされた環境を用意するところがちょっと考えどころになります。

Macを使っておられる方はいずれもpipでさっくり入るわけですが、Windowsだと色々悩みどころが出てきます。
まあ、インフラ系ツールを積極的に使うんならLinuxとかMacとか使えよという話はあるわけですが、今回はその悩みどころを我らがニューカマーBash on Ubuntu on Windows(以下BoW)で何とかしてみることにします。

BoWに取り組む前に・・・

個人的感想ではありますが、BoWはまだまだ発展途上感は否めないので、それなりに苦労する覚悟が必要そうという感じです。他にも、WindowsでJupyterを触るやり方はいくつかあるかなと・・・

Anacondaを使う?

Jupyterからデータサイエンス分野のツールを使うのであれば、Anacondaが最も楽なんじゃないかと思います。

AnacondaはWindows向けのインストーラも用意されていて、Anacondaをインストールした後 conda install jupyter とかすればさっくりjupyter.exeがインストールされます。あとはjupyter notebookとか実行するとちゃんと動きます。便利。

ただ、悩みどころがAnsibleで、Windows Support での記述の通り、ansibleのクライアントとしてはLinuxマシンのみが想定されていて(操作ターゲットとしてはWindowsもいけるわけですが)、Windows上でansibleをクライアントとして使うには結局BoWとかCygwinとかが必要になります。

参考: Using Ansible through Windows 10's Subsystem for Linux

Dockerを使う?

WindowsでのDockerもHyper-V統合されたりして結構こなれてきたと個人的には思っています。

やり方の概観は、ローカル環境でJupyter Notebookを動かすときの俺的ベストプラクティスを参照してください。最新はもっと楽になっていると思います。(編集しなきゃ・・・)

BoWでJupyter+Ansibleを動かす

で、本題。BoWでJupyterとAnsibleを動かしてみることにします。

BoWでJupyterを動かそうとした場合、2016/11/13現在、Insider Previewのリリース プレビュー版では(たぶんリリース版も)、WSL(Windows Subsystem for Linux)のシステムコール実装の問題でZeroMQが正常に動作しません。

この問題を回避するため、Issue Cannot connect to jupyter/ipython instance で紹介されているパッチをあてたバージョンのZeroMQを利用する必要があります。手順としては以下のイメージ。

  1. Bash on Ubuntu on Windowsをインストールする

    参考: Bash on Ubuntu on Windowsをインストールしてみよう!

  2. BoW上でJupyterをインストールする
    以下のコマンドを実行すればOK。

    $ sudo apt-get update
    $ sudo add-apt-repository ppa:aseering/wsl
    $ sudo apt-get update
    $ sudo apt-get install python-pip python-zmq libzmq3
    $ sudo pip install jupyter
    
  3. BoW上でAnsibleをインストールする

    $ sudo pip install ansible
    
  4. Jupyter Notebookを実行する

    $ jupyter notebook --no-browser
    

    とかすればOK。
    Notebookのディレクトリやポート番号などの設定はjupyter notebook --generate-config して、生成されたconfigファイルを変更すればよい。

という感じ。これで、ブラウザから http://localhost:8888 でNotebookを開いて、NotebookからAnsibleを実行できるようになります。

ポイントは、add-apt-repository ppa:aseering/wsl した後に sudo apt-get install python-zmq libzmq3 すること。この手順によりBoW対応のパッチがあたったバージョンのlibzmq3と、それを使う形でコンパイルされたPython用のZMQモジュールをインストールすることができます。

aptからでなくpipなどでpyzmqを個別にインストールしていたりすると、バンドル版の(パッチがあたっていない)ZMQが動いたりするので要注意。どうにも動かない場合はlxrun /uninstall /fullした後にlxrun /installしてBoWをいったん再インストールして再現性をみるのがよいかもしれません。

これで、BoWを介しているとは言え比較的素直にWindows上でもjupyterとansibleが使えるようになります。具体的に各Notebookの使い方を解説していきたいところなんですが、それはまた別の機会に。

11
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13