반응형

1. 시험환경

    ˙ 우분투(ubuntu) v20.04

 

2. 목적

    ˙ 우분투(ubuntu) 리눅스 최초 설치 시 Package Repoisitory

    ˙ 리눅스

 

3. 적용

    ① 우분투(ubuntu) 리눅스에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트한다. 설치된 패키지를 업데이트하는 것이 아니라 설치 가능한 목록만 업데이트 한다.

        - $ sudo apt-get update

 

    ② 설치된 패키지들을 최신 버전으로 업그레이드한다. ①번 절차에서 "apt-get update" 명령어로 가져온 각 패키지의 최신 버전으로 업그레이드 설치한다.

        - $ sudo apt-get upgrade

 

4. 결과

    ˙ 우분투(ubuntu) 운영체제에 설치된 패키지 목록 및 버전을 확인한다.

        - $ dpkg -l

 

 

 

반응형
반응형

1. 시험환경

    ˙ react.js

    ˙ npm

 

2. 목적

    ˙ npm 빌드 및 배포 후 웹에 접속하면, 서비스 화면 없이 "Invalid Host Header"가 발생하는 문제를 해결하자.

 

3. 적용

    ① disableFirewall 변수를 "기존 조건부"를 주석처리하고 "true"로 할당한다.

        - $ vi node_modules/react-scripts/config/webpackDevServer.config.js

