ubuntu 18.04 시작 프로그램 등록

작업 가이드

실행 할 shell 만들기

  • 위치(예시) : /home/ubuntu/start.sh
  • 내용
    #!/bin/bash 
    touch /home/ubuntu/test 

shell 실행권한 주기

  • chmod +x /home/ubuntu/start.sh

service 파일만들기

  • sudo vi /lib/systemd/system/service_name.service

    ----------------------------------------내용 시작 
    [Unit] 
    Description=Star shell 
    
    [Service] 
    ExecStart=/home/ubuntu/start.sh 
    
    [Install] 
    WantedBy=multi-user.target 
    Alias=service_name.service 
    ----------------------------------------내용 끝 
    상세 설명 
    [Unit] 
        Description : 설명 
    [Service] 
        ExecStart : 실행 할 shell 
    [Install] 
        WantedBy : multi-user.target은 runlevel3 이 셋팅 되었을 때를 의미 
        Alias : 별칭을 지정해 사용할 수 있다. ex) httpd.service 의 Alias=apache.service  

service 파일에 실행권한 주기

  • sudo chmod 755 /lib/systemd/system/service_name.service

service 파일 시작 프로그램 등록하기

  • sudo systemctl enable service_name.service

[참고] service 직접 실행하기

  • sudo systemctl start service_name.service

패커(Packer)

개요

  • 하나의 설정 소스로부터 여러 플랫폼을 지원하는 머신/컨테이너 이미지를 만드는 도구이다.

구성

  • 이미지 : 머신의 특정한 상태를 그대로 저장하고, 나중에 재사용 가능하도록 준비해둔것

    • 한계
      • 사용중인 가상머신을 그대로 저장하기 때문에 구성하는 과정을 알 수 없다.
      • 현재상태를 구현 하기 힘들다.
      • 최신상태를 저장한 이미지를 만들어 관리해야하기 때문에 비용이 비효율 적이다.
    • 대안
      • 비이스 이미지를 기반으로 프로비저너(Provisioner)를 통해 가성머신에 패키지 설치와 환경설정 작업 진행
      • 프로비저닝(Provisioning) 이 끝난 상태를 빌더(Builder)를 통해서 특정 플랫폼에서 사용 가능한 이미지로 저장
      • 최종 결과물을 저장하는 방식이 아닌, 이미지 생성과정에 대한 모든 정보를 코드로 관리한다.
      • 다양한 플랫폼에서 유사한 이미지를 만들어 사용하는것도 가능하다.
  • 빌더(Builder) : 이미지를 생성하는 작업

    • 지원 서비스 : AWS IAM, Google Compute Engine, Open Stack, Docker ..
  • 프로비저너 (Provisioner) : 이미지를 생성 할때 사용하는 빌드 도구

    • 역할
      • 이미지를 원하는 상태로 만들 수 있다.
    • 지원 서비스 : 원격 셀(Remote Shell), 로컬 셀(Local Shell), 파일 업로드(File Upload), 파워 셀(Power Shell), 윈도우 셀(Window Shell), 엔서블(Ansibie), 셰프(Chef), 퍼핏(Puppet)

파일 기본 포멧

{
    "builders": [{
        // ...
    }],
    "provisioners": [{
        // ...
    }]
}

특징

  • 기본 포멧 에서 볼 수 있듯이 빌더(Builder), 프로비저너(Provisioner) 값을 다수로 설정 할 수 있습니다.

설치

WINDOWS 10

  • 다운로드
    https://releases.hashicorp.com/packer/
  • 압축을 풀어 아래 폴더를 만들고 packer.exe를 위치시킨다.
    C:\packer
  • 환경변수에서 [시스템 변수]-[Path] 에 C:\packer 추가시킨다.

jupyterlab 설치

OS : ubuntu 18

