[Jenkins] # Vagrant로 Jenkins개발환경 구성

empty·2021년 1월 26일
1

Jenkins

목록 보기
2/2
post-thumbnail

지금까지 Jenkins의 대략적인 개념들을 알아보았다. 이제 Jenkins를 직접 핸들링해보자!

⇒ Jenkins 설치 공식홈페이지

Vagrant를 이용한 Jenkins개발환경 구성

Jenkins를 설치하고 사용하기위한 다양한 방법들이 존재한다.

  • Tomcat의 서블릿 컨테이너에서 실행
  • Standalone 어플리케이션으로 각 OS에서 실행
  • Reverse Proxy 서버 뒤에서 실행
  • Docker를 이용하여 실행

등등.. 이 외에 여러가지 방법이 있겠지만 이 글에서는 Vagran를 사용하여 VM으로 Jenkins를 사용한다.

# Vagrantfile
Vagrant.configure("2") do |config|
  
  #===========#
  #  Jenkins  #
  #===========#
  config.vm.define "jenkins" do |cfg|
    cfg.vm.box = "centos/7"
    cfg.vm.provider "virtualbox" do |vb|
      vb.name = "jenkins"
      vb.cpus = 2  # 사용자 환경에 맞게 알아서 조정
      vb.memory = 4096  # 사용자 환경에 맞게 알아서 조정
    end
    cfg.vm.host_name = "jenkins"
    cfg.vm.network "private_network", ip: "192.168.122.100"
    cfg.vm.network "forwarded_port", guest: 22, host: "60000", auto_correct: true, id: "ssh"
    cfg.vm.network "forwarded_port", guest: 8080, host: "50000"
    cfg.vm.synced_folder ".", "/home/vagrant"
    cfg.vm.provision "shell",inline: <<-SHELL
      sudo yum -y install wget
      sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
      sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
      sudo yum -y upgrade
      sudo yum -y install jenkins && sudo yum -y install java-1.8.0-openjdk-devel
      sudo systemctl daemon-reload
      sudo systemctl start jenkins
      sleep 15 && sudo cp /var/lib/jenkins/secrets/initialAdminPassword /vagrant/password.txt
    SHELL
  end
end

해당 Vagrantfile을 생성하고 vagrant up으로 VM을 프로비저닝 하게되면 코드에 의해 Jenkins를 설치하고 Jenkins 서비스를 실행하게 된다.

Jenkins를 yum을 사용하여 설치할 경우 기본포트는 8080이다. Jenkins의 기본포트인 8080을 호스트의 50000번 포트로 포워딩시켜서 Jenkins의 웹페이지를 호스트OS 에서 http://localhost:50000 해당 주소로 접근할 수 있다. (접속포트는 원하면 변경가능)

  • 최초에 웹페이지 접근 시 초기 비밀번호가 필요한데 프로비저닝이 완료되면 vagrant를 실행시킨 디렉터리에 초기 패스워드가 담긴 password.txt 파일이 생성된다.
  • 해당 VM의 컴퓨터 리소스는 사용자의 환경에 맞게 조정한다.

  • http://localhost:50000 해당 링크로 접속하면 다음과 같은 창이 뜨는데 여기에 password.txt에 담겨져있는 초기 비밀번호를 입력한다.

  • 젠킨스의 플러그인을 설치하는 창이다. 잘 모를때는 추천해주는 플러그인을 모두 설치하는것이 국룰이다.

  • 5~10분 정도 기다리면 다음의 플러그인이 모두 설치된다.

캡쳐를 못했는데 설치가 완료되면 admin 계정을 생성할 것인지 창이 뜬다. 센스있게 admin 계정으을 생성하고나면 다음과 같은 대시보드창이 나온다.

이제 많은 파이프라인 코드를 직접 짜보고 테스트해봐야 하니 마지막으로 VM의 꿀같은 기능 '스냅샷'을 찍자. Vagrant는 스냅샷을 찍을수있게 명령어를 제공한다. 다음의 명령어로 스냅샷을 찍고 조회할 수 있다.

스냅샷 저장

> vagrant snapshot save jenkins_ori

==> vagrant: A new version of Vagrant is available: 2.2.14!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
==> jenkins: Snapshotting the machine as 'jenkins_ori'...
==> jenkins: Snapshot saved! You can restore the snapshot at any time by
==> jenkins: using `vagrant snapshot restore`. You can delete it using
==> jenkins: `vagrant snapshot delete`.

스냅샷 조회

> vagrant snapshot list
jenkins_ori

스냅샷 복구

> vagrant snapshot restore jenkins_ori

Vagrant로 VM을 프로비저닝하여 Jenkins를 설치해보았다. 직접 해보니 VM보다는 컨테이너로 Jenkins 서비스 올리는게 더 나을것같다.

다음 글에서는 파이프라인에 대한 코드를 중점으로 다루어보겠다.

유의사항!!
위의 방법으로 Jenkins를 설치하게 되면 파이프라인 작성 시 HTTP 403 에러가 발생한다. 자세한 내용과 해결방법은 https://lee95292.github.io/jenkins/2020/04/12/jenkins403.html 해당 글을 참조하자

0개의 댓글