본문 바로가기

devops

Jenkins tomcat설정(maven,war) version tomcat:9.x java 11 springboot 2.7.18 주의할점: springboot 3.x부터는 tomcat10버전 이상을 사용해야하지만 jenkins에서 tomcat9.x까지 밖에 지원을 안해줘서 springboot3.x로 배포할 경우 404 Error가 뜨는것을 확인했습니다. 1.tomcat plugin(Deploy to container) Jenkins에서 Deploy to container를 다운받아줍니다. 2.tomcat 설정 2-1.manager context.xml파일 변경 tomcat파일의 \webapps\manager\META-INF의 context.xml파일로 들어가 위의 내용을 주석으로 변경해줍니다. 2-2.host-manager context.xml파일 변.. 더보기
Jenkins git,maven,war 설정(maven,war) 1.Jenkins maven 설정 1-1.maven Integration 다운로드 maven Integration plugin을 다운로드 받아줍니다. 1-2.maven installations 등록 jenkins관리 -> Tools에서 maven Installations를 등록해줍니다. 2.Jenkins maven 프로젝트 생성 2-1 maven Item 생성 project이름을 입력하고 Maven project로 아이템을 생성합니다. 2-2 git 연동 소스코드 관리에서 git을 클릭하고 Repository URL과 Credentials를 설정해줍니다. Credentials 참고블로그 https://datacook.tistory.com/93 Github 개발자용 Secret key 발급 방법 (jenk.. 더보기
docker 명령어 1.docker run -d:현재 실행하고 있는 다른 콘솔에서 실행 -v:docker가 실행되고 있는 환경의 디렉토리와 docker내부의 디렉토리와 연결 -> docker내부에서 발생된 데이터는 docker가 삭제될 경우 데이터가 삭제되므로 연결이 필요하다. -p:container내부의 포트를 어떤 포트로 연결할것인지 설정 ex) -p a:b:container 외부에서 a포트를 사용하면 container의 b포트로 연결 --name: container 이름 설정 --privileged:시스템의 모든장치에 접근할 수 있으며 커널의 기능을 대부분 사용가능하다. 2.docker bash docker exec -it [container name] bash docker 내부의 bash 사용가능 3. docker .. 더보기
docker에 Jenkins 설치 및 설정하기 필수 SWDocker1.Jenkins설치docker pull jenkins/jenkins docker pull jenkins/jenkins 명령어를 통해 jenkins를 설치해준다. docker Jenkins dochttps://hub.docker.com/r/jenkins/jenkins Docker hub.docker.com2. Jenkins 구동docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk17-d:현재 실행하고 있는 다른 콘솔에서 실행 -v:docker가 실행되고 있는 환경의 디렉토리와 docke.. 더보기
Nginx와 Let's encrypt를 사용한 https 설정하기 Nginx의 보안 이점 클라이언트와 WAS 사이에 리버스 프록시 서버인 Nginx를 둠으로써 클라이언트는 웹서버처럼 리버스 프록시 서버에 요청을 하고 WAS는 리버스 프록시로부터의 사용자 요청을 대신 받는다. 리버스 프록시 서버를 사용함으로써 클라이언트는 WAS의 존재를 알지못하므로 보안이 향상되는 결과를 가져온다. 1.Nginx 설치 $ sudo apt update $ sudo apt install nginx 위의 명령어를 사용하여 nginx를 설치합니다. 2.Nginx 리버스 프록시 설정 $ cd /etc/nginx/conf.d $ vim default.conf /etc/nginx/conf.d로 이동하여 vim을 이용하여 Nginx 설정 파일인 default.conf 를 만듭니다. server { l.. 더보기
GithubAction과 CodeDeploy를 활용한 CICD:EC2에 SpringBoot 배포-3(Appspec파일 작성,배포 스크립트 작성,github action workflow 작성 및 배포확인) Appspec파일 작성 CodeDeploy에서 배포를 위해 참조할 AppSpec파일을 작성해야합니다. AppSpec파일은 파일에 정의된 hooks를 통해 배포를 관리하는데 사용됩니다. AppSpec파일은 루트 디렉토리에 위치해야합니다. AppSpec Refrence 1.appspec.yml 위치 2.appspec.yml version: 0.0 os: linux files: - source: / destination: /home/ubuntu/app overwrite: yes permissions: - object: / pattern: "**" owner: ubuntu group: ubuntu hooks: AfterInstall: - location: scripts/stop.sh timeout: 60 run.. 더보기
GithubAction과 CodeDeploy를 활용한 CICD:EC2에 SpringBoot 배포-2(S3 생성,CodeDeploy 생성,IAM 사용자 추가) S3생성(S3->버킷->버킷 만들기) (1)버킷이름,AWS리전,객체 소유권 설정 버킷이름과 AWS 리전을 선택해줍니다. 객체 소유권은 ACL 비활성화됨을 선택해줍니다. (2) 퍼블릭 액세스 차단 설정 (3) 버킷 버전관리,기본암호화 설정 버킷버전관리,기본암호화 설정을 하고 버킷을 생성합니다. CodeDeploy 애플리케이션 생성 (CodeDeploy->배포->애플리케이션 생성) 1.애플리케이션 이름 및 컴퓨팅 플랫폼 설정 원하는 애플리케이션 이름과 컴퓨티플랫폼은 EC2/온프레미스로 설정합니다. CodeDeploy 배포그룹 생성 1.애플리케이션 배포그룹 생성 위에서 생성한 애플리케이션으로 들어가 배포그룹생성을 합니다. 2. 배포그룹 이름,서비스 역할,배포 유형 원하는 배포그룹 이름을 입력하고 서비스역할에는.. 더보기
GithubAction과 CodeDeploy를 활용한 CICD:EC2에 SpringBoot 배포-1(배포과정,IAM 역할설정,EC2 생성 및 설정) 배포과정 코드를 작성한 뒤, Github에 push를 한다. master 브랜치에 push가 발생하면, Github Actions이 실행된다. Github Actions는 빌드를 하여 코드에 문제가 없는지 확인한다. Github Actions는 프로젝트 파일을 압축하여 AWS S3로 전송하고, CodeDeploy에게 배포를 요청한다. CodeDeploy는 S3로부터 zip 파일을 받아 배포를 진행한다. IAM 역할설정 1.EC2에서 S3 접근 권한 IAM 생성 (1) IAM -역할-역할만들기 (2)AmazonS3FullAccess 권한 추가 (3)역할 이름 및 권한 확인 2.CodeDeploy 역할 생성 (1) IAM-역할-역할 만들기 (2) AWSCodeDeployRole 권한 확인 (3) 역할 이름 .. 더보기