drexqq
[Jenkins] Jenkins 실습 - 1 본문
aws ec2 환경에서 jenkins로 apache react 환경 자동배포시스템을 실습해볼까한다.
일단 aws에서 새롭게 인스턴스를 생성
그 후에 apache2, nodejs, npm 설치
sudo apt-get install -y apache2 nodejs npm
아래 명령어로 아파치 실행중인지 확인
sudo service status apache2
젠킨스 공식도큐멘트에 나와있는 LTS버전 설치방법대로 설치
https://pkg.jenkins.io/debian-stable/
이러한 오류가 나온다면 java가 설치가 안되어있는것
친절하게도 자바의 설치방법도 나와있다
https://www.jenkins.io/doc/book/installing/linux/#debianubuntu
나와있는대로 설치 후에
java -version
위 명령어로 확인을 하면
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
위 처럼 11버전이 잘 설치되어 있다.
나 같은 경우는 설치가 완료되면 jenkins가 자동적으로 active가 되었지만 active상태가 아니라면
sudo service jenkins restart
위 명령어로 jenkins를 재실행시켜보자
jenkins와 apache가 잘 실행되고 있는지 확인하기 위해 포트를 확인하려면
netstat -tnlp
위 명령어로 확인을하게 되면
...
tcp6 0 0 :::8080 :::* LISTEN -
tcp6 0 0 :::80 :::* LISTEN -
...
jenkins의 기본 포트인 8080 apache의 기본 포트인 80으로 열려있는것을 확인할 수 있다.
이 상태로 만들어둔 인스턴스의 IP에 접속하게 된다면 apache의 기본 화면이 보이고 8080포트로 접속하게 된다면 jenkins패스워드 설정화면이 나오게 될 것이다.
혹여 접근이 안된다면 aws인스턴스의 보안그룹 설정에 80포트와 8080포트가 잘 열려있는지 다시 확인해보자
그리고 이제 reverseProxy를 설정을 해볼건데 공식 홈페이지에 나와있는 reverseProxy의 사용이유는 이러하다
서버에 기존 웹 사이트가 있는 상황에서는 Apache 뒤에서 Jenkins(또는 Jenkins가 실행되는 서블릿 컨테이너)를 실행하는 것이 유용할 수 있으므로 더 큰 웹 사이트의 일부에 Jenkins를 바인딩할 수 있습니다
현재 ec2에서 구동하고 있는 apache를 기존 웹 사이트라고 가정을 한 후 작업을 진행해보겠다.
이 또한 공식홈페이지에 나와있는데
mod_proxy
mod_proxy with HTTPS
mod_rewrite
이렇게 총 3가지가 있다 mod_proxy with HTTPS는 mod_proxy를 HTTPS연결을 위한 것이라 생각되니 mod_proxy를 사용하여 세팅을 진행해보자.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
위 명령어로 총 3개의 apache module을 활성화 시켜준 뒤
sudo service apache2 restart
아파치를 재실행 시켜준뒤에 /etc/apache2/mod-enabled 에 들어가서 확인을 해보면 proxy, proxy_http, headers모듈이 활성화 되어있을 것이다.
ProxyPass /jenkins http://localhost:[PORT]/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:[PORT]/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:[PORT]/jenkins*>
Order deny,allow
Allow from all
</Proxy>
해당 내용을 넣어준 뒤에 /etc/default/jenkins 파일에서 JENKINS_ARGS변수에 --prefix=/jenkins라고 추가를 해 준뒤에 apache와 jenkins를 재시작해준다.
그러면 IP:PORT/jenkins에 접속시 jenkins 설정화면을 볼 수 있다 !
접속을 해보면 '/var/lib/jenkins/secrets/initialAdminPassword' 이 위치에 있는 내용을 입력하라고 나온다.
해당 파일에 있는 내용을 입력해주고 왼쪽에 있는 추천 플러그인 다운을 한 뒤에 어드민계정 설정 및 URL설정을 해주면 끝난다!
내일계속
'ETC > Jenkins' 카테고리의 다른 글
[Jenkins] Jenkins 실습 - 3 (0) | 2022.01.16 |
---|---|
[Jenkins] Jenkins 실습 - 2 (0) | 2022.01.14 |