개발 환경 구축 순서
1. CDK container setting
- install aws-cli
- install cdk-cli
2. create demo stack
- create demo stack by python code
3. ci/cd pipeline setting
- jenkins config
- ansible config
- github config
4. test
- test
1. CDK container setting
기존에 사용하던 jenkins-server 에 CDK를 위한 컨테이너를 새로 만들고
aws cli 와 cdk cli 를 init 해볼꺼다
CDK container 는 dockerfile 로 빌드할 예정
dockerfile
# CDK container
FROM ubuntu:22.04
WORKDIR /home
RUN apt-get update && apt-get install -y vim
# install package managers and tools
RUN apt install -y python3-pip
RUN apt install python3.10-venv -y
RUN apt install -y curl
RUN apt-get install zip -y
RUN apt install nodejs -y
RUN apt install npm -y
RUN npm cache clean -f
RUN npm install -g n
RUN n stable
RUN n latest
# install aws-cli
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
RUN unzip awscliv2.zip
RUN ./aws/install
# install and init aws-cdk
RUN npm install -g aws-cdk
RUN pip3 install aws-cdk-lib
RUN mkdir /home/cdk-app
WORKDIR /home/cdk-app
RUN cdk init --language python
개발을 위한 CDK 컨테이너의 베이스 이미지는 ubuntu 22.04 LTS 로 해줬다
python3-pip, python3.10-venv 를 설치해줬다
aws-cli 설치를 위해 curl 과 zip 을 설치해줬다
npm 을 위한 nodejs 를 설치해줬다
npm 을 설치해줬는데 버전이 달라서 최신버전을 설치해주는 명령을 실행해줬다
앞서 설치했던 curl 과 zip 을 이용해 aws-cli 를 다운받고 설치해줫다
앞서 설치했던 npm 을 이용해 aws-cdk 를 설치해주고
pip 을 이용해 aws-cdk-lib 을 설치해줫다
cdk 를 사용할 디렉토리를 만들고 이동한 다음 초기화해주면 컨테이너가 실행된다
commands.sh
# [local] dockerfile upload
scp -i [identity_file] Dockerfile ubuntu@[target ip]
# [jenkins-server] docker login
docker login
docker build -t cyaninn/cdk_container:23.03.v1 .
docker push cyaninn/cdk_container:23.03.v1
docker run -it -d --name CDK cyaninn/cdk_container:23.03.v1
docker exec -it CDK bash
# [CDK container] check installed tools
python3 --version
curl --version
zip
nodejs -v
npm --version
aws --version
cdk --version
# [CDK container] aws-cli configure
aws configure
# AWS Access Key ID [None]:
# AWS Secret Access Key [None]:
# Default region name [None]: ap-northeast-2
# Default output format [None]: json
로컬 환경에서 jenkins server 로 도커파일을 scp 를 이용해 전송해줬다
hub.docker 에 로그인해주고 빌드, 푸시, 런 해주고 실행한 컨테이너의 bash 로 접속
dockerfile 로 설치한 툴들이 잘 설치됬는지 확인해줬다
이후 aws configure 명령으로 aws 계정과 연동해줬다
docker build, push, run
이제 다음엔 코드 없이 리소스만 생성하는 demo stack 을 만들어볼 예정이다
'1인개발 메이킹로그 > [Infra+k8s+App] 가상화폐 자동매매' 카테고리의 다른 글
[AWS-Server] dev_env-CICD-3-jenkins (0) | 2023.03.23 |
---|---|
[AWS-Server] dev_env-CICD-2-demo_cdk_app_stack.py with chatGPT (0) | 2023.03.19 |
[AWS-Server]Ethereum-auto-trade 개발 환경 CI/CD 설계 (0) | 2023.03.02 |
[AWS-Server] Ethereum-auto-trade 설계 (0) | 2023.02.18 |
python 가상화폐 자동매매 docker container 밑그림 (0) | 2023.02.13 |