본문 바로가기

잡것들

vscode-server 설치 및 사용법 (for ML/DL Research, Engineering)

AI Research, Engineering을 하시는 분들 중에 학교에서는 PC에서 ide를 활용해서 디버깅 하면 되었지만 회사로 가게 되면 모델의 크기도 커질 뿐더러 보안이 필요해 서버에서 작업해야 하는 경우가 많다. (특히, vscode SSH 터널링이 안되는 경우)

 

Vim 등에 익숙하신 분들이면 큰 문제가 없지만 ide에서 python 디버깅을 하다가 Jupyter에 들어가서 하나하나 일일이 변수명 쳐보면서 한다거나 도저히 안되겠어서 pc에서 작업 후 일일히 서버로 업로드해서 동작을 확인하면 답답함을 느낄 뿐더러 일의 효율이 많이 떨어진다. 

 

이런 분들 속을 편안하게 만들어줄 code-server 사용법을 설명드리고자 합니다.

 

code-server는 간단히 한줄로 (해당 서버에서 tensorboard를 사용할 수 있다면)`server에서 IDE를 사용할 수 있다`

라고 표현할 수 있다.

vscode-server를 웹브라우저에서 접속한 화면

1. 설치

중간에 sudo 권한을 요청하므로 sudo 권한이 있는 계정에서 진행해야한다.

curl -fsSL https://code-server.dev/install.sh | sh

 

위 스크립트만 치면 아주 간단하게 code-server 설치가 완료된다.

 

 

(sudo계정이 따로 있는 경우 다시 원래 사용하는 계정으로 돌아와) 

설치가 잘 되었는지 확인하기 위해

code-server

위와같은 메세지가 나온다면 설치가 잘 된 것이다.

설치가 잘 되었음을 확인하였으므로 간단한 설정을 위해 ctrl-c를 눌러 종료해준다.

2. 설정

config.yaml이라는 파일에 tensorboard의 주소와 포트처럼 code-server의 주소와 포트 그리고 비밀번호를 설정할 수 있다. 해당 파일을 수정하여 서버에 접근할 수 있도록 설정을 바꾸어야한다.

vim ~/.config/code-server/config.yaml

기본 config.yaml

위와같이 포트가 적혀있는데 bind-addr에 127.0.0.1로 되있는 부분을 반드시 0.0.0.0으로 바꿔야 웹브라우저에서 서버의 주소를 쳤을 때 접속할 수 있다. 

:8080은 tensorboard나 jupyter의 포트와 겹칠 수 있으므로 임의의 포트(10000~65536 사이의 숫자) 로 변경해해주는 것이 좋다 저의 경우 :34321 로 선택하였다.

 

변경된 config.yaml

마지막으로 password를 pc에 복사해둔다. 나중에 code-server에 처음 접속할 때 필요하다. 그 이후에는 웹브라우저에 자동완성으로 사용하면 된다.

 

3. code-server 접속하기

먼저 내가 사용하는 서버의 주소를 알고 있다고 가정한다. (모를 경우 주변 사람에게 물어보는 것을 추천)

 

(정 물어볼 사람이 없을 경우)

hostname -I

에서 나온 첫번째 주소가 일반적으로 서버의 주소일 경우가 높다.

 

 

설정을 완료햇으니 code-server를 다시 실행해보자

code-server

초록색 줄 쳐진 부분이 본인이 설정한 것과 같은지 확인한다.

 

이제 편안하게 Chrome을 열고 서버의 주소가 11.33.44.55 라고 하면 주소창에 11.33.44.55:34321 을 입력하면 

code-server login 창

이런 창이 나올 것이다.

 

(만약 password를 복사해두지 않았다면 2번 과정을 확인하세요)

2번에서 복사해두었던 password를 여기에 입력하고 submit 하면 vscode와 동일한 화면을 볼 수 있다.

 

 

