클라우드 공부

AWS Jenkins를 이용한 CICD 구축해보기 - 3 docker파일 준비 및 ssh 연결

니가가라하와와 2022. 12. 8. 15:20

1. 프로젝트 docker 빌드 준비

> 우리가 준비한 프로젝트 최상단 디렉토리에 Dockerfile 생성 안에 내용은 어디서 주워 왔다.

> 아래 내용 입력 후 저장한다. 이름은 Dockerfile이라고 하면 됨  확장자 필요없음 ...... 

> 이 프로젝트에 의존성 설치를 requirements.txt에 있는 리스트로 설치하고

> 컨테이너 포트 8000번 오픈

> CMD는 배포 시 실행될 명령어로 구니콘으로 8000번 포트 열겠다는 뜻이다 .

> 콘솔을 통해 프로젝트 가상환경 접속 후 최상단 디렉토리로 이동

> pip freeze > requirements.txt를 입력해 가상환경에 깔려 있는 패키지 리스트를 넣는다.

> 이렇게 의존성 리스트가 들어온걸 볼 수 있다.

> 이 파일은 옮겨진 후 빌드 과정에서 의존성 패키지로 깔리게 된다.

> 이제 도커 파일을 실행하면  컨테이너 안에 위 목록에 의존성 패키지를 설치하고 구니콘을 실행해 8000번 포트를 열게 될거다.

2. jenkins ec2ssh연결 진행하기

> 우선 jenkins 메인 페이지에서 jenkins관리 - 플러그인 관리 클릭

> 오른쪽 Available plugins 클릭

> 설치 가능 클릭 후 검색에 Publish Over SSH 입력 후 나오는 플러그인 체크

> 큰 일이 없는 경우 Download now and install after restart 클릭

> 그럼 이렇게 설치가 진행되게 된다 .

> 그럼 젠킨슨이 설치된 서버로 이동해서 미리 준비한 ssh키를 젠킨슨 루트 디렉토리에 .ssh로 옮긴후 권한을 젠킨슨으로 바꿔주자

> 처음에는 안 옮겼었는데 당연히 안되서 ..ㅠㅠ 아마 젠킨슨 디렉토리의 상위는 /var/lib/jenkins이여서 그런거 같다.. 아직 이런쪽 공부가 부족한듯 ..ㅠ

 

> 퍼블릭 키는 타겟으로 하는 ec2 인스턴스 안에 넣어주자 대개 .ssh 디렉토리 안에 넣었다.

> sudo vi .ssh/authorized_keys

> 퍼블릭키 입력 후 저장

> 다시 젠킨슨 홈페이지로 돌아와서

> jenkins 관리 - 시스템 설정 으로 들어온다

> 아까 설치한 플러그인인 Publish over SSH 설정 창이 보이는데

> path 부분에 ./.ssh/WAS.pem을 입력 위 부분에 경우 루트 디렉토리로 jenkins이 설치된 디렉토리로 잡혀 있다. 입력 후 아래 추가창을 클릭

==================================

Name >> 원하는 이름 입력

Hostname >> 타겟 Was서버에 ip주소 입력

Username >> ssh연결할 계정 이름

Remote Directory >> 배포 접근할 디렉토리 이름

===================================

> 알맞게 적고 아래 test Configration 클릭

> 성공이라고 뜨면 하단에 저장 클릭