공부하기싫어
article thumbnail

개발 환경 구축 순서

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

 

docker build
docker push
hub.docker
docker run
aws, cdk --version
aws configure

 

 

이제 다음엔 코드 없이 리소스만 생성하는 demo stack 을 만들어볼 예정이다