JupyterHub는 기본적으로 웹 서버이고, TCP 포트 8000을 기본으로 사용한다.
따라서 웹 브라우저로 http://IP주소:8000 주소에 접속할 수 있음
오늘은 이러한 Jupyterhub 프로그램을 rocky linux에 설치하는 단계를 알아보고, 이를 토대로 직접 쉘 스크립트를 작성하여 한 줄짜리 커맨드 라인을 만들어보았다.
(한 줄로 설치 가능한 커맨드 라인은 맨 밑에 적어놨으니 참고!)
JupyterHub Setup
시작 전, 이 모든 커맨드들은 root 권한으로 시작한다는 점을 명심하자.
0. 패키지 업데이트
dnf -y update
1. Jupyterhub와 라이브러리 설치
dnf install -y python3-pip npm
npm install -g configurable-http-proxy
pip install jupyterhub jupyterlab notebook
2. JupyterHub 설정 파일 생성 및 편집
mkdir /etc/jupyterhub
jupyterhub --generate-config
mv jupyterhub_config.py /etc/jupyterhub
vi /etc/jupyterhub/jupyterhub_config.py
vi로 위 파일을 열어서 아래의 두 줄을 추가하거나 기존 주석을 찾아서 uncomment하기
c.Authenticator.allow_all = True # 서버에 존재하는 모든 유저의 로그인 허용
c.JupyterHub.ip = '' # 원격 서버의 접속 허용
3. 방화벽 제어
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload
4. Jupyterhub 실행
jupyterhub --config /etc/jupyterhub/jupyterhub_config.py
5. jupyterhub 이름의 서비스 제작
vi /etc/systemd/system/jupyterhub.service
vi로 위 파일에 아래 내용을 기입하여 저장한다.
[Unit]
Description=JupyterHub service # 타 관리자가 알아볼 수 있는 적절한 서비스 설명
After=syslog.target network.target # 이 서비스의 종속성 설정
[Service]
User=root # 서비스를 root 자격으로 실행
Type=simple # jupyterhub 프로세스가 생성되면 곧 서비스가 성공적으로 생성된 것으로 간주
WorkingDirectory=/etc/jupyterhub
ExecStart=/usr/local/bin/jupyterhub --config=jupyterhub_config.py # 명령을 절대경로로 선언
ExecStop=/usr/bin/pkill -f jupyterhub # 종료 시 사용할 명령
Restart=always # 프로세스가 버그 등으로 죽으면 계속 재실행 시도 명령
TimeoutStartSec=60
RestartSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=jupyterhub # syslog에 사용할 프로세스 식별자
[Install]
WantedBy=multi-user.target network-online.target
6. systemd를 통해 jupyterhub 실행
systemctl daemon-reload
systemctl enable jupyterhub
systemctl start jupyterhub
systemctl status jupyterhub
여기까지 하면 설치는 완료된다.
이를 정리해서 하나의 쉘 스크립트 파일 install_jupyterhub.sh로 다음과 같이 구현해보았다.
install_jupyterhub.sh
#!/bin/bash
echo "Updating system packages..."
dnf -y update
echo "Install JupyterHub and Libraries..."
dnf install -y python3-pip npm
npm install -g configurable-http-proxy
pip install jupyterhub jupyterlab notebook
echo "Creating JupyterHub configuration files..."
mkdir -p /etc/jupyterhub
jupyterhub --generate-config
mv jupyterhub_config.py /etc/jupyterhub/
echo "Editing JupyterHub configuration files..."
echo "c.Authenticator.allow_all = True" >> /etc/jupyterhub/jupyterhub_config.py
echo "c.JupyterHub.ip = ''" >> /etc/jupyterhub/jupyterhub_config.py
echo "Updating firewall rules..."
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload
echo "Creating JupyterHub systemd service..."
cat << EOF > /etc/systemd/system/jupyterhub.service
[Unit]
Description=JupyterHub service
After=syslog.target network.target
[Service]
User=root
Type=simple
WorkingDirectory=/etc/jupyterhub
ExecStart=/usr/local/bin/jupyterhub --config=/etc/jupyterhub/jupyterhub_config.py
ExecStop=/usr/bin/pkill -f jupyterhub
Restart=always
TimeoutStartSec=60
RestartSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=jupyterhub
[Install]
WantedBy=multi-user.target network-online.target
EOF
echo "Starting JupyterHub service..."
systemctl daemon-reload
systemctl enable jupyterhub
systemctl start jupyterhub
echo "Checking JupyterHub service status..."
systemctl status jupyterhub
echo "JupyterHub installation complete. Service is now running."
https://gist.github.com/sallysooo/529f1f02a68ee0a99f26319b2cb532ba
위 gist 링크에도 올려놓았으니 참고
최종 설치 command line
이를 바탕으로 최종적인 설치 커맨드라인을 작성해보면 다음과 같다. (root 권한 실행 필요)
# curl -fsSL https://gist.githubusercontent.com/sallysooo/529f1f02a68ee0a99f26319b2cb532ba/raw/fad01a2b4a09ece505f9b94a23fd8607472a8bea/install_jupyterhub.sh | bash
해당 커맨드라인을 실제로 로컬에서 실행해보면 이렇게 잘 설치되는 것을 확인할 수 있다!
'Linux' 카테고리의 다른 글
[Rocky Linux] 시스템 로그 확인 방법 및 로그별 저장 위치 - /var/log, journalctl (0) | 2024.11.14 |
---|---|
[Linux] 리눅스 시스템 부팅 & systemd 서비스 명령어 총정리 (1) | 2024.11.14 |
[Rocky Linux] 파일 공유를 위한 SAMBA 삼바 서버 구축하기 (0) | 2024.11.08 |
[Rocky Linux] WordPress 구축하는 방법 (0) | 2024.11.07 |
[Rocky Linux] 웹 서버 LAPM 구축하는 방법 (0) | 2024.11.05 |