대화형 직렬 콘솔 구성
베어메탈 솔루션은 베어메탈 솔루션 서버에 액세스할 수 있는 대화형 직렬 콘솔을 제공합니다. 직렬 콘솔에서 명령어를 직접 실행하고 프롬프트에 응답할 수 있습니다. 직렬 콘솔을 사용하여 구성 및 문제 해결 작업을 수행할 수 있습니다. 베어메탈 솔루션 서버는 첫 번째 직렬 포트(포트 1)를 직렬 콘솔로 사용합니다.
대화형 직렬 콘솔은 다음 서버에서만 지원됩니다.
TS54
(43.45.00.002
) 이상의 펌웨어 버전을 사용하는 범용 서버3.50.58
이상의 펌웨어 버전을 사용하는 메모리 최적화 서버
시작하기 전에 서버를 최신 펌웨어로 업그레이드해야 합니다. 시작하기 전에를 참조하세요.
30일이 지난 대화형 직렬 콘솔 연결은 강제로 연결 해제될 수 있습니다.
이 문서에서는 서버의 대화형 직렬 콘솔 액세스를 사용 설정 및 중지하는 방법을 설명합니다.
시작하기 전에
Bare Metal Solution API를 사용 설정합니다. Bare Metal Solution API를 사용하도록 Google Cloud 프로젝트 설정을 참조하세요.
사용자에게 적절한 Identity and Access Management(IAM) 역할을 부여합니다. 이 문서의 모든 작업을 수행하려면 다음 역할 중 하나가 있어야 합니다.
roles/baremetalsolution.admin
roles/baremetalsolution.editor
필요한 펌웨어 버전이 있는지 확인합니다.
- 범용 서버의 경우
TS54
(43.45.00.002
) 이상 - 메모리 최적화 서버의 경우
3.50.58
이상
다음 단계를 따르세요.
베어메탈 솔루션 서버에서 다음 명령어를 실행합니다.
sudo dmidecode -s bios-version
성공하면 출력에 필요한 BIOS 버전이 표시됩니다. 예를 들어 범용 서버의 경우 출력에
43.45.00.002
이상의 BIOS 버전이 표시됩니다.Version: BIOS_PUR043.45.00.002
BIOS 버전이 필요한 펌웨어보다 낮으면 서버의 펌웨어를 업그레이드합니다. 업그레이드와 관련해 도움이 필요하면 고객 관리에 문의하세요.
- 범용 서버의 경우
베어메탈 솔루션 서버가 2022년 6월 이전에 프로비저닝된 경우 커널 부팅 매개변수에 대화형 직렬 콘솔에 필요한 구성이 부족할 수 있습니다. 반대로 2022년 6월 이후에 프로비저닝된 경우 필요한 구성이 OS 이미지에 이미 통합되었을 수 있습니다. 하지만 OS 패치 또는 엔터프라이즈별 정책 시행으로 인해 기본 커널 부팅 매개변수가 변경되었을 수도 있습니다. 어떠한 경우든 대화형 직렬 콘솔에 필요한 OS 구성의 가용성을 확인하는 것이 좋습니다.
OS에 대화형 직렬 콘솔에 필요한 구성이 있는지 확인하려면 다음 단계를 수행합니다.
/etc/default
디렉터리에서 GRUB(GRand Unified Bootloader) 구성 파일을 찾습니다.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 구성 파일을 사용하여 직렬 콘솔에 액세스할 수 있습니다.
GRUB 구성 파일에 이러한 설정이 없으면 수동으로 추가합니다.
grub-mkconfig
명령어를 실행하여 변경사항을 처리합니다. 자세한 내용은 GRUB 문서를 참조하세요.서버를 재부팅합니다.
대화형 직렬 콘솔 액세스 사용 설정
대화형 직렬 콘솔을 사용 설정하고 액세스하려면 다음 단계를 따릅니다.
- 대화형 직렬 콘솔에 대한 액세스를 사용 설정합니다.
- SSH 키를 생성합니다.
- SSH 키를 등록합니다.
- 서버에 연결합니다.
대화형 직렬 콘솔에 대한 액세스 사용 설정
대화형 직렬 콘솔을 사용하기 전에 서버에서 액세스를 사용 설정해야 합니다.
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@ssh-serialport.googleapis.com
다음을 바꿉니다.
- SSH_KEY_ID: 공개 키와 비공개 키를 생성하는 데 사용되는 SSH 키 파일의 루트 이름입니다.
- PROJECT_ID: 프로젝트 ID입니다.
- REGION: 서버의 리전입니다.
- SERVER_NAME: 서버의 이름입니다.
- USERNAME: 직렬 콘솔을 통해 베어메탈 솔루션 서버에 액세스하는 데 사용하는 사용자 이름입니다.
메시지가 표시되면 이전에 구성한 SSH 키 암호를 입력합니다. 필요에 따라 Enter
또는 Return
키를 눌러 대화형 직렬 콘솔에 액세스합니다.
대화형 직렬 콘솔에서 연결 해제
직렬 콘솔에서 연결을 해제하려면 다음 단계를 수행합니다.
ENTER
또는RETURN
키를 누릅니다.~.
(물결표시와 마침표)을 입력합니다.
베어메탈 솔루션용 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: 서버의 이름입니다.