DevOps/CICD 도구

CI란? 코드를 깃허브에 올리고, 통합(Merge), 빌드, 테스트하는 과정을 자동화! 일반적으로 일정시간마다, main 브랜치를 테스트, 빌드한다. ( Continuous Integration ) 필요성 빌드 테스트 코드를 따로 입력할 필요없이, push만 하면, 결과를 바로 알 수 있다! ( 빠른 수정 가능 = 안정적인 서비스 ) CI 주의사항 팀원들이 코드를 깃허브에 올리고, 합쳐(Merge)야 하므로 - 충돌 수정을 최소화 해야한다. - ( 최소한 작은 단위로 개발 ) CD란? 배포 자동화! ( Continuous Deployment ) 자동 배포 안함 ( Continuous Delivery ) 이럴거면 왜 줄여씀?
Ansible 이란? 원격 컴퓨터 자동 관리 툴 ( RedHat에서 만들었다 ) 필요성 원클릭 서버(Front, Back 등등) 배포 가능 구조 제어 컴퓨터 ( Control node ) - 다른 컴퓨터를 관리하는, 관리자 컴퓨터 - 내부에 관리할 내용( inventory )이 들어있다. 관리(당하는) 컴퓨터 ( Manage node ) - 호스트, 노드 라고 부른다. 설치 python3 -m pip install --user ansible # centos sudo yum install ansible # ec2 sudo amazon-linux-extras install ansible2 사용법 1. 기본 파일 사용하기 inventory 구조 및 설명 [hosts] - 관리용 컴퓨터 등록 파일을 넣는 곳 [..
젠킨스란? 여러 쉘 명령어를 적어놓고, 이를 웹 UI를 통해서 실행할 수 있는 프로그램 필요성 프론트엔드, 백엔드 서버를 재배포하는 코드(pipeline)를 작성하고 이 과정을 원클릭으로 실행할 수 있게 해줌! 작동방식 Jenkinsfile 파일 작성 Jenkinsfile 문법 pipeline # 하나의 큰 작업 agent # 젠킨스 스레드 ( 작업 스레드 지정 ) # 배포 단계 설정 stages # 단계들 stage # 단계 steps # 세부 과정 post # stage 종료 후 작업 설정 # clean workspace cleanWs() # use shell script script sh triggers # 반복 주기 설정 Jenkinsfile (pipeline) 작성 해당 파일은 이해를 위한 것으..
MOONCO
'DevOps/CICD 도구' 카테고리의 글 목록