Zero To One

DevOps를 하면서 리눅스를 써야하는 이유 본문

DevOps

DevOps를 하면서 리눅스를 써야하는 이유

Zero_To_One 2022. 2. 14. 21:11

CI/CD 과정 중 주로 Operate(문제 해결, 모니터링 등) 업무에서 쓰이기 때문이다.

       : DevOps를 하면서 리눅스 운영체제에 익숙해 져야하는 이유

1) 리눅스 기본 명령어

  • 파일 관리
  • 디렉토리 개념
    • . : 현재위치
    • .. : 상위 폴더
    • / : 루트
    • ~ : 홈
    • find 명령어 : 디렉토리 내에서 특정 파일을 찾는 것
    • which 명령어 : 지금 내가 실행하는 명려이 어떤 디렉토리에 있는지 알려주는 명령어 

2) 기본 도구

  • nano 텍스트 에디터
  • apt 패키지 매니저

--> 서버에서 실행할 프로그램은 어디에 있는가? 어떻게 설치할 것인가?

 

3) 프로세스와 기본 명령어

  • 지금 작동 중인 프로그램은 무엇인가? (ps)
  • 그 프로그램을 어떻게 실행 할 것인가? (백그라운드 작업시 : & or nohup)
  • 그 프로그램을 어떻게 종료할 것인가? (kill-9, 강제종료)

4) 표준 스트림과 파이프라인, 리다이렉션

  • 프로그램이 출력하는 내용(stdout, stderr)을 어떻게 기록할 것인가? 어떻게 분석할 것인가?
    • 입력을 명령 대신 파일로 리다이렉션 ( < )
    • 화면 출력대신 파일로 리다이렉션 ( > )

5) 환경 변수 및 스크립팅

  • 프로그램을 테스트 환경에서 돌릴 것인가? 프로덕션 환경에서 돌릴 것인가?
  • 어떻게 프로그램을 자동으로 돌릴 것인가?

 

6) 권한

  • 프로그램을 어떻게 실행 가느아게 할 것인가? (chmod)
  • 프로그램이 루트 권한을 필요로 할 때는 어떻게 할 것인가? (sudo)

 

7) 시스템 모니터

  • cpu, 메모리, 네트워크, 사용중인 파일 등을 어떻게 확인 할 것인가? (top)

 

DevOps 트러블 슈팅법

1. 흔한 문제 상황

- 특정 프로세스가 파일/네트워크 포트를 점유하는 경우

2. 문제가 되는 프로세스가 무엇인지 알아낸다

 - 파일이 문제가 되는 경우 (isof)

 - 네트워크가 문제가 되는 경우(netstat)

3. 찾아서 프로세스를 죽이는 방법

 - 명령어로 프로세스 ID(PID)를 찾는다 (ps)

 - 명령어를 이용해 해당 프로세스를 죽인다 (kill)

 

 

결론

  • 명령에 따른 결과를 보고, 그 결과가 어떤 의미인지 파악할 수 있는 능력이 매우 중요함

        1) 별다른 결과 없이 프롬프트가 뜬다면, 명령이 잘 실행된 것.

        2) 잘 모르는 결과는 메세지를 복사후 검색

 

 

  • 배포과정에 쉘 스크립트로 자동화가 필요한 경우가 종종 발생함

       1) 배포 과정은 한마디로 프로비저닝 후 릴리즈할 애플리케이션을 실행하는 것

          (프로비저닝 : 미리 서버 등을 준비하는 것)

          (릴리즈 : 배포할 애플리케이션 선정)

 

       2) 사람 손으로 하면 실수가 일어날 수 밖에 없는 과정이므로 쉘 스크립트로 자동화가 필요하다

'DevOps' 카테고리의 다른 글

2) DevOps 규모에 따른 운영  (0) 2022.02.08
1) DevOps, CI/CD란 무엇인가?  (0) 2022.02.07