본문 바로가기

DevOps63

AWS S3를 이용한 Jenkins 마이그레이션 기존 Jenkins 환경을 다른 서버로 마이그레이션을 해야할 때가 있습니다. 일반적으로는 잘 없지만, 계열사 혹은 서비스 분리로 AWS 환경 자체가 변경될 경우가 있습니다. 그럴때를 대비해서 EC2에 설치된 Jenkins를 다른 EC2로 마이그레이션 하는 방법을 진행해보겠습니다. 전체 구조는 아래와 같습니다.Jenkins는 모든 설정과 Job 내용이 파일로 관리가 됩니다. 그래서 Jenkins가 설치된 디렉토리 전체를 타 서버로 이관만 하면 마이그레이션은 끝입니다. 그럼 하나씩 진행해보겠습니다. 1. 기존 서버 먼저 기존에 운영되던 Jenkins EC2 서버에서 root 계정으로 전환합니다. sudo su - root 안전하게 이관하기 위해 실행중인 Jenkins를 정지합니다. service jenkin.. 2020. 7. 9.
AWS ElasticBeanstalk (빈스톡) 삭제 실패시 처리 방안 AWS ElasticBeanstalk 삭제시 아래와 같은 메세지와 함께 삭제가 실패할때가 있습니다 ERROR Stack deletion failed: The following resource(s) failed to delete: [AWSEBLoadBalnaceSecurityGroup] ERROR Deleting security group named failed reason resource has a dependent object 보통 위와 같이 AWSEBLoadBalnaceSecurityGroup, AWSEBSecurityGroup 등이 삭제가 안되어 Beanstalk 환경 삭제가 실패하게 되는데요. Beanstalk에서 사용하고 있는 Security Group을 Beanstalk 환경에서 수정 하지 않.. 2020. 2. 26.
젠킨스 변경된 Slack Integration Token 등록하기 젠킨스 Slack Notification 플러그인이 버전업 되면서 더이상 Integration Token을 Job Config에서 바로 설정할 수 없게 되었습니다. 기존 플러그인을 사용한다면 문제 없지만, 최근에 젠킨스를 설치하면 플러그인 역시 최신 버전으로 받게되니 참고하시면 될것 같습니다. 기존의 Github ssh 연동과 동일한 방식으로 진행합니다. 좌측 사이드의 Credentials -> System로 차례로 이동합니다.Grlobal credentials를 클릭합니다화면 좌측에 있는 Add Credentials를 클릭해 Credentials 등록 화면으로 이동합니다.Kind 항목에서 Secret text를 선택하고 아래와 같이 항목을 등록합니다. Secret: 기존에 사용하시던 Slack Inte.. 2020. 2. 15.
Linux에서 crontab 실행시 명령어 찾지 못할때 crontab의 기본 PATH는 /usr/bin 밖에 없습니다. 즉, /usr/local/bin 등 다른 경로에 있는 command에 대해서는 crontab 이 인식하지 못하는데요. 만약 aws cli를 pip로 설치했다면 그 경로는 /usr/local/bin/aws가 되기 때문에 crontab으로 명령어를 등록해고 제대로 실행이 되지 않습니다. 예를 들어 아래와 같이 aws 커맨드를 실행하는 sh파일을 #!/bin/bash aws help crontab으로 실행한다면 * * * * * my_command.sh some_args 다음과 같은 에러가 발생합니다. /bin/sh aws command not found 해결책 해결책은 아래처럼 crontab에 직접 PATH를 등록 하는 것입니다. PATH=/u.. 2020. 1. 29.
TeamCity 빌드 실패시 결과 Slack으로 알람 받기 Teamcity에서는 공식적으로 Slack Notifier를 지원하진 않습니다. 이건 젠킨스도 마찬가지라서 플러그인 설치를 해야하는것은 동일합니다. 다만 Teamcity에서는 공식적으로 IntelliJ IDEA 에서 결과 알람을 받을 수 있도록 지원하고 있습니다. 이 부분은 이후에 소개드리겠습니다. Teamcity의 알람을 Slack으로 받을 수 있는 여러 플러그인들이 존재합니다만, 여기서는 Slack Notifier 플러그인들 보다는 웹훅 플러그인을 사용합니다. Slack Notifier 플러그인들의 경우 다음의 문제점들을 경험했는데요. 설치시 Zip파일을 직접 Upload 해야하는 방식 Slack Notifier Plus Slack 외에 다른 알람 연동시 어차피 Webhook이 필요함 그래서 여기에서.. 2019. 11. 12.
Teamcity Github 로그인 연동 Teamcity에는 기본적인 id/password 방식의 로그인 기능이 있지만, 실제 업무에서 해당 기능은 잘 사용되지 않습니다. Github 혹은 Google 과 같은 OAuth 인증을 사용하게 되는데요. 이번 시간에는 Teamcity 에서의 Github 로그인을 연동해보겠습니다. 1. 플러그인 설치 Teamcity에서는 공식적으로 Github 로그인을 지원하지 않습니다. Jenkins와 비슷합니다. 다만, 해당 기능을 플러그인으로 지원하고 있습니다. 그래서 가장 먼저 플러그인 설치를 하겠습니다. 먼저 설치된 Teamcity 의 관리자 페이지 (Adminstration) 으로 이동합니다.좌측 사이드바 하단의 PluginsList 를 클릭합니다.검색을 통한 플러그인 설치를 위해 Browse plugins.. 2019. 10. 4.