リモートサーバ側でJupyter notebookを起動して使う場合

個別の端末に開発環境を整えるのもありなんだが、サーバ側でjupyter notebookを起動させると、開発ファイルなんかもサーバ側に置けて便利だ。
もっとも、便利な分いつもネットワーク環境が必要となるんだけどね。

じゃリモートからJupyter notebookを使うための設定は次の通り。

まずリモートサーバ側のhome/ユーザディレクトリで、下記のコマンドを実行する。

$ jupyter notebook --generate-config
Writing default config to: /home/hogehoge/.jupyter/jupyter_notebook_config.py


次にパスワードのハッシュ値を計算する。

$ ipython
Python 3.6.5 (default, May 23 2018, 19:51:39)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from IPython.lib import passwd

In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:パスワードのハッシュ値'

Jupyter notebookの設定ファイルを編集する。

$ cd .jupyter
$ sudo vi jupyter_notebook_config.py

ファイルの最終行に下記を追加。

# 追加部分
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999
c.NotebookApp.password = u'sha1:パスワードのハッシュ値'

保存してファイル編集を終了する

じゃ、動作確認をしてみる。
リモートサーバ側で下記のコマンドを打ってみよう。

$ jupyter notebook &
[1] 2309
$ [W 20:35:35.035 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 20:35:35.035 NotebookApp] The port 9999 is already in use, trying another port.
[I 20:35:35.043 NotebookApp] Serving notebooks from local directory: /home/hogehoge
[I 20:35:35.043 NotebookApp] 0 active kernels
[I 20:35:35.043 NotebookApp] The Jupyter Notebook is running at:
[I 20:35:35.043 NotebookApp] http://サーバ名:10000/
[I 20:35:35.043 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

手元の端末のブラウザを立ち上げ、http://サーバのIPアドレス:9999 でアクセスしてみる。
パスワードを入力する認証ページが立ち上がったら、設定は成功だ!

0 件のコメント:

コメントを投稿