지금까지 Jenkins의 대략적인 개념들을 알아보았다. 이제 Jenkins를 직접 핸들링해보자!
⇒ Jenkins 설치 공식홈페이지
Jenkins를 설치하고 사용하기위한 다양한 방법들이 존재한다.
등등.. 이 외에 여러가지 방법이 있겠지만 이 글에서는 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
파일이 생성된다.http://localhost:50000
해당 링크로 접속하면 다음과 같은 창이 뜨는데 여기에 password.txt
에 담겨져있는 초기 비밀번호를 입력한다.국룰
이다.캡쳐를 못했는데 설치가 완료되면 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 해당 글을 참조하자