오른쪽 아래에 이런 경고메세지가 나오는데 이를 해결하는 간단한 편법이 있다. (단순히 경고메세지가 아니라 클립보드 사용불가 및 다른 플러그인이 동작하지 않아 code-server를 사용하는데 어려움이 있을 수 있다. 개의치 않다면 넘어가도 괜찮다.)

 

code-server is being accesed over an insecure domain 해결 편법

chrome 주소창에 아래내용을 치면

chrome://flags/#unsafely-treat-insecure-origin-as-secure

이런창이 나오는데 여기다가

http://xx.xx.xx.xx:34321

을 적고 Enable 시켜준 뒤 Chrome을 Relaunch하면 해결 된다.

4. code-server python 설정

ML/DL Research Engineer 라면 python을 많이 사용할텐데 vs-code는 확장팩을 설치해줘야 디버깅같은 것을 할 수 있다.

위처럼 들어가 python을 검색하고 install 을 해준다.

 

최신버전의 python 확장팩은 code-server와 호환이 잘 안되는 경우가 많다. 따라서 설치 후 이전 버전으로 다시 설치해주어야 한다.

 

이전 버전 설치

 

적어도 두달 이전 것을 설치하는 것을 권장한다.

이 포스트에서는 code-server 3.8.0 기준 2020.10.xxx를 설치한다.

python 확장팩 버전 선택

5. codeserver에서 .py 실행하기

이제 설정이 어느정도 완료되었으니 python파일을 디버깅 하는 것을 한번 해보자

 

먼저 ctrl+shift+` 를 눌러 terminal 창을 연다.

이 terminal은 ssh로 접속해서 사용하는 command 창과 동일한 창이라고 생각하면 된다.

terminal 창

mkdir vscodepython

이 terminal에다 명령어를 입력해 vscodepython이라는 폴더를 생성한다.

 

 

vscodepython 폴더를 workspace로 선택해준다.

 

새로고침이 되었다면 ctrl+N 을 눌러 새파일을 생성하고 ctrl+S를 눌러 test.py라고 이름을 지정한다. (바로 서버에 test.py 라는 파일이 생성된다.)

 

test.py를 생성한 모습

왼쪽 아래에 python 버전이 나오는지 확인해야 한다. 

pylint를 설치해야 ide에서 봤던 에러나는 부분 빨간줄 처리가 가능하므로 install을 눌러준다.

install이 완료되면 완료되었따는 메세지가 출력된다.

 

install이 완료되었따면 

test.py에

import torch
torch.manual_seed(0)
a = torch.rand(4)
print(a)

간단한 테스트 코드를 넣고 F5 키를 눌러준다.

 

debug configuration 선택 창

위와같은 창이 나오면 python file을 선택해준다.

 

아래처럼 terminal창에 많은 명령어가 나오면서 tensor 값들이 나왔다면 잘 실행된 것이다.

 

6. python파일 디버깅 하기

vscode python debugging 영상

F9키 또는 마우스로 해당 부분을 클릭해 빨간점이 나오게 한후 F5키를 눌러보자

왼쪽에서 Variables 부분에서 변수의 값을 확인할 수 있다.

 

a.shape 값이 어떻게 나올지 알고 싶다면 바로 아래의 Watch를 활용할 수 있다.

위 처럼 a.shape의 값이 4임을 watch를 통해 확인할 수 있다.

 

 

위 기능을 사용해서 많은 리서처와 엔지니어 분들이 좀더 편하고 효율적으로 연구개발을 할 수 있기를 바랍니다.

 

공식 python entenstion tutorial 참조

https://code.visualstudio.com/docs/languages/python

 

 

'잡것들' 카테고리의 다른 글

FlexASIO Driver 빌드&설치법  (0) 2021.10.20
Visual Studio CMake 환경 구성하기  (0) 2021.10.20
USB Streamer firmware 변경하는 법  (0) 2021.10.01
github token 생성 & store in server  (0) 2021.09.08
mpi4py 설치 오류 해결방법  (0) 2021.09.06