터미널창에서..
exit
이렇게 가상머신 밖으로 나온다.
그리고 가상머신 1대를 추가하기위해 Vagrantfile
을 수정한 후 Vagrant up
을 다시 해줄 것이다.
23번쨰 줄에 붙여넣기 하시면 됩니다.
config.vm.define "docker" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "docker"
ubuntu.vm.network "private_network", ip: "192.168.59.12"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "docker"
vb.cpus = 2
vb.memory = 2000
end
end
줄간격이 중요하니까 다시 한 번 보고 비교해보세요
ctrl
+ s
눌러서 저장하고 나오시면 됩니다.
그리고 다시 터미널창으로 와서..
vagrant up
vagrant status
이렇게 가상머신이 3개 올라와 있는거 확인하시고 다음 단계로 넘어가시면 됩니다.
vagrant ssh docker
https://velog.io/@repush/Docker-%EC%84%A4%EC%B9%98%ED%95%98%EB%8A%94%EB%B2%95
도커 설치하는 법..
위 링크를 마무리하고나서 아래 명령어를 실행시켜보자.
docker ps
다음과 같은 결과가 나오면 정상적으로 설치가 된것이다.
먼저, jenkins 가상머신
에서..
cp /var/lib/jenkins/workspace/Deploy-to-Tomcat-with-Maven/webapp/target/webapp.war /tmp
scp /tmp/webapp.war 192.168.59.12:/tmp
아래와같은 질문이 나올것이다.
yes
하고
password
는vagrant
를 입력하면 된다.
그리고 docker 가상머신
으로 와서..
아래 명령어를 입력해준다.
### tomcat 이미지를 다운받는 명령어이다.
docker pull tomcat:9.0-jre11-openjdk
cd ~
mkdir myapp
cd myapp/
cp /tmp/webapp.war .
ls
이렇게 webapp.war 파일이 있으면 된다.
그리고 Dockerfile을 편집해주기위해 아래 명령어를 입력한다.
vi Dockerfile
i
를 눌러서 편집기능을 활성화 하고 아래 텍스트를 복사붙여넣기 하고
esc
누르고 :
+ wq
로 저장해서 나온다.
FROM tomcat:9.0-jre11-openjdk
COPY webapp.war /usr/local/tomcat/webapps
docker build -t myapp .
docker run -d -p 8080:8080 myapp
curl localhost:8080/webapp/
docker rm -f $(docker ps -aq)
docker rmi $(docker images -q)
크롬창에 192.168.59.10:8080
으로 접속해서 젠킨스 대쉬보드로 접속한다.
왼쪽 메뉴에서
Jenkins 관리
클릭
오른쪽에
플러그인
관리 클릭
왼쪽에서 두 번째
설치가능
클릭
오른쪽 위에 Search에서
publish over ssh
라고 검색
왼쪽 체크박스
활성화
해주고Install without restart
클릭
성공 확인하면 플러그인 설치가 완료 된것이다.
이제 대시보드로 이동해서..
Deploy-toTomcat-with-Maven
이름을 클릭
오른쪽에
프로젝트 중지하기
클릭
대쉬보드로 와서.. 왼쪽 메뉴에
Jenkins
관리 클릭
시스템 설정
클릭
스크롤을
맨 아래
로 내려서 아래 사진과 같은 내용을 찾아보자
왼쪽 아래
추가
클릭
아래 사진과 같이 작성해준다
항목 설정값 Name docker-host Hostname 192.168.59.12 Username vagrant
오른쪽 아래
고급
클릭
아래 항목 찾아서 체크박스를
활성화
해준다.
Passphrase / Password
에vagrant
라고 입력해준다.
스크롤을 맨 아래로 내려서
Test Configuration
클릭
Success
가 나오면 된거다.
Apply
누르고저장
클릭
https://hub.docker.com/
위 링크를 타고 들어가서
오른쪽 위에
Register
클릭
회원가입을 해준다.
그리고 로그인해준다.
상단 메뉴바에
Repositories
클릭
오른쪽에
Create Repository
클릭
본인 이메일에 접속해서..
Verify email address
클릭
다시
Repository
로 와서Create Repository
클릭
이런 화면이 뜬다.
name에는
cicdproject
라는 이름으로 입력하고Create
클릭
이런 식으로 나오면 성공
일단 tomcat 가상머신 터미널
로 들어가서..
exit
해서 나가준다.
이 커서에서
code Vagrantfile
모든 내용을 지우고 아래 내용을 복사 붙여넣기 해준다.
Vagrant.configure("2") do |config|
# Define VM
config.vm.define "jenkins" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "jenkins"
ubuntu.vm.network "private_network", ip: "192.168.59.10"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "jenkins"
vb.cpus = 2
vb.memory = 3000
end
end
# config.vm.define "tomcat" do |ubuntu|
# ubuntu.vm.box = "ubuntu/focal64"
# ubuntu.vm.hostname = "tomcat"
# ubuntu.vm.network "private_network", ip: "192.168.59.11"
# ubuntu.vm.provider "virtualbox" do |vb|
# vb.name = "tomcat"
# vb.cpus = 2
# vb.memory = 2000
# end
# end
config.vm.define "docker" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "docker"
ubuntu.vm.network "private_network", ip: "192.168.59.12"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "docker"
vb.cpus = 2
vb.memory = 2000
end
end
config.vm.define "ansible" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "ansible"
ubuntu.vm.network "private_network", ip: "192.168.59.13"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "ansible"
vb.cpus = 2
vb.memory = 2000
end
end
config.vm.provision "shell", inline: <<-SHELL
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
systemctl restart ssh
SHELL
end
ctrl
+s
눌러서 저장해주고 나가준다.
다시 터미널로 와서..
vagarnt up
### 기다렸다가
vagrant status
이렇게 가상머신 3개가 올라오면 잘 된것이다.
이미 jenkins와 docker는 터미널에 접속해있는 상태면 그대로 두면 된다.
### 새로운 터미널 열어서
cd vagrant/cicd
vagrant ssh ansible
이렇게 총 3개의 가상머신이 잘 접속된 상태에서 시작해야한다.
본인 github 레포지토리로 가서 오른쪽 끝 상단 끝에 본인 아이콘 클릭
그러면 이런 메뉴바가 나오는데
Settings
클릭
이 메뉴바 맨 아래로 스크롤을 내려보면
Developer settings
클릭
왼쪽 메뉴바에서
Personal access tokens
클릭
Generate new token
클릭
본인 계정 비밀번호 입력하시고
note에
tokenforcicd
입력하시고Expiration
은 90 days로 설정
그리고 Select scopes에 모든 체크박스를 활성화해준다.
아래로 스크롤 내리면 더 있음전부 활성화
Generate token
클릭
이런 화면이 뜨는데 아래 내용을 복사해준다.
그리고 Jenkins 터미널로 와서..
vi ~/.ssh/token
i
로 편집 시작해서 위에 본인의 token값을 복사해서 붙여넣고 esc
:wq
눌러서 저장하고 나온다.
cat ~/.ssh/token
### 했을 때 토큰값이 잘 나오면 성공
jenkins 가상머신에 와서.. 본인 git과 연동된 디렉토리로 와서..
mkdir docker
cd docker
vi Dockerfile
아래 문서를 그대로 넣어준다.i
로 편집 시작
FROM tomcat:9.0-jre11-openjdk
COPY webapp.war /usr/local/tomcat/webapps
esc
로 나와서 :wq
로 저장하고 나와주시면 됩니다.
편집했으면 아래 명령어를 그대로 입력해준다.
git add .
cd ..
git add .
git commit -m 'add Dockerfile' #최초 commit 할 때 오류가 나면 아래 명령어 해주세요
#git config --global user.email "본인이메일"
#git config --global user.name "본인이름"
cat ~/.ssh/token #token값 출력되면 밑에서 사용하시면 됩니다.
git push
Username은 본인 계정 입력하시면 되고
Password는 token값 입력하시면 됩니다.
본인 레포지토리에 Docker가 추가되었으면 성공
다시 대쉬보드로 와서..
새로운 Item
클릭
deploy-to-docker
라는 이름으로Maven project
클릭하고OK
버튼 클릭
Git 옆에 체크표시
활성화
Repository URL은 지금까지 사용해온 본인 Git 계정의 Repository 주소를 넣어주면 된다.
나의 경우를 예시로 들면
https://github.com/re-Push/source-java-maven-hello-world
인데,
본인 github주소가 다 다를것이다.
master를 main으로 바꿔준다.
*/main
Build 에 두 번째 항목에
clean package
를 추가해준다.
빌드 후 조치 추가
클릭
Send build artifacts over SSH
클릭
그러면 이런 화면이 나오게 된다.
아래 사진과 표를 참고해서 그대로 붙여넣어주면 된다.
항목 | 설정값 |
---|---|
Source files | webapp/target/webapp.war |
Remove prefix | webapp/target/ |
Remote directory | myweb |
Add Transfer Set
클릭
아래 사진과 표를 참고해서 붙여넣어준다.
항목 설정값 Source files docker/Dockerfile Remove prefix docker Remote directory myweb Exec command #!/bin/bash
cd /home/vagrant/myweb
docker build -t myweb .
Apply
누르고저장
클릭
왼쪽 메뉴바에서
Build Now
클릭
docker 터미널로 와서..
docker images
명령어를 입력했을 때 아래와같이myweb
이 나오고 옆에About a minute ago
나오면 성공