대화형 직렬 콘솔 구성

베어메탈 솔루션은 베어메탈 솔루션 서버에 액세스할 수 있는 대화형 직렬 콘솔을 제공합니다. 직렬 콘솔에서 명령어를 직접 실행하고 프롬프트에 응답할 수 있습니다. 직렬 콘솔을 사용하여 구성 및 문제 해결 작업을 수행할 수 있습니다. 베어메탈 솔루션 서버는 첫 번째 직렬 포트(포트 1)를 직렬 콘솔로 사용합니다.

대화형 직렬 콘솔은 TS54(43.45.00.002) 펌웨어가 있는 서버에서만 지원됩니다. 시작하기 전에 서버를 TS54 펌웨어로 업그레이드해야 합니다. 시작하기 전에를 참조하세요.

30일이 지난 대화형 직렬 콘솔 연결은 강제로 연결 해제될 수 있습니다.

이 문서에서는 서버의 대화형 직렬 콘솔 액세스를 사용 설정 및 중지하는 방법을 설명합니다.

시작하기 전에

  1. Bare Metal Solution API를 사용 설정합니다. Bare Metal Solution API를 사용하도록 Google Cloud 프로젝트 설정을 참조하세요.

  2. 사용자에게 적절한 Identity and Access Management(IAM) 역할을 부여합니다. 이 문서의 모든 작업을 수행하려면 다음 역할 중 하나가 있어야 합니다.

    • roles/baremetalsolution.admin
    • roles/baremetalsolution.editor
  3. 필요한 펌웨어 버전(TS54(43.45.00.002)) 이상이 있는지 확인합니다. 다음 단계를 따르세요.

    1. 베어메탈 솔루션 서버에서 다음 명령어를 실행합니다.

      sudo dmidecode -s bios-version
      

      성공하면 다음 예시와 같이 43.45.00.002 이상의 BIOS 버전이 표시됩니다.

      Version: BIOS_PUR043.45.00.002
      
    2. BIOS 버전이 43.45.00.002보다 낮으면 서버의 펌웨어를 업그레이드합니다. 업그레이드와 관련해 도움이 필요하면 고객 관리에 문의하세요.

  4. OS의 GRand Unified Bootloader(GRUB) 파일에 직렬 콘솔을 지원하기 위한 적절한 구성이 있는지 확인합니다. 다음 단계를 따르세요.

    1. /etc/default 디렉터리에서 GRUB 구성 파일을 찾습니다.
    2. GRUB 구성 파일에 다음 설정이 포함되어 있는지 확인합니다.

      GRUB_CMDLINE_LINUX="(append to the existing value) console=tty0 console=ttyS0,115200"
      GRUB_TERMINAL_OUTPUT="console serial"
      GRUB_TERMINAL="console serial"
      GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
      

      파일에 이러한 설정이 포함되어 있으면 나머지 안내를 건너뜁니다. GRUB 구성 파일을 사용하여 직렬 콘솔에 액세스할 수 있습니다.

    3. GRUB 구성 파일에 이러한 설정이 없으면 수동으로 추가합니다.

    4. grub-mkconfig 명령어를 실행하여 변경사항을 처리합니다. 자세한 내용은 GRUB 문서를 참조하세요.

    5. 서버를 재부팅합니다.

대화형 직렬 콘솔 액세스 사용 설정

대화형 직렬 콘솔을 사용 설정하고 액세스하려면 다음 단계를 따릅니다.

  1. 대화형 직렬 콘솔에 대한 액세스를 사용 설정합니다.
  2. SSH 키를 생성합니다.
  3. SSH 키를 등록합니다.
  4. 서버에 연결합니다.

대화형 직렬 콘솔에 대한 액세스 사용 설정

대화형 직렬 콘솔을 사용하기 전에 서버에서 액세스를 사용 설정해야 합니다.

gcloud

대화형 직렬 콘솔에 대한 액세스를 사용 설정하려면 gcloud bms instances enable-serial-console 명령어를 실행합니다.

gcloud bms instances enable-serial-console SERVER_NAME --project=PROJECT_ID --region=REGION

다음을 바꿉니다.

  • SERVER_NAME: 서버의 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 서버의 리전입니다.

API

대화형 직렬 콘솔에 대한 액세스를 사용 설정하려면 프로젝트 ID, 리전, 서버 이름을 입력하고 다음 curl 명령어를 실행합니다.

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:enableInteractiveSerialConsole"

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 서버의 리전입니다.
  • SERVER_NAME: 서버의 이름입니다.

SSH 키 쌍 생성

직렬 콘솔에 대한 액세스를 인증하기 위한 SSH 키 쌍을 생성합니다. 프로젝트별로 한 번만 수행해야 합니다.

