티스토리 뷰
T academy _ Jenkins를 이용한 CI/CD : 개발 환경 및 CI/CD 기본 동작, 파이프라인 구성 실습 (1)
구름뭉치 2021. 9. 27. 22:45개발 환경의 종류
- 개발자가 개발을 하는 Local 환경
- 개발자들끼리 개발 내용에 대한 통합 테스트를 하는 Development 환경
- 개발이 끝나고 QA 엔지니어 및 내부 사용자들이 사용해보기 위한 QA 환경
- 실제 유저가 사용하는 Production 환경
-> LOCAL, DEV, QA, PORD 환경 이라고 지칭
개발 프로세스
- 개발자가 자신의 PC에서 개발을 진행한다.
- 다른 개발자가 작성한 코드와 차이가 발생하지 않는지 내부 테스트를 진행한다. (git hook 등)
- 진행한 내용을 다른 개발자들과 공유하기 위해 git과 같은 SCM에 올린다. -> 흔히 DEV 브랜치
- Jenkins는 Git을 계속 보고 있는다. 이때 코드에 변화가 생겼음을 인지하면,
DEV 브랜치의 내용을 개발 환경에 배포하기 전에 테스트와 Lint 등 코드 포맷팅을 한다. - 배포하기 위한 빌드과정을 거친다.
- 코드를 배포한다.
- 테스트를 진행한다.
- 이 과정을 DEV, QA, PROD 환경 모두에서 동일하게 적용한다.
배포 환경에 따라 달리지는 것을 파악하고 그에 맞는 변수를 적절하게 사용하는것이 중요하다.
Jenkins EC2 설치
- 먼저 AWS에서 EC2 인스턴스를 생성해주고 들어가준다.
- ssh로 인스턴스에 접속한 후 jenkins 패키지를 추가한다.
- sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo && sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
- java, docker, git을 설치해준다
- sudo yum install -y java-1.8.0-openjdk jenkins git docker
- 만약 [Error: Package: jenkins-2.308-1.1.noarch (Jenkins) Requires: daemonize] 와 같은 에러가 발생하면 아래절차를 진행 후 다시 해보자
- java 버전을 변경해준다 : sudo alternatives --config java
- 젠킨스 실행 : service jenkins start
[에러 발생시]
1. [sudo vim /etc/yum.repos.d/epelfordaemonize.repo]로 파일을 생성하고 아래 내용을 넣어준다.
[daemonize]
baseurl=https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/
gpgcheck=no
enabled=yes
2. sudo yum install daemonize -y
3. sudo yum install jenkins java-1.8.0-openjdk-devel -y
젠킨스 실행
이러한 창이 뜨는 것을 확인할 수 있다. 핑크색으로 색칠된 path를 확인하면 password를 구할 수 있다. 해당 패스워드를 입력해서 진행하자.
들어가서 필수 플러그인을 설치하고 사용자 설정을 한 후 들어가면 시작 페이지가 나오게 된다.
젠킨스를 실행했으면 가장먼저 할일이 있다.
-> ❗️바로 Credentials를 추가하는 것❗️
git Credentials 추가
Jenkins가 원하는 Git Repository를 볼수 있게 Git Credentials를 추가해준다.
- Dashboard -> Jenkins관리 -> Manage Credentials -> jenkins -> Global credentials (unrestricted) 로 들어가서 git 관련 Credentials를 추가해준다
- git에 가서 developer settings에서 Personal Access Tokens을 발급받고, 해당 토큰을 비밀번호로 git id를 아이디로 설정해서 아래와 같이 생성해준다.
AWS IAM Credentials 추가
Jenkins가 AWS 관련 CLI를 자유롭게 할 수 있도록 하기 위해서는 AWS의 IAM에서 사용자를 발급받아서 ID/PW를 등록해주면 사용이 가능하다.
- AWS에 가서 IAM 사용자를 추가해준다.
- 생성된 IAM 사용자의 ACCESS KEY ID와 SECRET ACCESS KEY를 Jenkins의 Secret Text에 등록해준다. 이후 등록된 ID를 통해서 원하는 값을 가져와서 사용하게 된다.
jenkins의 pipline에서 아래와 같이 사용하게 된다.
environment {
AWS_ACCESS_KEY_ID = credentials('awsAccessKeyId')
AWS_SECRET_ACCESS_KEY = credentials('awsSecretAccessKey')
AWS_DEFAULT_REGION = 'ap-northeast-2'
HOME = '.' // Avoid npm root owned
}
위와 같이 git, aws에 Jenkins가 자유롭게 접근할 수 있도록 권한을 부여해주었다.
'Web > Jenkins 정리글' 카테고리의 다른 글
T academy _ Jenkins를 이용한 CI/CD : 파이프라인 구성 실습 (2) (0) | 2021.09.30 |
---|---|
T academy _ Jenkins를 이용한 CI/CD 정리 (2) | 2021.09.24 |
- Total
- Today
- Yesterday