2023년 1월 30일 월요일

Windows to ubuntu ssh (powershell - ssh) 연결

 1. ubuntu - ip 확인(내부의 ip주소)

> ip a


2. SSH server설치

# ssh 설치
> sudo apt update
> sudo apt install openssh-server

# ssh 상태 확인
> sudo systemctl status ssh

# ssh 실행
> sudo systemctl start ssh

# ssh 중지
> sudo systemctl stop ssh


3. SSH server port 확인

# ssh port 확인 (실제 서비스되고 있는 port 확인)
> sudo ss -tulpn | grep ssh


4. 우분투 방화벽 설정

# 우분투 방화벽 설정 해제
> sudo ufw allow ssh


5. SSH server 연결

# ssh 연결 (우분투에서 바로 해봄)
> sudo ssh username@내부_ip_address -p sshportnumber


6. 공유기(iptime) 포트포워딩

# iptime 접속
chrome: 192.168.0.1 ->login/pw

# Port forwarding
Advanced Setup->NAT/Routing->Port Forwarding
Internal IP, External port, Internal port값을 설정(실제 서비스되고 있는 port번호)


7. window powershell 접속(원격)

# ssh 연결
> ssh username@외부_ip_address -p sshportnumber



참고 자료


댓글 6개:

  1. ss 노트북에서 torchserve용 mar파일 작성

    # SS 노트북 (Ubuntu Linux 18.04)
    43 cd PycharmProjects/
    44 cd torchserve_example/

    # 이미 만들어져 있는 mar파일을 실행
    45 conda activate py38
    47 torchserve --start --model-store model_store --models poop_classifier.mar --ts-config myconfig.properties
    49 torchserve --stop

    # mar 파일을 다시 만들어 실행해 봄
    50 torch-model-archiver --model-name poop_classifier --model-file poop_model2.py --version 1.0 --serialized-file poop_resnet18_best0928.pt --extra-files index_to_name.json --handler poop_handler.py
    # 생성된 mar 파일을 model_store폴더로 이동
    51 torchserve --start --model-store model_store --models poop_classifier.mar --ts-config myconfig.properties
    84 curl http://192.168.0.45:8080/predictions/poop_classifier -T Image38.jpg
    52 torchserve --stop

    답글삭제
  2. *** Torchserve 실행 ***

    conda create -n py38 python==3.8 # 가상 환경 생성
    conda activate py38
    cd serve # 다운 받은 serve 폴더(torchserve)로 들어감

    # torchserve dependencies설치 시 오류 방지를 위해 미리 설치
    conda install -c conda-forge packaging
    conda install -c anaconda protobuf
    conda install -c anaconda sympy

    # 필요한 lib 설치
    # python 버전별로 1회만 설치되는 것 같음
    # [Debug Report] 3.8버전 가상환경 하나 만들고, 설치, 실행 후, 같은 버전, 다른 이름의 가상환경을
    # 생성하고 설치하면 안됨. 3.9버전 가상환경 만들고, 다시 시도하면 이번에는 실행 성공
    python ./ts_scripts/install_dependencies.py

    # 추가로 필요한 lib
    conda install torchserve torch-model-archiver -c pytorch

    # 여기서부터는 테스트
    cd ..
    >torch-model-archiver --model-name poop_classifier --model-file poop_model2.py --version 1.0 --serialized-file poop_resnet18_best0928.pt --extra-files index_to_name.json --handler poop_handler.py
    >mv poop_classifier.mar model_store
    >torchserve --start --ncs --model-store model_store --models poop_classifier.mar --ts-config myconfig.properties

    답글삭제
  3. *** Docker 설정 및 Dockerfile로 나만의 image 만들기 ***

    > 내컴(windows)에서 ssh 이용하여, 서버로 접속.
    mobaXTerm 툴을 사용함
    > docker images # 현재 설치된 이미지 리스트 확인
    > docker pull pytorch/pytorch # 가장 많이 다운된 pytorch image
    hub.docker.com의 explorer에 가서 pytorch등을 넣고 이미지 검색 가능
    docs.docker.com의 reference에 가면 docker명령 확인 가능
    > docker images # 다운된 이미지 확인
    > docker run -it --rm --gpus all pytorch/pytorch # gpu를 사용해서 실행되는지 확인
    Container로 들어가면 python치고, import torch, torch.cuda.is_available()로 확인
    > exit로 빠져 나옴

    # 현재 작업 폴더에서 Dockerfile 이름의 파일 만듬. gedit를 사용함
    # gedit 사용하여 아래 페이지의 Dockerfile 작성
    > docker build -t vislab/torch . # 현 폴더의 Dockerfile을 이용하여 새로운 image생성
    > docker images # 생성된 이미지 확인
    # 잘못 생성했으면
    > docker rmi image-id 또는 docker rmi -f image-id로 제거

    # host의 test폴더와 container의 /app폴더를 연결하고, gpu를 사용하는 container 생성
    > docker run -it --rm -v /home/vislab/Downloads/test:/app --gpus all vislab/torch
    % container로 들어가면,
    % python -> import torch, cv2, sklearn, pandas, matplotlib, git, tensorboard 등이 되는것 확인

    답글삭제
  4. *** Dockerfile ***
    d:\2023\poop_up에 있음

    FROM pytorch/pytorch:latest

    # Remove any third-party apt sources to avoid issues with expiring keys.
    RUN rm -f /etc/apt/sources.list.d/*.list

    #RUN apt-get update
    #RUN apt-get -y install libgl1-mesa-glx

    # Install some basic utilities
    # 명령행은 하나의 layer를 형성하기 때문에 몰아서 한번에 설치
    RUN apt-get update && apt-get install -y \
    libgl1-mesa-glx \
    curl \
    ca-certificates \
    sudo \
    git \
    bzip2 \
    libx11-6 \
    && rm -rf /var/lib/apt/lists/*

    RUN conda update -n base -c defaults conda

    RUN pip install jupyter && \
    pip install scikit-learn && \
    pip install matplotlib && \
    pip install pandas && \
    pip install tensorboard

    RUN conda install -c conda-forge opencv


    # Create a working directory
    RUN mkdir /app
    WORKDIR /app

    # Create a non-root user and switch to it
    # su로 들어가기 위해 sudo su
    RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
    && chown -R user:user /app
    RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
    USER user

    # All users can use /home/user as their home directory
    ENV HOME=/home/user
    RUN chmod 777 /home/user

    답글삭제
  5. *** docker image save and load ***

    > docker save -o vislab_torch.tar vislab/torch # vislab/torch이미지를 vislab_torch.tar파일로 저장
    > docker load -i vislab_torch.tar # tar 파일을 다시 로드

    답글삭제
  6. *** Torchserve Docker ***

    # Docker 설치 (torchserve 용)
    56 sudo snap install docker
    59 sudo chmod 666 /var/run/docker.sock # 권한 설정

    60 docker pull pytorch/torchserve # BASE 이미지 다운: torch/torchserve:latest (3.66Gb)
    61 docker images
    62 cd serve/docker
    63
    64 nvidia-smi # cuda 버전 확인
    66 ./build_image.sh -b master -bt production -g -cv cu117 # 새로운 도커 이미지 생성 명령
    66 docker images # 생성된 *NEW* 이미지 확인: torch/torchserve:latest-gpu (7.55Gb)
    67 cd ../..

    # 도커 실행: Container 생성
    68 docker run --rm -it -p 8080:8080 -p 8081:8081 -v $PWD/model_store:/model_store pytorch/torchserve:latest-gpu torchserve --model-store=/model_store

    69 curl http://127.0.0.1:8080/ping
    70 curl http://127.0.0.1:8081/models
    73 cd model_store/

    # Docker로 딥러닝 모델 mar파일을 업로드함
    80 curl -X POST "http://localhost:8081/models?initial_workers=2&url=poop_classifier.mar"
    81 curl http://127.0.0.1:8081/models
    83 cd ..
    # 이미지 보내서 결과 확인
    84 curl http://192.168.0.45:8080/predictions/poop_classifier -T Image38.jpg

    # 후 처리
    90 docker ps # 실행 중인 Container 확인
    91 docker stop d86c7cdfaab2 # stop container gracefully
    92 docker kill d86c7cdfaab2 # stop container strongly

    답글삭제