점프 호스트 VM 인스턴스 또는 다른 인터넷 연결 터미널에서 ssh-keygen 명령어를 실행하여 새 SSH 키 쌍을 만듭니다.

  ssh-keygen -b 4096 -f SSH_KEY_ID -N 'PASSPHRASE' -t rsa
  

다음을 바꿉니다.

  • SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.
  • PASSPHRASE: 직렬 콘솔을 통해 서버에 액세스할 때 사용하는 암호입니다.

ssh-keygen 명령어는 비공개 키를 SSH_KEY_ID 파일에 저장하고 공개 키를 홈 디렉터리에 있는 SSH_KEY_ID.pub 파일에 저장합니다.

SSH 키 등록

직렬 콘솔에 대한 액세스를 인증하려면 프로젝트에서 SSH 키를 등록합니다. 이 작업은 키 쌍당 한 번만 수행해야 합니다.

gcloud

SSH 키를 등록하려면 gcloud bms ssh-keys add 명령어를 실행합니다.

gcloud bms ssh-keys add SSH_KEY_ID --project=PROJECT_ID --key-file=SSH_KEY_ID.pub

다음을 바꿉니다.

  • SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 서버의 리전입니다.
  • SERVER_NAME: 서버의 이름입니다.

API

SSH 키를 등록하려면 프로젝트 ID, SSH 키 ID, 공개 키 파일 이름을 입력하고 다음 curl 명령어를 실행합니다.

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys?ssh_key_id=SSH_KEY_ID" \
--data "{\"public_key\": \"$(cat SSH_KEY_ID.pub)\"}"

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.

프로젝트에서 SSH 키를 관리하려면 SSH 키 관리를 참조하세요.

서버에 연결

SSH를 사용하여 대화형 직렬 콘솔에 액세스합니다. 다음 명령어를 실행합니다.

  ssh -i SSH_KEY_ID -p 9600 PROJECT_ID.REGION.SERVER_NAME.USERNAME.bms=true@REGION-ssh-serialport.googleapis.com
  

다음을 바꿉니다.

  • SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 서버의 리전입니다.
  • SERVER_NAME: 서버의 이름입니다.
  • USERNAME: 직렬 콘솔을 통해 베어메탈 솔루션 서버에 액세스하는 데 사용하는 사용자 이름입니다.

메시지가 표시되면 이전에 구성한 SSH 키 암호를 입력합니다. 필요에 따라 Enter 또는 Return 키를 눌러 대화형 직렬 콘솔에 액세스합니다.

대화형 직렬 콘솔에서 연결 해제

직렬 콘솔에서 연결을 해제하려면 다음 단계를 수행합니다.

  1. ENTER 또는 RETURN 키를 누릅니다.
  2. ~.(물결표시와 마침표)을 입력합니다.

베어메탈 솔루션용 SAP HANA의 경우 CTRL + ] q를 사용해서 대화형 직렬 콘솔에서 연결을 해제합니다.

SSH 키 관리

SSH 키는 프로젝트별로 저장됩니다. 다음과 같은 방법으로 SSH 키를 관리할 수 있습니다.

SSH 키 나열

프로젝트에 등록된 공개 SSH 키를 나열할 수 있습니다.

gcloud

공개 SSH 키를 나열하려면 gcloud bms ssh-keys list 명령어를 실행합니다.

gcloud bms ssh-keys list --project=PROJECT_ID

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.

API

공개 SSH 키를 나열하려면 프로젝트 ID를 입력하고 다음 curl 명령어를 실행합니다.

curl -v \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys"

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.

SSH 키 삭제

프로젝트의 승인된 키 목록에서 SSH 키를 삭제할 수 있습니다.

gcloud

공개 SSH 키를 삭제하려면 gcloud bms ssh-keys remove 명령어를 실행합니다.

gcloud bms ssh-keys remove SSH_KEY_ID --project=PROJECT_ID

다음을 바꿉니다.

  • SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.

API

공개 SSH 키를 삭제하려면 프로젝트 ID와 SSH 키 ID를 입력하고 다음 curl 명령어를 실행합니다.

curl -v \
-X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys/SSH_KEY_ID"

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.

대화형 직렬 콘솔 액세스 사용 중지

서버에서 대화형 직렬 콘솔 액세스를 사용 중지하려면 다음 안내에 따릅니다.

gcloud

대화형 직렬 콘솔을 사용 중지하려면 gcloud bms instances disable-serial-console 명령어를 실행합니다.

gcloud bms instances disable-serial-console SERVER_NAME --project=PROJECT_ID --region=REGION

다음을 바꿉니다.

  • SERVER_NAME: 서버의 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 서버의 리전입니다.

API

대화형 직렬 콘솔을 사용 중지하려면 프로젝트 ID, 리전, 서버 이름을 입력하고 다음 curl 명령어를 실행합니다.

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:disableInteractiveSerialConsole"

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 서버의 리전입니다.
  • SERVER_NAME: 서버의 이름입니다.