1
2
3
module.exports = function (proxy, allowedHost) {
  const disableFirewall = true;
//          !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true';
cs

 

반응형
반응형

1. 시험환경

    ˙ Jenkins

 

2. 목적

    ˙ Jenkins initialAdminPassword로 로그인하여 "Suggested Plugin" 설치 완료 이후의 절차를 알아보자.

        - 참고: https://languagestory.tistory.com/219

 

Ubuntu 환경에서 Jenkins(docker) 설치 및 최초 로그인

1. 시험환경 ˙ 우분투(ubuntu) 리눅스 v22.04 ˙ Jenkins (docker) 2. 목적 ˙ 우분투(ubuntu) 리눅스 환경에서 도커(docker)를 설치(apt install) 한다. ˙ Jenkins Docker 이미지를 실행하고 최초 로그인하는 방법을 알

languagestory.tistory.com

    ˙ Jenkins 최초 접속 후 로그인 계정 생성, 설정 및 기타 플러그인 설치 절차를 알아보자.

 

3. 적용

    ① 로그인 계정을 생성하고, 생성된 계정으로 Jenkins 로그인한다.

 

    ② Asia/Seoul 표준 시간대를 설정한다.

 

    ③ Github, AWS, SSH 등 CI/CD를 위한 플러그인을 설치한다.

 

    ④ 플러그인을 설치한다.

        - 아래 목록은 GitHub, Docker, EC2 배포서버를 구성하기 위한 플러그인 목록이다.

        -  다른 기술요소(ex. GitLab)를 사용할 경우 관련 플러그인을 설치해야 한다.

플러그인 설치 목록
Job DSL
Pipeline: Deprecated Groovy Libraries
Pipeline: Declarative Agent API
Pipeline Utility Steps
Build Pipeline
Docker
Docker Commons
Docker API
Docker Pipeline
docker-build-step
GitHub Integration
GitHub Authentication
Pipeline: GitHub
Gradle Repo
Pipeline: AWS Steps
Amazon ECR
AWS Global Configuration
SSH
SSH Agent
SSH Pipeline Steps

 

4. 결과

    ˙ 설치한 플러그인 목록을 확인할 수 있다.

 

반응형
반응형

1. 시험환경

    ˙ 우분투(ubuntu) 리눅스 v22.04

    ˙ Jenkins (docker)

 

2. 목적

    ˙ 우분투(ubuntu) 리눅스 환경에서 도커(docker)를 설치(apt install) 한다.

    ˙ Jenkins Docker 이미지를 실행하고 최초 로그인하는 방법을 알아보자.

 

3. 적용

    ① 우분투(ubuntu) 환경에서 docker 데몬을 설치한다.

        - $ sudo apt update

        - $ sudo apt install -y docker.io

 

    ② 설치 후 현재 계정에서 docker 명령어를 실행하기 위한 권한을 부여한다.

        - $ sudo chmod 666 /var/run/docker.sock

 

    ③ Docker Container에서 생성된 데이터를 보관하기 위한 목적으로 Host PC에 마운트 경로를 생성한다.

 

    ④ Host PC 마운트 경로를 설정하여 Jenkins 컨테이너(container)를 실행한다.

        - $ docker run --name jenkins -d -p 8080:8080 -v ~/jenkins-volume:/var/jenkins_home -u root jenkins/jenkins:latest

 

    ⑤ 실행중인 Jenkins Container 안으로 진입하여 초기 접속 Password를 확인한다.

        - $ docker exec -it [container-id] bash

        - $ car /var/jenkins_home/secrets/initialAdminPassword

 

    ⑥ 컨테이너(container) 로그 출력을 통해서 "⑤번 절차 initialAdminPassword"를 확인할 수 있다.

 

    ⑦ 웹으로 Jenkins에 접속한다.

        - initialAdminPassword(⑤ 또는 ⑥ 절차)를 입력한다.

 

4. 결과

    ˙ Jenkins 로그인 성공시 "suggested plugins"을 설치한다.

 

    ˙ Jenkins 로그인 계정 생성, 설정, CI/CD 관련 플러그인인 다음 포스팅을 참고하자.

        - URL : https://languagestory.tistory.com/220 

 

Jenkins 계정 생성, 설정, 플러그인 설치

1. 시험환경 ˙ Jenkins 2. 목적 ˙ Jenkins initialAdminPassword로 로그인하여 "Suggested Plugin" 설치 완료 이후의 절차를 알아보자. - 참고: ˙ Jenkins 최초 접속 후 로그인 계정 생성, 설정 및 기타 플러그인 설치

languagestory.tistory.com

 

반응형
반응형

1. 시험환경

    ˙ 우분투(Ubuntu) v.22.04

    ˙ GitHub

    ˙ ssh-keygen

 

2. 목적

    ˙ 우분투(ubuntu) 리눅스 환경에서 공개키-비밀키를 생성하는 방법을 알아보자.

    ˙ 생성된 공용키(public-key)를 GitHub의 특정 Repository에 등록한다.

 

3. 적용

    ① key를 생성할 폴더에서 ssh-keygen 명령어를 이용하여 비밀키-공개키를 생성한다.

        - $ ssh-keygen  -t  ed25519  -a  100  -f  [SSH Key명]

 

    ② "Github의 특정 Repository" → "Settings" 메뉴를 클릭한다.

 

    ③ "Deploy keys" 메뉴 클릭 → "Add deploy key" 버튼을 클릭한다.

 

    ④ ①번 절차에서 생성한 2개의 파일 중 공개키(.pub 확장자)의 내용을 붙여넣는다.

 

 

4. 결과

    ˙ 배포 서버 등과 같은 공용 서버는 특정 사용자로 로그인 해두기 곤란하기 때문에

    ˙ 이와 같은 방법으로 접근할 repository에 Host 서버를 보안키 기반으로 인증해 두면

    ˙ 별도로 로그인 하지 않고 ssh를 통해 접근할 수 있다.

반응형
반응형

1. 시험환경

    ˙ Github

    ˙ Ubuntu v20.04

    ˙ Docker, Docker Hub

    ˙ Spring Boot Project

 

2. 목적

    ˙ Github에서 Spring Boot Project를 다운로드(pull) 한다.

    ˙ Spring Boot Project가 정상적으로 빌드(build) 되어 결과 파일(war, jar)가 생성되는지 확인한다.

    ˙ build.gradle 파일에서 JIB 라이브러리 추가 및 JIB 영역을 작성한다.

    ˙ JIB을 이용하여 Spring Boot Project를 Docker Image 빌드 및 Docker Hub에 업로드(push) 한다.

    ˙ Docker Hub에서 다운로드(pull) 하고 컨테이너를 실행하여 동작여부를 확인한다.

 

3. 적용

    ① Spring Boot 프로젝트를 생성한다.

        - Git Clone 명령어 : git clone [repository] .

        - Repository :  https://github.com/silkWater/template-gradle-springboot.git

 

GitHub - silkWater/template-gradle-springboot

Contribute to silkWater/template-gradle-springboot development by creating an account on GitHub.

github.com

 

    ② 프로젝트 빌드(Gradle) 명령어 실행 후 BUILD SUCCESSFUL 및 결과 파일이 생성된 것을 확인한다.

        - JIB Build와 상관없이 해당 프로젝트의 빌드(Gradle Build)가 정상적으로 SUCCESS 되는지 확인하기 위한 단계이다.

        - Gradle 빌드 명령어 : $ gradle build --info

        - 빌드 파일 경로 : $ (pwd)/build/libs/[파일명].war

 

    ③ build.gradle 파일에서 JIB 라이브러리를 추가하고 빌드 명세(기존 Dockerfile 역활)를 작성한다.

        - plugins 추가 : id 'com.google.cloud.tools.jib' version '3.1.4'

        - 빌드 명세 작성 (기존 Dockerfile 역활) : jib { ... }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
plugins {
        id 'org.springframework.boot' version '2.7.1'
        id 'io.spring.dependency-management' version '1.0.11.RELEASE'
        id 'java'
        id 'war'
        id 'com.google.cloud.tools.jib' version '3.1.4'
}
 
group = 'com.boot.template'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
 
configurations {
        compileOnly {
                extendsFrom annotationProcessor
        }
}
 
repositories {
        mavenCentral()
}
 
dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web'
        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
        implementation 'javax.servlet:jstl'
        implementation "org.apache.tomcat.embed:tomcat-embed-jasper"
}
 
tasks.named('test') {
        useJUnitPlatform()
}
 