설치

  • apt update
    sudo apt update

 

  • jupyterlab pip 설치
    sudo apt install -y python3-pip jupyter-core

 

  • jupyterlab 설치
    pip3 install jupyterlab

 

  • user profile 재 적용
    source ~/.profile

 

  • config 파일 생성
    jupyter notebook --generate-config
    출력 : Writing default config to: /home/ubuntu/.jupyter/jupyter_notebook_config.py

 

  • jupyter_notebook_config.py 파일 최하단에 아래 내용 추가
    vi /home/ubuntu/.jupyter/jupyter_notebook_config.py

      c = get_config()
      c.NotebookApp.ip = '[내부 IP]'
      예시:
          c = get_config()
          c.NotebookApp.ip = '172.31.24.168'

    ip 확인 방법

      ubuntu@ip-172-31-24-168:~$ ifconfig
      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
              inet 172.31.24.168  netmask 255.255.240.0  broadcast 172.31.31.255
              inet6 fe80::8e2:ff:fe7e:171c  prefixlen 64  scopeid 0x20<link>
              ether 0a:e2:00:7e:17:1c  txqueuelen 1000  (Ethernet)
              RX packets 99783  bytes 141887383 (141.8 MB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 13314  bytes 1613233 (1.6 MB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
              inet 127.0.0.1  netmask 255.0.0.0
              inet6 ::1  prefixlen 128  scopeid 0x10<host>
              loop  txqueuelen 1000  (Local Loopback)
              RX packets 378  bytes 36028 (36.0 KB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 378  bytes 36028 (36.0 KB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

실행

  • jupyter lab 실행
    jupyter lab --allow-root

      ubuntu@ip-172-31-24-168:~$ jupyter lab --allow-root
      [I 11:32:14.547 LabApp] Writing notebook server cookie secret to /home/ubuntu/.local/share/jupyter/runtime/notebook_cookie_secret
      [W 11:32:14.843 LabApp] JupyterLab server extension not enabled, manually loading...
      [I 11:32:14.847 LabApp] JupyterLab extension loaded from /home/ubuntu/.local/lib/python3.6/site-packages/jupyterlab
      [I 11:32:14.847 LabApp] JupyterLab application directory is /home/ubuntu/.local/share/jupyter/lab
      [I 11:32:14.849 LabApp] Serving notebooks from local directory: /home/ubuntu
      [I 11:32:14.849 LabApp] The Jupyter Notebook is running at:
      [I 11:32:14.850 LabApp] http://localhost:8888/?token=7b8f33048569544c7aa237ee485698eb21d7c7e7182b9c12
      [I 11:32:14.850 LabApp]  or http://127.0.0.1:8888/?token=7b8f33048569544c7aa237ee485698eb21d7c7e7182b9c12
      [I 11:32:14.850 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
      [W 11:32:14.854 LabApp] No web browser found: could not locate runnable browser.
      [C 11:32:14.854 LabApp]
          To access the notebook, open this file in a browser:
              file:///home/ubuntu/.local/share/jupyter/runtime/nbserver-7550-open.html
          Or copy and paste one of these URLs:
              http://localhost:8888/?token=7b8f33048569544c7aa237ee485698eb21d7c7e7182b9c12
           or http://127.0.0.1:8888/?token=7b8f33048569544c7aa237ee485698eb21d7c7e7182b9c12
  • 위 출력 내용에 IP를 외부 IP를 입력한다.
    http://[외부 IP]:8888/?token=7b8f33048569544c7aa237ee485698eb21d7c7e7182b9c12

 

  • 빙화벽 AWS 라면 보안그룹에 8888 포트를 연다.

 

  • 백그라운드 실행 및 소유권 포기 (ssh 접속을 끊어도 서비스를 유지하는 방법)
    단축 키 입력 : Ctrl +Z
    cmd 입력 : bg
    cmd 입력 : disown -h

vsftp를 이용한 서버에 ftp 설치


작업 개요

- 서버에 파일 전송 프로토콜(File Transfer Protocol) FTP 설치하기 

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

- CentOS 호환가능

작업 내용 

오픈소스인 vsftp를 이용해 서버에 FTP 설치하기



작업 절차 


      1. vsftp가 설치 되었는지 확인한다. 

          - rpm -qa vsftpd*


      2. yum을 이용해 vsftp 페키지를 설치한다.

          - sudo yum install vsftpd -y


      3. vsftp 상태를 확인한다.

          - sudo service vsftpd status


      4. vsftp의 config 내용을 모두 지우고 아래 내용으로 입력한다.

          - sudo vi /etc/vsftpd/vsftpd.conf

---------------------------------------------------------------------------------------------------------------------------------

    anonymous_enable=NO

    local_enable=YES

    write_enable=YES

    local_umask=022

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_file=/var/log/xferlog

    xferlog_std_format=YES

    chroot_local_user=YES

    listen=YES

    pam_service_name=vsftpd

    userlist_enable=YES

    tcp_wrappers=YES

    pasv_enable=NO


      5. vsftp 시작

          - sudo service vsftpd start


6. 해당 작업이 완료 되면 설치 작업이 끝난다. 그런 다음 방화벽에 21번 포트를 열어준다.




그럼 오늘도 행복한 하루 되세요.

AWS EC2에 java 1.7 openjdk 버전 1.8 업그레이드 또는 신규 설치 


작업 환경 

서버 : AWS EC2 

OS : Amazon Linux AMI 이미지 사용.

작업 내용 

- EC2에 기본 설치된 1.7 버전의 java를 업그레이드하거나, 새로 java를 설치하는 작업이다.



작업 절차 


- 설치된 Java 버전 확인한다. 일반적으로 1.7 버전이 설치 되어 있다. 설치 되어 있지 않아도 상관 없다.

java -version



- 설치 할 수 있는 Java 리스트를 확인 한다.

sudo yum list java*jdk-devel



- Java 1.8 설치하는 명령어를 입력한다.

sudo yum install -y java-1.8.0-openjdk-devel.x86_64



- 현재 1.7과 1.8 버전이 모두 설치 되어 있으므로, 아래 명령어로 활성화 할 Java 버전 선택한다.

sudo /usr/sbin/alternatives --config java



- 아래 그림에서 처럼 활성화 할 Selection 번호를 입력한다.


Java1.8을 활성화 할 것이므로 2를 입력하고 Enter를 누른다.



- 활성화 된 Java 버전을 확인한다.

java -version



- 참고사항- 아래 명령어를 입력하면 기존에 설치된 Java1.7 버전이 삭제된다.(선택사항)

sudo yum remove java-1.7.0-openjd




그럼 오늘도 행복한 하루 되세요.

+ Recent posts