Joo's
article thumbnail

일단 콘솔에서 NAS를 만든다.

중간에 NAS를 연결할 서버를 선택해준다.

 

MobaXterm으로 서버에 접속한다.


/root 폴더에서 시작한다.

/root/nas.sh 파일을 만든다. 권한을 준다.

centos랑 한 줄만 다르다.

apt-get install << 이거 한줄만 변경하면 된다.

자기 계정의 key, nas 정보를 수정하기

touch nas.sh
chmod 777 nas.sh
vim nas.sh

# 하위 내용 수정 후 붙여 넣기
# 수정은 ACCESSKEY / SECRETKEY / NASINSTANCENO / NASMOUNTURL 부분 수정


#!/bin/bash
if [ -z "$BASH_VERSION" ]; then exec bash "$0" "$@"; fi
ACCESSKEY="865ED25EC5FF2"
SECRETKEY="F229503E0B5805B71EBBBB21A56AE0"
NASINSTANCENO="2256"
NASMOUNTURL="169.254.82.16:/n2905028_oksk"
MOUNTPOINT=/mnt/nas
 
# signature_finction
function signature_function(){
local nl=$'\\n'
SIG="$4"' '"$5"${nl}"$3"${nl}"$1"
SIGNITURE=$(echo -n -e "$SIG"|iconv -t utf8 |openssl dgst -sha256 -hmac $2 -binary|openssl enc -base64)
}
signature_function
 
## Check VPC
if [[ ! -d /home1/nbpmon/noms/nsight/bin || `timeout 1s nslookup vmconf.ncloud.com  | grep -c '169.254'` -ge 1 ]]; then
    VPC_ENV=2
else
    VPC_ENV=0
fi
 
if [ $VPC_ENV == "2" ]; then
    # instance_no
    IPADDR=$(/sbin/ifconfig eth0 |grep inet | awk '{print$2}' | sed 's/[^0-9, .]//g'|head -n 1)
    TIMESTAMP=$(echo $(($(date +%s%N)/1000000)))
    METHOD="GET"
    URI="/vserver/v2/getServerInstanceList?ip="$IPADDR"&responseFormatType=json"
    signature_function $ACCESSKEY $SECRETKEY $TIMESTAMP $METHOD $URI
    INSTANCENO=$(curl -i -X $METHOD -H x-ncp-apigw-timestamp:$TIMESTAMP -H x-ncp-iam-access-key:$ACCESSKEY -H x-ncp-apigw-signature-v2:$SIGNITURE https://ncloud.apigw.ntruss.com$URI|grep "serverInstanceNo"|awk '{print $2}'|sed 's/.//'|sed 's/..$//' )
 
    # nas_acl_add
    TIMESTAMP=$(echo $(($(date +%s%N)/1000000)))
    METHOD="GET"
    URI="/vnas/v2/addNasVolumeAccessControl?nasVolumeInstanceNo="$NASINSTANCENO"&serverInstanceNoList.1="$INSTANCENO
    signature_function $ACCESSKEY $SECRETKEY $TIMESTAMP $METHOD $URI
    returnCode=$(curl -i -X $METHOD -H x-ncp-apigw-timestamp:$TIMESTAMP -H x-ncp-iam-access-key:$ACCESSKEY -H x-ncp-apigw-signature-v2:$SIGNITURE https://ncloud.apigw.ntruss.com$URI | grep returnCode |sed 's/>/</' |awk -F "<" '{print $3}'| sed '/^$/d')
    while true
    do
        if [ $returnCode == "24304" ] || [ $returnCode == "300009" ]
        then
            returnCode=$(curl -i -X $METHOD -H x-ncp-apigw-timestamp:$TIMESTAMP -H x-ncp-iam-access-key:$ACCESSKEY -H x-ncp-apigw-signature-v2:$SIGNITURE https://ncloud.apigw.ntruss.com$URI | grep returnCode |sed 's/>/</' |awk -F "<" '{print $3}'| sed '/^$/d')
        else
            break
        fi
    done
 
else
    # instance_no
    IPADDR=$(/sbin/ifconfig eth0 |grep inet | awk '{print$2}' | sed 's/[^0-9, .]//g'|head -n 1)
    TIMESTAMP=$(echo $(($(date +%s%N)/1000000)))
    METHOD="GET"
    URI="/server/v2/getServerInstanceList?searchFilterName=ip&searchFilterValue="$IPADDR"&responseFormatType=json"
    signature_function $ACCESSKEY $SECRETKEY $TIMESTAMP $METHOD $URI
    INSTANCENO=$(curl -i -X $METHOD -H x-ncp-apigw-timestamp:$TIMESTAMP -H x-ncp-iam-access-key:$ACCESSKEY -H x-ncp-apigw-signature-v2:$SIGNITURE https://ncloud.apigw.ntruss.com$URI|grep "serverInstanceNo"|awk '{print $2}'|sed 's/.//'|sed 's/..$//' )
 
    # nas_acl_add
    TIMESTAMP=$(echo $(($(date +%s%N)/1000000)))
    METHOD="GET"
    URI="/server/v2/addNasVolumeAccessControl?nasVolumeInstanceNo="$NASINSTANCENO"&serverInstanceNoList.1="$INSTANCENO
    signature_function $ACCESSKEY $SECRETKEY $TIMESTAMP $METHOD $URI
    returnCode=$(curl -i -X $METHOD -H x-ncp-apigw-timestamp:$TIMESTAMP -H x-ncp-iam-access-key:$ACCESSKEY -H x-ncp-apigw-signature-v2:$SIGNITURE https://ncloud.apigw.ntruss.com$URI | grep returnCode |sed 's/>/</' |awk -F "<" '{print $3}'| sed '/^$/d')
    while true
    do
        if [ $returnCode == "24304" ] || [ $returnCode == "300009" ]
        then
            returnCode=$(curl -i -X $METHOD -H x-ncp-apigw-timestamp:$TIMESTAMP -H x-ncp-iam-access-key:$ACCESSKEY -H x-ncp-apigw-signature-v2:$SIGNITURE https://ncloud.apigw.ntruss.com$URI | grep returnCode |sed 's/>/</' |awk -F "<" '{print $3}'| sed '/^$/d')
        else
            break
        fi
    done
fi
########################################################################
# Set nfs package
# Centos 7.x
# https://guide.ncloud-docs.com/docs/nas-use-linux-vpc
apt-get -y install nfs-common
systemctl start rpcbind.service
systemctl enable rpcbind.service
 
# Mount
mkdir $MOUNTPOINT
mount -t nfs -o vers=3 $NASMOUNTURL $MOUNTPOINT

# mount FSTAB add
echo "169.254.82.16:/n2905028_oksk /mnt/nas nfs vers=3,defaults 0 0" >> /etc/fstab

이거 재부팅하면 마운트가 풀려있다. 오토스케일링하려면 마운트 고정하는 것도 init 스크립트에 넣어야 함.

 

init에 작성할 내용

#!/bin/bash

/root/nas.sh

 

profile

Joo's

@JooJY

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!