Open minsu11 opened 8 months ago
인스턴스 생성 이미지: Ubuntu Server 20.04.6 LTS 인스턴스 정보 이름: {팀별 설정} 타입: t2 키 페어 생성 후 꼭 다운 블록 스토리지 타입: SSD 플로팅 IP 설정: 예 접속 후 사용자 계정 생성 및 도커 설치 다운받은 키페어 파일 위치로 이동후 “chmod 400 *.pem” 으로 권한수정
“ssh -i testkey-jh.pem [ubuntu@133.186.220.80](mailto:ubuntu@133.186.220.80)”로 root 로그인
“sudo adduser (생성할 계정명 ex:testuser)” → 비밀번호 입력 → 엔터→엔터→엔터
터미널에서 ssh-keygen -t rsa -f ~/desktop/key/(생성할 사용자 키명)
“sudo login testuser” → 비밀번호 입력 → 로그인 후
mkdir .ssh → chmod 700 .ssh cd .ssh → vi authorized_keys (내부에 keygen으로 생성한 cat (키명).pub 열어서 내용 저장) chmod 644 authorized_keys testuser 로그인은 앞으로 “ssh -i testuserkey [testuser@133.186.220.80](mailto:testuser@133.186.220.80)”
docker 설치 (root계정에서)
sudo apt-get update
sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install -y docker-ce docker-ce-cli containerd.io “sudo usermod -aG docker testuser “ testuser에 docker 권한 부여 user계정에서 “docker version”으로 테스트 프로젝트 최상단 디렉토리에 Dockerfile 파일 생성 후
FROM eclipse-temurin:11 ARG JAR_FILE=./target/*.jar COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"] Git Actions를 이용한 CI/CD git프로젝트에서 actions 이동 - java with maven configure하면 yml파일 생성됨
name: Docker Image CI
on: push: branches: [ "main" ] pull_request: branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest steps: - uses: actions/checkout@v3
- name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'temurin' cache: maven
- name: Build with Maven run: mvn -B package --file pom.xml
- name: Log in to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build the Docker image run: docker build -t {이미지 경로} .
- name: push Docker image run: docker push {이미지 경로}
- name: execute shell script uses: appleboy/ssh-action@master with: host: ${{ secrets.SSH_IP }} # 인스턴스 플로팅 ip username: ${{ secrets.SSH_ID }} # user Id key: ${{ secrets.SSH_KEY }} # user 개인키 port: ${{ secrets.SSH_PORT }} # ssh 포트 = 22 script_stop: true script: "./{실행시킬 shell 파일명}"
$부분은 git repo settings - secrets and variables - actions -new repository secrets Name = DOCKER_USERNAME Secret* = 도커허브 계정 입력 도커허브 로그인후 repo하나 만들고 {이미지 경로} 에 도커 repo경로 넣기. ex) newjaehun/testrepo 최상단폴더에서 vi startup.sh
docker pull newjaehun/testrepo
docker run -d --name test -p 8080:8080 newjaehun/testrepo chmod +x [startup.sh](http://startup.sh/) {실행시킬 shell 파일명}에 “./[startup.sh](http://startup.sh/)”](http://startup.xn--sh)-9o0a/) 입력 Github - repository - Actions -build 성공 확인
Jenkins를 이용한 CI/CD github repo settings
webhooks
http://133.186.241.167:8080/github-webhook/
applicaton/json
just the push event
active
deploy keys - add new - 제목 아무거나, 내용에 (keygen으로 생성한).pub 내용 복붙
인스턴스 생성 이미지: Ubuntu Server 20.04.6 LTS 인스턴스 정보 이름: {팀별 설정} 타입: t2 키 페어 생성 후 꼭 다운 블록 스토리지 타입: SSD 플로팅 IP 설정: 예 접속 후 사용자 계정 생성 및 도커 설치 다운받은 키페어 파일 위치로 이동후 “chmod 400 *.pem” 으로 권한수정
“ssh -i testkey-jh.pem [ubuntu@133.186.220.80](mailto:ubuntu@133.186.220.80)”로 root 로그인
“sudo adduser (생성할 계정명 ex:testuser)” → 비밀번호 입력 → 엔터→엔터→엔터
터미널에서 ssh-keygen -t rsa -f ~/desktop/key/(생성할 사용자 키명)
“sudo login testuser” → 비밀번호 입력 → 로그인 후
mkdir .ssh → chmod 700 .ssh cd .ssh → vi authorized_keys (내부에 keygen으로 생성한 cat (키명).pub 열어서 내용 저장) chmod 644 authorized_keys testuser 로그인은 앞으로 “ssh -i testuserkey [testuser@133.186.220.80](mailto:testuser@133.186.220.80)”
docker 설치 (root계정에서)
sudo apt-get update
sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io “sudo usermod -aG docker testuser “ testuser에 docker 권한 부여 user계정에서 “docker version”으로 테스트 프로젝트 최상단 디렉토리에 Dockerfile 파일 생성 후
FROM eclipse-temurin:11
ARG JAR_FILE=./target/*.jar COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"] Git Actions를 이용한 CI/CD git프로젝트에서 actions 이동 - java with maven configure하면 yml파일 생성됨
name: Docker Image CI
on: push: branches: [ "main" ] pull_request: branches: [ "main" ]
jobs:
build:
jdk 11 세팅
패키징
도커 로그인
도커 이미지 빌드
이미지 띄우기
쉘 스크립트 실행
$부분은 git repo settings - secrets and variables - actions -new repository secrets Name = DOCKER_USERNAME Secret* = 도커허브 계정 입력 도커허브 로그인후 repo하나 만들고 {이미지 경로} 에 도커 repo경로 넣기. ex) newjaehun/testrepo 최상단폴더에서 vi startup.sh
docker pull newjaehun/testrepo
docker run -d --name test -p 8080:8080 newjaehun/testrepo chmod +x [startup.sh](http://startup.sh/) {실행시킬 shell 파일명}에 “./[startup.sh](http://startup.sh/)”](http://startup.xn--sh)-9o0a/) 입력 Github - repository - Actions -build 성공 확인
Jenkins를 이용한 CI/CD github repo settings
webhooks
http://133.186.241.167:8080/github-webhook/
applicaton/json
just the push event
active
deploy keys - add new - 제목 아무거나, 내용에 (keygen으로 생성한).pub 내용 복붙