반응형

■ Jupyter Notebook 외부 접속 허용

1. jupyter_notebook_config.py 파일에서 아래 항목 수정

  • c.NotebookApp.allow_root : True 로 수정
  • c.NotebookApp.ip : 0.0.0.0 로 수정
c.NotebookApp.allow_root = True
c.NotebookApp.ip = '0.0.0.0'

2. Jupyter Notebook 서비스 재실행

  • config 파일이 수정되었으므로 반영 미스를 방지하기 위해 재실행

3. 외부에서 Jupyter Notebook 접속

반응형
반응형

■ Jupyter Notebook 비밀번호 변경

1. jupyter_notebook_config.py 파일 작성

  • y  : 디폴트 상태인 jupyter_notebook_config.py 파일 작성
  • N : 기존 jupyter_notebook_config.py 파일 유지
jupyter notebook --generate-config

2. 비밀번호 변경

2.1 리눅스 환경에서 아래 명령어 실행

  • 파이썬 환경 실행
ipython

2.2 파이썬 환경에서 아래 명령어 실행

  • 변경하고자 하는 비밀번호를 Enter password, Verify password에 동일하게 입력
  • Output 으로 도출되는 문자열을 아래 작업에서 사용하기 때문에 저장해둔다.
from IPython.lib import passwd
passwd()

3. jupyter_notebook_config.py 파일 수정

vi ~/.jupyter/jupyter_notebook_config.py

3.1 아래 내용 추가 후 저장

  • 위에서 저장해둔 Output 문자열을 password 항목에 입력
c = get_config()
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'sha1:6c4bc95f9c67:7dd638f10319cb7a13df248f0d84d53b7e1510c1'

4. 수정한 비밀번호로 Jupyter Notebook 로그인

반응형
반응형

■ Jenkins 에서 sudo 권한 사용

해당 이슈를 해결하기 위해 또는 sudo 권한을 사용하기 위해서 Jenkins 에서 sudo 권한을 지정

 

이슈 : sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper Build step 'Execute shell' marked build as failure

 

■ CentOS

1. sudoers 파일 열기

$ sudo vi /etc/sudoers

2. [Defaults requiretty] 행을 찾아서 주석 처리

$ # Defaults requiretty

3. sudoers 파일 내용의 마지막 줄에 [jenkins ALL=(ALL) NOPASSWD: ALL] 추가

$ jenkins ALL=(ALL) NOPASSWD: ALL

■ Ubuntu

1. root 계정으로 sudoers.d 폴더로 이동

$ cd /etc/sudoers.d

2. jenkins 파일 생성

$ touch jenkins

3. jenkins 파일에 [jenkins ALL=(ALL) NOPASSWD: ALL] 를 입력

$ vi jenkins
$ jenkins ALL=(ALL) NOPASSWD: ALL

4. jenkins 파일에 보안을 위해 권한을 지정

$ chmod 0440 jenkins
반응형
반응형

■ 쉘 스크립트 파일을 찾지 못하는 이슈

sudo: unable to execute {쉘 스크립트 파일}: No such file or directory

 

■ 해결 방법

Linux 환경에 WinSCP와 같은 툴을 사용하여 쉡 스크립트 파일을 카피해서 생성하였을 경우

Linux 환경에서 해당 쉘 스크립트 파일을 찾지 못하는 현상이 있다.

따라서 Linux 환경에서 해당 파일을 직접 생성해서 해결함.


 

반응형
반응형

■ localtunnel로 내부망 웹 서버를 외부 인터넷망에 노출

로컬 PC(내부망)에서 웹 서버를 기동하고 결과를 외부 인터넷망(외부망)에서 확인해야하는 경우에 사용을 권하며, 내부망에서 웹 서버에 포트 및 방화벽 설정으로 로컬 PC의 IP로도 외부망에서 접근가능하지만, http 가 아닌 https 프로토콜 통신으로 보다 가독성이 좋은 도메인을 설정하여 웹 서버를 외부망에 노출하는 방법을 작성.


■ localtunnel

Localtunnel을 사용하면 DNS 및 방화벽 설정을 망치지 않고

로컬 개발 시스템에서 웹 서비스를 쉽게 공유할 수 있으며,

Localtunnel은 모든 요청을 로컬에서 실행 중인 웹 서버에 프록시하는

공개적으로 액세스할 수 있는 고유한 URL을 할당한다.


■ 작업

1. npm 설치

필자의 경우 lts npm을 설치

# Ubuntu
$ curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
$ apt-get install -y nodejs

# Debian
$ curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
$ apt-get install -y nodejs

# CentOS
$ curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash -

 

특정 버전 npm 설치는 아래 사이트 참고

 

GitHub - nodesource/distributions: NodeSource Node.js Binary Distributions

NodeSource Node.js Binary Distributions. Contribute to nodesource/distributions development by creating an account on GitHub.

github.com

2. localtunnel 설치

$ npm install -g localtunnel

3. 포트 및 도메인 설정

  • {포트} : 내부망에서 사용하고 있는 포트 입력
  • {도메인} : 기호에 맞게 사용
# 작성법
$ lt --port {포트} --subdomain {도메인}

# 예시
$ lt --port 8000 --subdomain hyunmin-sports-site

4. localtunnel로 기동한 웹 서버 접속

  • https://{도메인}.loca.lt 로 접속한다.(필자의 경우 도메인은 hyunmin-sports-site로 설정)
  • Click to Continue 클릭

5. 접속 완료

필자가 개발한 웹 서버에 정상적으로 접속된걸 확인할 수 있다.

반응형
반응형

■ 프로세스, 서비스 생성

실무에서 프로젝트를 진행하다 보면 Windows 가 아닌 Linux 에서 개발 환경을 구축하고 서버를 기동하는 사례를 많이 접하게 된다. Linux 에서 서버를 기동하는 이유는 다양하겠지만 가장 큰 이유는 터미널의 방대한 활용성과 불필요한 기능들을 기본적으로 제공하지 않는것이 아닐까라고 생각한다.

그럼 Linux에서 서버를 기동하기 위해 프로세스를 생성하는 방법에 대해 알아보자.

■ 작업 방법

1. 프로세스를 생성할 위치로 이동

$ cd /etc/systemd/system

2. 프로세스 파일 생성

* 필자의 경우 CC_BACK.service 라는 파일을 생성 했다.

$ touch [프로세스 파일명].service

3. 프로세스 파일 작성

* 빨간 박스로 체크한 부분과 Description 부분 정도만을 제외하고는 필자와 동일하게 작성해도 무관하다.

1) WorkingDirectory : 서버가 존재하는 디렉토리 경로

2) ExecStart : 서버 기동을 위한 실행파일 경로

$ vi [프로세스 파일명].service

4. 프로세스 리로드

* 프로세스 파일을 작성하거나 수정했을시 프로세스를 리로드 시킨다.

$ systemctl daemon-reload

5. 프로세스 상태 확인

$ systemctl status [프로세스 파일명]

* (성공) 프로세스 파일을 정상적으로 작성했을 경우 출력 화면

* (실패) 프로세스 파일을 잘못 작성했을 경우 출력 화면

해당 화면이 출력될 경우 서버 디렉토리 또는 서버 실행 파일을 다시 한번 확인 해보고 프로세스 파일을 작성해보길 바란다.

6. 프로세스 파일 실행 및 상태 확인

$ systemctl start [프로세스 파일명]

$ systemctl status [프로세스 파일명]

반응형

+ Recent posts