jib {
        from {
                image = 'adoptopenjdk/openjdk11:alpine-jre'
        }
        to {
                image = 'silkwater/boot-template'
                tags = ['1.0']
        }
        container {
                entrypoint = ['java''-Dspring.profiles.active=template''-jar''template-0.0.1-SNAPSHOT.war']
                // mainClass = 'com.test.StartApplication'
                jvmFlags = ['-Xms512m''-Xmx512m''-Xdebug''-XshowSettings:vm''-XX:+UnlockExperimentalVMOptions''-XX:+UseContainerSupport']
                ports = ['8080']
 
                environment = [SPRING_OUTPUT_ANSI_ENABLED: "ALWAYS"]
                labels = [version:project.version, name:project.name, group:project.group]
                creationTime = 'USE_CURRENT_TIMESTAMP'
                format = 'Docker'
        }
        extraDirectories {
                paths {
                        path {
                                from = file('build/libs')
 
                        }
                }
        }
}
cs

 

     Docker Hub에 업로드(push) 권한을 얻는다.

        - $ docker login

 

    JIB 명세에 의하여 Spring Boot 프로젝트를 docker image 빌드 및 정의된 Repository로 업로드(push) 한다.

        - Gradle JIB 빌드 명령어 : $ ./gradlew jib

 

    JIB(to)에서 지정한 Repository에 Docker Image가 업로드(push) 되었는지 확인한다.

        - Docker Hub Repository 전/후 비교

 

     Docker Hub로부터 이미지를 다운로드(pull) 받아 실행한다.

        - docker pull [repository]/[image]:[tag]

 

4. 결과

    ˙ HTTP 접속하여 서비스가 동작하는지 확인한다.

반응형
반응형

1. 시험환경

    ˙ Github

    ˙ Ubuntu v20.04

    ˙ Docker, Docker Hub

    ˙ Spring Boot Project

 

2. 목적

    ˙ Github에서 Spring Boot Project를 다운로드(pull) 한다.

    ˙ Spring Boot Project가 정상적으로 빌드(build) 되어 결과 파일(war, jar)가 생성되는지 확인한다.

    ˙ Dockerfile을 이용하여 Spring Boot Project를 Docker Image로 빌드한다.

    ˙ Docker Image를 Docker Hub에 업로드(push) 한다.

    ˙ Docker Hub에서 다운로드(pull) 하고 컨테이너를 실행하여 동작여부를 확인한다.

 

3. 적용

    ① Spring Boot 프로젝트를 생성한다.

        - Git Clone 명령어 : git clone [repository] .

        - Repository :  https://github.com/silkWater/template-gradle-springboot.git

 

GitHub - silkWater/template-gradle-springboot

Contribute to silkWater/template-gradle-springboot development by creating an account on GitHub.

github.com

 

    ② 프로젝트 빌드(Gradle) 명령어 실행 후 BUILD SUCCESSFUL 및 결과 파일이 생성된 것을 확인한다.

        - Gradle 빌드 명령어 : $ gradle build --info

        - 빌드 파일 경로 : $ (pwd)/build/libs/[파일명].war

 

    ③ 프로젝트의 최상위 디렉토리에서 Dockerfile을 작성한다.

    ④ Dockerfile에 의하여 Spring Boot 프로젝트를 docker image로 빌드한다.

       - Gradle 빌드 명령어 : $ docker build -t [repository:tag] .

 

    ⑤ Docker Hub에 업로드(push) 권한을 얻는다.

        - $ docker login

 

    ⑥ DockerHub에 이미지를 업로드(push) 한다.

        - $ docker push [repository:tag]

 

    ⑦ Docker Hub의 지정한 Repository에 Docker Image가 업로드(push) 되었는지 확인한다.

        - Docker Hub Repository 전/후 비교

 

 

    ⑧ Local PC의 docker image를 삭제하고 Docker Hub로부터 이미지를 다운로드(pull) 받는다.

    ⑨ 도커(docker) 컨테이너(container)를 실행한다.

 

4. 결과

    ˙ HTTP 접속하여 서비스가 동작하는지 확인한다.

 

반응형
반응형

1. 시험환경

    ˙ 우분투(ubuntu) v22.04

    ˙ Open JDK v11

 

2. 목적

    ˙ 우분투(ubuntu) 리눅스 환경에서 OpenJDK 설치하는 절차를 알아보자.

 

3. 적용

    ① 패키지 레포지토리를 업데이트한다.

        - $ sudo apt-get update && sudo apt-get upgrade

 

    ② openjdk 11을 설치한다.

        - sudo apt-get install openjdk-11-jdk

 

    ③ JRE 및 JAVAC(컴파일러) 설치버전을 확인한다.

        - $ java -version

        - $ javac -version

 

    ④ JAVA_HOME 환경변수를 등록하고 PATH를 추가한다.

        - $ vi ~/.bashrc

        - $ source ~/.bashrc

1
2
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=$PATH:$JAVA_HOME/bin
cs

 

    ⑤ 등록된 환경변수를 출력한다.

        - $ echo $JAVA_HOME

 

4. 결과

    ˙ 등록된 환경변수를 출력한다.

        - $ echo $JAVA_HOME

반응형

+ Recent posts