cloud-init를 사용하여 init 스크립트에서 사용되는 애플리케이션 속성 수정

cloud-init를 사용하여 init 스크립트에서 사용되는 애플리케이션 속성 수정

예전에 물어봤는데이것초기화 스크립트의 순서에 관해. 알고 보니 이것은 내가 필요로 했던 해결책이 아니었고 아마도 올바른 질문도 아니었을 것입니다. 그것은 환상의 성공이었습니다.

내 시스템은 시작 서비스로 upstart(init) 0.6.5를 실행하는 AWS EC2 인스턴스입니다.

내 목표는 시작 시 인스턴스 ID를 사용하여 시작 중에 시작될 다른 애플리케이션을 구성하는 AMI를 생성하는 것입니다. 이것이 내가 원하는 일입니다:

  1. AMI에서 새 인스턴스를 시작하고 스크립트를 UserData로 제공합니다.
  2. UserData 스크립트는 새 서버의 인스턴스 ID를 확인하고 해당 인스턴스 ID를 사용하여 다른 응용 프로그램의 여러 구성 파일을 수정합니다. 실제로는 이를 식별자로 사용하고 있으며 특별한 것은 없습니다.
  3. cloud-init 프로세스에서 UserData를 실행하고 구성 파일을 수정하면 내 애플리케이션 중 하나가 시작됩니다.
  4. 첫 번째 애플리케이션이 시작되면 여러 애플리케이션(첫 번째 애플리케이션에 따라 다름)이 시작됩니다.

초기화 파일의 관련 시작 순서는 다음과 같습니다.

  • S50cloud-init-local
  • S51cloud-init
  • S52 클라우드 구성
  • 먼저 시작해야 하는 S80my-app-먼저 시작해야 하는 S80my-app
  • 첫 번째 적용 후 S81 응용 프로그램 실행
  • S81 첫 번째 애플리케이션 이후에 또 다른 애플리케이션 실행
  • S98cloud-최종 버전

일부 로깅을 통해 최근 내 UserData 함수가 S98cloud-final까지 실행되지 않는 것 같다는 사실을 알게 되었습니다(이전에는 S51cloud-init에서 수행된 것으로 생각했습니다). 부팅 순서에서 cloud-final을 더 일찍 이동하는 것은 현명하지 않다고 생각합니다.

할 수 있다cloud-init 프로세스를 통해 모든 애플리케이션을 다운로드하고 구성하지만 그렇게 하고 싶지는 않습니다. 미리 로드된 AMI(이미 init에 구성되어 있는 모든 애플리케이션이 포함되어 있음)를 원합니다.

S99local에 응용 프로그램 시작을 두는 것을 고려했지만 독립적으로 시작/종료할 수 있어야 하는 응용 프로그램이므로 이후 다시 시작하려면 init 스크립트가 필요합니다.

이에 대한 모범 사례나 좋은 제안은 무엇입니까?

관련 정보