공부방
search

초보공부
혼자 공부하고 메모하고
Today
Yesterday
1118 - SSH-key, Jenkins, Github-spring
터미널(단말기)
통신의 양쪽 끝
터미널 접속 => 원격접속
콘솔 접속 => 기본 입, 출력장치로 접속 (입력 : 키보드 , 출력 : 모니터)
텔넷 : 중간에 암호화를 안시킴 => 보안이 취약
ssh : 암호화 시킨것
평문 => 암호화 : 인코딩
암호화 => 평문 : 디코딩
ssh에대한 설정값이 있는곳
암호화방식이 여러개있음
key 와 pub 쌍으로 있음 => 비대칭키
대칭키
=>클라이언트와 서버가 똑같은키로 암호화, 복호화 시키는것 (집열쇠가 잠그는거, 여는거 키가 똑같은거)
=> 잃어버리면 다 바꿔야함
비대칭키(ssh는 비대칭키)
=>잠근 키와 여는키가 다름
pub => 공용키 => 서버가 가지고있음
key => 개인키 => 클라이언트가 가지고있음
ssh에선 키가 두개가있음
데이터를 암호화하는 키, 로그인할때 사용하는 키
접속할때 데이터 암호화하는 키를 먼저줌 이 키를 가지고 암호화시킨 다음 서버한테 주면 복호하고 들고있는 키가 맞는지 확인하고 패스워드 확인
.ssh 디렉터리에 저장
known_hosts : 호스트별 서버의 암호키(데이터 암호화하는키) 저장
ssh <계정명>@<IP>
=> 내가접속하고싶은 곳의 계정
id_rsa : 개인키
id_rsa.pub : 공개키
authorized_keys: 서버에 있는 공개키 파일, 퍼미션은 600 or 400
.ssh 디렉터리 퍼미션은 700 (만약 .ssh 디렉터리가 없으면 만들어준다 (cd 로 홈디렉터리 가고 mkdir로 만들고 chmod 700 으로 해주면됨))
공개키를 이름을 바꿔서 서버에 줘야함 ( id_rsa.pub => authorized_keys )
서버로 공개키 전송
1. 윈도우, 리눅스 공통
scp <키이름>.pub <계정>@<IP>:<디렉터리>
2. 리눅스
ssh-copy-id <계정>@<IP>
설치
설치하면 우클릭으로 터미널열기가 있어야하는데 없음
그냥 설치한 터미널을 열어준다
ctrl+l => 화면 클리어
이 다음 ls하면
키가 만들어져있음
이걸 일단 다 지운다
윈도우에서 공개키를 전송
젠킨스에 키가 들어가있음
퍼미션이 664라서 600이나 400 으로 바꿔준다
exit로 나와서
edit session으로 들어가서
ssh세팅으로 가서 use private key 선택 후 경로 선택
한 다음 ok로 설정 저장해서 왼쪽에서 jenkins 클릭하면
접속이 된다.
만약 접속이 안되면
lf, crlf차이 이기때문에 (윈도우와 리눅스의 차이에서 오는것)
윈도우에서 .pub 파일의 내용을 ctrl + a 로 복사해서 그대로 authoized 파일에 붙여넣어서 하면된다
도커에 젠킨스 설치
젠킨스 : 밑의 과정들을 자동화 시켜주는것
빌드 : 소스파일을 컴파일시키고 컴파일 시킨 파일(목적파일)에 기능을 넣어서 패키지로 만든것
패키지 : 컴파일 시킨 파일에 기능을 넣는것
컴파일, 목적파일(오프젝트) : 소스파일을 컴퓨터가 이해하는 기계어로 변환시키는 작업
지피지키 다운받아서 맞는지 확인
이 과정을 한 것이다
id를 눌러서 계정을 확인해보면 docker가 없음
exid 누르고 r을 눌러서 재접속하면
docker가 들어가있음
컨테이너를 확인해봤는데
아까 시험삼아서 했던 hello가 있어서 삭제 시켜준다
젠킨스 컨테이너 설치
디렉터리를 만들어준다
젠킨스 홈은 볼륨으로 사용할 디렉토리임
파일 두개를 만들어준다.
도커 컴포즈 파일을 실행하면
젠킨스가 실행된다
젠킨스가 실행되었으니 홈페이지로 접속도 가능하다
저 경로에 가서 패스워드를 확인해도 되지만
docker logs jenkins해서 중간에 보면 비밀번호가 있다
들어간 다음
왼쪽을 눌러서
플러그인 설치를 완료한다
계정명 : admin
pw : busanit
로 만든다
접속ip는 그대로 두고
그대로 시작해준다
github 들어가서 로그인
검색
복사한다
홈디렉토리로 가서 git hub에서 가져온걸 복사한다
github에서 봤던 파일이 복사되어져있음
젠킨스할때는 github를 같이 써야됨
spring-petclinic도 8080포트를 써서 충돌나서 중단시킨것
.git => 그 사람이 쓰던 로컬 리포지토리
우리껄로 수정해줘야해서 삭제
./mvnw => maven
자바 17버전 이상이 있어야한다
자바 설치
자바17버전을 설치한다
빌드한다
새로운 디렉터리가 생겼다
디렉터리에 들어가서 자바로 실행한다
홈페이지로 들어가진다
이걸 토대로 작업을 할거기때문에
내 github로 올릴것이다
홈디렉토리로 와준다
github로 가서 레퍼지토리를 새로 하나 만들어준다
ssh접속
settings
ssh and gpg key
있는건 delete
젠킨스 가서 ssh키 생성
공개키를 처음부터 끝까지 복사해서
붙여넣기하고 add ssh key 한 뒤 비밀번호 입력하면
생성된다
config 파일을 만들고
파일의 퍼미션을 600으로 바꿔주고
ssh -T github.com 해서
yes한 뒤 successfully가 나오면 성공이다
.git
=> 관리하고 싶은 파일들은 이 곳에 저장됨 (로컬저장소)
레퍼지토리 하고싶지않으면 디렉터리를 지우면됨
작업 디렉터리 - 스테이지 - 저장소
작업 디렉터리에서 바로 저장소로 가는게 아니고
스테이지에 올리고 저장소로 감
스프링 펫클리닉으로 간다
--global => 이컴퓨터 전체에서 사용할거란뜻
넣는법, 확인하는법
이 파일을 스테이지에 올리는것
readme.md는 올라갔고 나머지는 안올라간것
저장소로 파일을 넣는데 first commit이라는 코멘트를 덧붙인것
브랜치 => 가지가 뻗어나가는것
제일 처음 시작은 master
브랜치가 메인으로 바뀜
마스터 가지에 있다가 메인 가지로 바뀐것
로컬로 할거면 여기면 끝남
원격으로 올리는거면
원격지 저장소를 추가하는데 이름은 오리진이고 그 저장소는 내아이디 밑에 스프링펫클리닉이라는 곳에 있다
업로드할때는 ssh로 해야한다
orgin에 저장된걸 확인가능하다
두개인 이유 => fetch : 가져오는것, push : 업로드하는것
업로드하면 올라가는것 => readme (로컬저장소에 있는것만 올라감)
저장소에 메인 브랜치에 로컬에잇는것들을 올린다
새로고침하면 올라간다
현재디렉터리를 전부 올린다
다 올라가있다
readme.md 는 안바뀐 이유가 올리고나서 수정한게 없기때문에 바뀌지않았음
github에서 코드를 가져와서
젠킨스에서 빌드해서 jar파일을 만들고 테스트해서 잘되면
서버에서 실행
지금 상황
jenkins 안에서 하려면
자바랑 메이번을 설치해야함
근데 젠킨스를 깔면서
아까 FROM에 젠킨스가 있었어서
젠킨스이미지를 베이스로 깔면서 자바도 같이 깔려짐
확인해보면 자바가 깔려있음
그래서 메이번만 설치해주면됨
볼륨을 보면 젠킨스 홈과 연결되어있음
현재 젠킨스 홈 디렉터리의 내용
여기서 툴즈 선택
밑에는 체크하면 잘 안됨
자바가 설치 안되있으면 설치한단건데
저거 체크하기보단 자바를 설치하고 하는게 좋음
자바하고 메이번은 툴즈에서 세팅할 수 있음
빌드 작업
new item
여기서 repository url은 git으로가서
http로 가져온다
지금은 퍼블릭이기때문에 밑에는 안해줘도됨
브랜치는 메인으로 바꿔준다
메이번 빌드 한 다음 패키지 하라는 뜻
빌드하고나선 .jar파일이 생성되는데 이 파일을 어떻게하냐는 뜻
지금 빌드를 누르면 하나가 추가됨
콘솔 아웃풋을 누르면
현재 진행상황 및 로그를 볼 수 있다.
리눅스에서 확인해보면
workspace가 생겼음
깃허브에 있는파일들이 이쪽으로 다운로드받음
그리고 여기서 빌드 작업중인것
기다리다보니 오류가 났음
테스트 오류나는걸 무시하게 바꿔준다
저장하고 지금 빌드 누른다
성공적으로 빌드 되었다
빌드가 정상적으로 끝나서
target 디렉토리가 생기고 그 안에 java 파일이 생겼다
여기는
여기와 같다
빌드가 끝나면 target 디렉토리 안에 jar파일이 만들어진다
타겟 컴퓨터 만들기
젠킨스에선 실행 못함
젠킨스 : 8080사용
petclinic : 8080사용
그래서 타겟컴퓨터를 만들어서 실행
완료한다
기본으로 다 설치
설치 다 한 다음
sudo apt update -y && sudo apt upgrade -y
를 실행해둔다
ip를 192.168.56.101로 바꾸고
sudo apt install -y vim net-tools openssh-server
을 실행한다
ssh 키로 접속할 수 있도록 설정
ubuntu 홈 디렉터리에 .ssh 디렉터리를 만든다
window 터미널로가서
scp .\id_rsa.pub ubuntu@192.168.56.101:/home/ubuntu/.ssh/authorized_keys
를 사용해서 공개키를 target에 넣는다
ssh 접속 해서
개인키 설정을 해주면 ssh key 접속이 완료된다.
1202 Jenkins - Jenkins(jenkins, github, dockerhub) (0) | 2024.12.02 |
---|---|
1125 - Jenkins-Server(Target, SSH, Pipeline) (0) | 2024.11.25 |