쓸데없는 코딩하기
Compute Engine 에서 VM 인스턴스 기동시 스크립트 실행하기
이의있소
2019. 11. 8. 14:45
관련지식
GCP, Compute Engine, metadata
GCP에서 VM 인스턴스가 실행되면 서버 안의 관련 프로세스도 실행하고 싶을것입니다. 특히 서버가 기동되면서 할당되는 아이피를 duckdns
와 같은 DDNS에 갱신하고 싶은 경우엔 꼭 필요하겠죠. 인스턴스 설정으로 들어가서 메타데이터를 적용하면 됩니다.
메타데이터 키 startup-script
에는 실행하고 싶은 스크립트를 정의할수 있습니다. 공식 가이드에서는 아래와 같은 문장을 넣는것을 예로 들었습니다.
#! /bin/bash
apt-get update
apt-get install -y apache2
cat <<EOF > /var/www/html/index.html
<html><body><h1>Hello World</h1>
<p>This page was created from a simple startup script!</p>
</body></html>
EOF
하지만 보통은 저러한 내용을 담은 스크립트 파일을 실행할것 같습니다.
여기서 정의되는 스크립트는 모두 root 로 실행됩니다. 특정 사용자의 권한으로 실행하고 싶다면 su
명령어를 이용하면 됩니다. 아래 스크립트는 사용자1
의 권한으로 \”\” 안의 내용을 실행하게 됩니다.
만약 서버 기동시 스크립트가 정상적으로 실행된것 같지 않아서 확인이 필요할땐 ssh
접속후 ‘sudo google_metadata_script_runner —script-type startup —debug’ 명령어를 입력하면 수동으로 실행해볼수 있습니다.
서버 기동시 Google Cloud Storage URL
을 실행하고 싶다면 startup-script
대신 startup-script-url
를 사용하면 됩니다.