ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OCI] 인스턴스 삭제 후 재생성하기
    IT/삽질 2024. 2. 12. 22:09

    출처 : unsplash.com

     

    또 삽질이다 ㅠㅠ

     

    오라클 클라우드 프리티어로 인스턴스 생성해서 이것저것 재밌게 해보고 있었는데.

    메일서버 구성해보겠다고 하다가. 설정이 꼬였는지.. 하루종일 수정하다가 안되겠어서 인스턴스 재생성하려고 한다 ㅠㅠ

     

     

    왠만하면 해결해보려고 했는데.. 아따.. 힘드네..

     

    인스턴스 재생성하고 다시 환경 구성하기 위해서

    지금 만들어뒀던 환경을 기록해본다...

     

    오늘은 정리만하고 재생성은 내일 해야지... ㅠㅠ

     

     

     

    1. SSH 접속 (필수)

    - 고정 IP 할당

    - openssh private key 생성

    - 접속 스크립트 작성

    참고)

    https://github.com/Bletcher-Project/bletcher_mix/issues/8

    https://colabear754.tistory.com/88

    https://sonhc.tistory.com/914

     

    2. 웰컴 메시지 작성 (선택)

    - /etc/motd 파일 수정

     

    3. 디렉토리 구조

    - 홈 디렉토리 하위에 package, script, study 3개 디렉토리 구성

    더보기

    [opc@mail ~]$ tree -d

    .

    ├── package

    │   ├── groovy -> groovy-3.0.8

    │   └── groovy-3.0.8

    │       ├── bin

    │       ├── conf

    │       ├── grooid

    │       ├── indy

    │       ├── lib

    │       │   └── extras-jaxb

    │       └── licenses

    ├── script

    └── study

        ├── automation

        │   ├── chap02

        │   │   └── dms

        │   │       ├── build

        │   │       │   └── prod

        │   │       ├── src

        │   │       │   └── com

        │   │       │       └── pragprog

        │   │       │           └── dms

        │   │       ├── test

        │   │       │   └── com

        │   │       │       └── pragprog

        │   │       │           └── dms

        │   │       └── vendor

        │   │           └── lib

        │   └── test

        │       ├── build

        │       │   └── test

        │       └── src

        ├── groovy

        ├── python_sample

        └── socket

            └── chap01

     

    4. git 설치

     

    5. study 용 설치

    - groovy 3.0.8

    - ant 1.10.5

    - jdk 1.8.0_402

    - jdk 11.0.22

    더보기

    $ cat ~/.bashrc

     

     

    # .bashrc

      

    # Source global definitions

    if [ -f /etc/bashrc ]; then

            . /etc/bashrc

    fi

     

    # User specific environment

    if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]

    then

        PATH="$HOME/.local/bin:$HOME/bin:$PATH"

    fi

    export PATH

     

    # Uncomment the following line if you don't like systemctl's auto-paging feature:

    # export SYSTEMD_PAGER=

     

    # User specific aliases and functions

     

    # for jdk 11

    #export JAVA_HOME=/opt/jdk-11.0.2

    # for jdk 8

    #export JAVA_HOME=/usr/bin/java

    #export PATH=$PATH:$JAVA_HOME/bin

     

    # for ant build

    export ANT_HOME=/usr/share/ant

    export PATH=$ANT_HOME/bin:$PATH

     

    # for groovy

    export GROOVY_HOME=/home/opc/package/groovy

    export PATH=$PATH:$GROOVY_HOME/bin

     

    # for alias

    alias auto='cd /home/opc/study/automation'

     

    6. jdk 변경

    - jdk 1.8 과 11 버전을 설치하고 2개 버전을 번갈아 가며 사용해야할 경우가 있어서, 별도 스크립트 만들어서 두 버전 사용가능하도록 수정

    더보기

    [opc@mail script]$ ls -lrt

    total 4

    -rwxrwxr-x. 1 opc opc 2254 Feb  7 01:52 set_java_home.sh

    [opc@mail script]$ cat set_java_home.sh 

    #!/bin/bash

     

    echo "#######################################################################################################################"

    echo "This is a script for check java version and change the java home if you want to change specific version."

    echo "#######################################################################################################################"

     

    echo ""

     

    # check the first parameter

    if [ -z "$1" ]; then

    echo "the first param is null or empty."

    echo "usage: . set_java_version.sh [8 || 11]"

    echo ""

    return 1

    elif [ "$1" -eq "8" ] || [ "$1" -eq "11" ]; then

            echo "first param is $1"

    echo ""

            OPENJDK_VERSION=$1

    # get a crrent java version

    JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ { print $2 }' | awk -F. '{ print $1 }')

    # because of deleted . from 1.8.xx 

    if [ "$JAVA_VERSION" -eq "1" ]; then

    JAVA_VERSION="8"

    fi

    else

    echo "the first param is not 8 or 11."

            echo "usage: . set_java_version.sh [8 || 11]"

    echo ""

            return 1

    fi

     

    echo "JAVA_VERSION: $JAVA_VERSION, OPENJDK_VERSION: $OPENJDK_VERSION"

    echo ""

     

     

    # do change the java version

    # jdk11: /opt/jdk-11.0.1

    # jdk8: /usr/bin/java

     

    # case1: java_version: 11, openjdk: 11 -> return 1

    # case2: java_version: 11, openjdk: 8 -> change

    # case3: java_version: 8, openjdk: 11 -> change

    # case4: java_version: 8, openjdk: 8 -> return 1

     

    if [ "$JAVA_VERSION" -eq "$OPENJDK_VERSION" ]; then

    echo "(stop) current version: \"$JAVA_VERSION\", you want \"$OPENJDK_VERSION\". It's same!!"

    echo ""

    return 1

    # case 2

    elif [ "$JAVA_VERSION" -eq "11" ] && [ "$OPENJDK_VERSION" -eq "8" ]; then

    #export JAVA_HOME=/usr/bin/java/

    #JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-2.0.1.el8.x86_64

    #export PATH=$PATH:$JAVA_HOME/bin

    echo "changed to jdk1.8"

    echo ""

    # case 3

    elif [ "$JAVA_VERSION" -eq "8" ] && [ "$OPENJDK_VERSION" -eq "11" ]; then

    #export JAVA_HOME=/opt/jdk-11.0.2/

    #JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

    JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.22.0.7-2.0.1.el8.x86_64

    #export PATH=$JAVA_HOME/bin:$PATH

    echo "changed to jdk11"

    echo ""

    fi

     

    #export PATH=$PATH:$JAVA_HOME/bin

     

    export PATH=$JAVA_HOME/bin:$PATH

     

     

     

    험난허다 ㅠㅠ

     

    댓글

Designed by Tistory.