"Cloud-init 디버깅 방법"의 두 판 사이의 차이

 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
7번째 줄: 7번째 줄:
----
----
다양한 cloud-init 실패 모드가 있으며 이를 디버깅해야 할 필요가 있습니다. 디버깅은 시나리오에 따라 다르지만, 시작 지점은 종종 유사합니다:
다양한 cloud-init 실패 모드가 있으며 이를 디버깅해야 할 필요가 있습니다. 디버깅은 시나리오에 따라 다르지만, 시작 지점은 종종 유사합니다:
* [[#인스턴스에 로그인할 수 없음로그인할 수 없음]]
* [[#인스턴스에 로그인할 수 없음|로그인할 수 없음]]
* [[#cloud-init가 실행되지 않음|cloud-init이 실행되지 않음]]
* [[#cloud-init가 실행되지 않음|cloud-init이 실행되지 않음]]
* [[#cloud-init가 실행되었지만 원하는 작업을 수행하지 않음|cloud-init이 예상치 못한 동작을 함]]
* [[#cloud-init가 실행되었지만 원하는 작업을 수행하지 않음|cloud-init이 예상치 못한 동작을 함]]
13번째 줄: 13번째 줄:


==인스턴스에 로그인할 수 없음==
==인스턴스에 로그인할 수 없음==
==cloud-init가 실행되지 않음==
쉘 접근 권한이 없을 때는 디버그하기 가장 어려운 시나리오 중 하나입니다. 다음과 같은 몇 가지 옵션이 있습니다:
* 1. 시리얼 콘솔에서 로그 메시지를 수집하고 오류가 있는지 확인합니다.
* 2. SSH 없이 인스턴스에 접근하려면 사용자 데이터(user-data)를 사용하여 패스워드 접근이 가능한 사용자를 생성하고 클라우드 시리얼 포트 콘솔을 통해 로그인합니다. 이는 <code>cc_users_groups</code>가 성공적으로 실행된 경우에만 가능합니다.
* 3. 동일한 사용자 데이터를 로컬에서 실행해 봅니다. LXD 또는 QEMU를 로컬에서 사용하여 쉘이나 로그를 얻고 이러한 단계로 디버깅합니다.
* 4. 이미지를 로컬 시스템으로 복사한 다음 파일시스템을 로컬로 마운트하고 이미지 로그를 검사하여 단서를 찾습니다.
 
==cloud-init이 실행되지 않음==
1. <code>cloud-init status --long</code> 명령어의 출력을 확인하십시오.
* <code>'extended_status'</code> 키의 값은 무엇입니까?
* <code>'boot_status_code'</code> 키의 값은 무엇입니까?
:상태에 대한 자세한 설명은 [[cloud-init 보고서 상태|우리의 보고서 상태 설명]]을 참조하십시오.
 
2. <code>/run/cloud-init/ds-identify.log</code>의 내용을 확인하십시오.
:이 로그 파일은 cloud-init이 실행되고 있는 플랫폼이 감지될 때 사용됩니다. 이 단계는 cloud-init을 활성화하거나 비활성화합니다.
 
3. 서비스 상태를 확인하십시오:
:<syntaxhighlight lang='bash'>
systemctl status cloud-init-local.service cloud-init.service\
  cloud-config.service cloud-final.service
</syntaxhighlight>
:cloud-init이 실행을 시작했지만 완료되지 않았을 수 있습니다. 이 명령어는 얼마나 많은 cloud-init 단계가 완료되었는지, 그리고 어떤 단계가 완료되었는지 보여줍니다.
 
==cloud-init가 실행되었지만 원하는 작업을 수행하지 않음==
==cloud-init가 실행되었지만 원하는 작업을 수행하지 않음==
==cloud-init 실행이 완료되지 않음==
==cloud-init 실행이 완료되지 않음==

2024년 7월 6일 (토) 10:06 기준 최신판

1 개요[ | ]

Crystal Clear action info.png 작성 중인 문서입니다.
How to debug cloud-init
Cloud-init 디버깅 방법

https://cloudinit.readthedocs.io/en/latest/howto/debugging.html


다양한 cloud-init 실패 모드가 있으며 이를 디버깅해야 할 필요가 있습니다. 디버깅은 시나리오에 따라 다르지만, 시작 지점은 종종 유사합니다:

2 인스턴스에 로그인할 수 없음[ | ]

쉘 접근 권한이 없을 때는 디버그하기 가장 어려운 시나리오 중 하나입니다. 다음과 같은 몇 가지 옵션이 있습니다:

  • 1. 시리얼 콘솔에서 로그 메시지를 수집하고 오류가 있는지 확인합니다.
  • 2. SSH 없이 인스턴스에 접근하려면 사용자 데이터(user-data)를 사용하여 패스워드 접근이 가능한 사용자를 생성하고 클라우드 시리얼 포트 콘솔을 통해 로그인합니다. 이는 cc_users_groups가 성공적으로 실행된 경우에만 가능합니다.
  • 3. 동일한 사용자 데이터를 로컬에서 실행해 봅니다. LXD 또는 QEMU를 로컬에서 사용하여 쉘이나 로그를 얻고 이러한 단계로 디버깅합니다.
  • 4. 이미지를 로컬 시스템으로 복사한 다음 파일시스템을 로컬로 마운트하고 이미지 로그를 검사하여 단서를 찾습니다.

3 cloud-init이 실행되지 않음[ | ]

1. cloud-init status --long 명령어의 출력을 확인하십시오.

  • 'extended_status' 키의 값은 무엇입니까?
  • 'boot_status_code' 키의 값은 무엇입니까?
상태에 대한 자세한 설명은 우리의 보고서 상태 설명을 참조하십시오.

2. /run/cloud-init/ds-identify.log의 내용을 확인하십시오.

이 로그 파일은 cloud-init이 실행되고 있는 플랫폼이 감지될 때 사용됩니다. 이 단계는 cloud-init을 활성화하거나 비활성화합니다.

3. 서비스 상태를 확인하십시오:

systemctl status cloud-init-local.service cloud-init.service\
   cloud-config.service cloud-final.service
cloud-init이 실행을 시작했지만 완료되지 않았을 수 있습니다. 이 명령어는 얼마나 많은 cloud-init 단계가 완료되었는지, 그리고 어떤 단계가 완료되었는지 보여줍니다.

4 cloud-init가 실행되었지만 원하는 작업을 수행하지 않음[ | ]

5 cloud-init 실행이 완료되지 않음[ | ]

5.1 외부 요인[ | ]

5.2 내부 요인[ | ]

5.3 디버깅을 시작하기 위해[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}