CI/CD를 구축하기위해 github 레포지토리의 Backend server를 Pipeline으로 deploy하였다.
대부분의 ami에 ssm-agent는 기본적으로 설치되어 있다.
ssm-agent를 이용하여 Distributor를 사용한 CodeDeploy-agent 자동배포를 QuickSetup하였으나.
해결할 수 없는 iam관련 에러가 나왔다.
대처방안으로 Terraform의 시작템플릿에 deploy agent 설치용 user-data 코드를 추가해주었다.
apt -y update
apt -y install ruby-full
wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
chmod +x install
./install auto > /tmp/logfile
참고 링크
- https://github.com/aws/aws-codedeploy-agent/issues/239 Ubuntu 20.04 이슈
- https://github.com/aws/aws-codedeploy-agent/issues/264 Ubuntu 20.04 이슈
- https://gist.github.com/lifeeth/557722cd62eb41010807ad1a2ce6ba41 설치 코드 샘플
- https://gist.github.com/takenoko-str/810c80f82d495eadcd980fc79d6fae7e 설치 코드 샘플
- https://aws.amazon.com/ko/about-aws/whats-new/2020/08/aws-codedeploy-agent-improved-compatibility-amazon-linux-windows-ubuntu/ codedeploy-agent new
- Ubuntu Server용 CodeDeploy 에이전트 설치(EN)
- Ubuntu Server용 CodeDeploy 에이전트 설치(KR)
- AWS Systems-manager 사용자 설명서
- State Manager - IAM을 사용하여 연결 작업
22버전이 새로나와서 사용해보려고 했는데.
ruby 설치시 3.x 버전이 설치되었다.
ssm agent와 호환이 되지 않아서 여러번의 삽질을 하고난 뒤.
OpenSSL 1.1.1으로 빌드를 임의로 한다음 rbenv으로 설치를 하는데 코드는 아래와 같다.
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl-1.1.1o rbenv install 2.7.1
rbenv global 2.7.1
rbenv versions
참고 링크
https://github.com/aws/aws-codedeploy-agent/issues/301 Ubuntu 22.04 이슈
https://github.com/rbenv/ruby-build/discussions/1940 Ubuntu 22.04 ruby 2.x 버전 이슈
https://kbs4674.tistory.com/187 rbenv 설치
인스턴스 생성도 Ubuntu보다 빠른것 같고..
CodeDeploy-agent도 쉽게 깔리고..
기분탓인지 좋은것 같다.