cloud-init 디버깅 방법

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가 실행되었지만 원하는 작업을 수행하지 않음

  • 1. cloud-init의 user data cloud config를 사용 중인 경우, user data cloud config를 검증하세요.
  • 2. cloud-init status --long 명령어에서 오류를 확인하세요.
    • 'errors' 키의 값은 무엇인가요?
    • 'recoverable_errors' 키의 값은 무엇인가요?
이 export된 오류에 대한 자세한 정보는 export된 오류에 대한 가이드를 참조하세요.
  • 3. 오류에 대한 추가적인 맥락을 위해 다음 로그 파일들을 확인하세요:
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log
로그에서 오류와 이 오류에 앞서는 라인들을 식별하세요.
다음을 확인해보세요:
    • 로그 파일에 따르면 무엇이 잘못되었나요?
    • cloud-init 오류가 이 인스턴스에 제공된 설정과 어떻게 관련이 있나요?
    • 이 오류와 관련된 설정 부분에 대해 문서에서는 뭐라고 설명하고 있나요? 설정 모듈이 실패했나요?
    • cloud-init이 어떤 실패 상태에 있나요?

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

cloud-init이 완료되지 않은 여러 이유가 있을 수 있습니다. 일부 이유는 cloud-init 내부에 있지만, 다른 경우에는 cloud-init이 완료되지 않는 것이 시스템의 다른 컴포넌트에서 발생한 문제나 사용자 설정의 결과일 수 있습니다.

5.1 외부 요인

5.2 내부 요인

5.3 디버깅을 시작하기 위해

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