티스토리 뷰

개발 환경의 종류

  • 개발자가 개발을 하는 Local 환경
  • 개발자들끼리 개발 내용에 대한 통합 테스트를 하는 Development 환경
  • 개발이 끝나고 QA 엔지니어 및 내부 사용자들이 사용해보기 위한 QA 환경
  • 실제 유저가 사용하는 Production 환경

-> LOCAL, DEV, QA, PORD 환경 이라고 지칭

 

개발 프로세스

  1. 개발자가 자신의 PC에서 개발을 진행한다.
  2. 다른 개발자가 작성한 코드와 차이가 발생하지 않는지 내부 테스트를 진행한다. (git hook 등)
  3. 진행한 내용을 다른 개발자들과 공유하기 위해 git과 같은 SCM에 올린다. -> 흔히 DEV 브랜치
  4. Jenkins는 Git을 계속 보고 있는다. 이때 코드에 변화가 생겼음을 인지하면,
    DEV 브랜치의 내용을 개발 환경에 배포하기 전에 테스트와 Lint 등 코드 포맷팅을 한다. 
  5. 배포하기 위한 빌드과정을 거친다.
  6. 코드를 배포한다.
  7. 테스트를 진행한다.
  8. 이 과정을 DEV, QA, PROD 환경 모두에서 동일하게 적용한다.

배포 환경에 따라 달리지는 것을 파악하고 그에 맞는 변수를 적절하게 사용하는것이 중요하다.

 


Jenkins EC2 설치

  1. 먼저 AWS에서 EC2 인스턴스를 생성해주고 들어가준다.
  2. ssh로 인스턴스에 접속한 후 jenkins 패키지를 추가한다.
  3. 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] 와 같은 에러가 발생하면 아래절차를 진행 후 다시 해보자
  4. java 버전을 변경해준다 : sudo alternatives --config java
  5. 젠킨스 실행 : 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를 등록해주면 사용이 가능하다.

  1. AWS에 가서 IAM 사용자를 추가해준다.
  2. 생성된 IAM 사용자의 ACCESS KEY IDSECRET ACCESS KEYJenkins의 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
}

awsAccessKeyId를 Credetials에 등록
keyID, Key 모두 등록이 된 모습

위와 같이 git, aws에 Jenkins가 자유롭게 접근할 수 있도록 권한을 부여해주었다.

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday