터미널창에서..
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나오면 성공