[Julia, Pluto] Pluto 원격 실행, 보안 접속 URL 및 실행로그 저장, 파일 폴더변경

아직 까지 Pluto v0.19.27에서도 Jupyter notebook 처럼 원격접속시 password기반이나 다른방식의 로그인을 지원 하지 않고 있어 접속시 보안이슈가 있다

이를 해결하기 위한 현재 Pluto는 시작시 원격접속용 보안 접속URL을 생성하여 콘솔에 보여준다. 이 URL을 통해 접속 할 수 있다.

Pluto를 백그라운드로 실행 하고 보안 URL을 파일로 저장하도록 redirect하는 경우도 Pluto에서 로그를 buffering하고 있어 즉시 console에 출력되지 않아 접속 URL을 볼 수 없다.

tee 명령을 같이 사용하여 파일에도 출력하고 화면에도 출력 하는 방법을 있다.

이렇게 하는 이유는 pluto가 실행되면서 보안 URL을 생성 해주기 때문에 이 URL을 잊어 버리는 경우 실행로그가 저장된 파일에서 조회 할 수 있기 때문이다.

추가적으로 Pluto notebook 파일을 저장하는 기본 폴더 위치는 ~/.julia/pluto_notebooks 인데 이 위치는 자신이 원하는 폴더로 변경 하는 방법은 아래와 같다.

0) Pluto notebook 저장 위치 변경

# console 환경변수에 설정 하는 방법
export JULIA_PLUTO_NEW_NOTEBOOKS_DIR="your pluto notebook folder to save"

# Julia program에서 환경변수 설정
ENV["JULIA_PLUTO_NEW_NOTEBOOKS_DIR"] = "your pluto notebook folder to save"

1) 먼저 pluto.jl 파일에 pluto 실행 코드를 작성

# pluto.jl

using Pluto

# pluto notebook 저장 folder 지정
ENV["JULIA_PLUTO_NEW_NOTEBOOKS_DIR"] = "your pluto notebook folder to save"

# 보안 URL 생성 및 보안 URL을 통해서만 접속 가능하도록 Pluto 실행
Pluto.run(host="0.0.0.0",port=7766,launch_browser=false,require_secret_for_open_links=true,require_secret_for_access=true,workspace_use_distributed=false,run_notebook_on_load=false)

# 보안없이 바로 pluto에 접속 하도록 Pluto 실행
#Pluto.run(host="0.0.0.0",port=7766,launch_browser=false,require_secret_for_open_links=false,require_secret_for_access=false,workspace_use_distributed=false,run_notebook_on_load=false)

2) 아래에 nohup과 tee를 사용하여 pluto를 백그라운드 실행하고 접속 URL을 화면과 파일에 기록 하도록 한다.

$ nohup  julia --pkgimages=yes --project=/your_project_path pluto.jl 2>&1 | tee pluto.log &

3) test : 현재 접속중인 터미널 종료 후 재접속 그리고 해당 프로젝트 폴더로 이동 또는 pluto.log 파일이 있는 곳을 path로 지정 하여

$ tail -f /logfile_path/pluto.log
[ Info: Loading...
┌ Info:
└ Go to http://0.0.0.0:7766/?secret=5Xy1X5TI in your browser to start writing ~ have fun!
┌ Info:
│ Press Ctrl+C in this terminal to stop Pluto
└

┌ Info: No longer authenticated? Visit this URL to continue:
└   url = http://pluto.xyz.net:7766/?secret=5Xy1X5TI

pluto server 도메인이 pluto.xyz.net 이고 7766 포트로 서비스 된다면 “http://pluto.xyz.net:7766” 으로 접속시 보안URL로 접속한 이력이 없는 경우 위의 로그 맨 아래 처럼 보인다.

브라우즈에서 “http://pluto.xyz.net:7766/?secret=5Xy1X5TI”로 접속후 브라우즈만 끄지 않는다면 이 후에는 “http://pluto.xyz.net:7766” 로만 접속도 가능하다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다