EC2 인스턴스 부팅 후 bash 스크립트 실행


19

EC2 인스턴스에 다른 인스턴스를 원격으로 시작하는 스크립트가 있습니다.

이 인스턴스가 완전히로드되면 (완료된 부팅) bash 스크립트를 자동으로 실행하고 싶습니다.이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

기본적으로 bash 스크립트는 이미지 변환 스크립트를 실행합니다 (ImageMagick을 사용하고 "wget"명령을 몇 번 실행 함).

현재 스크립트는 다음 위치에 있습니다.

/home/root/beginProcess.sh

그리고 나는 그것을 실행하여 수동으로 시작할 수 있습니다

bash beginProcess.sh

RHEL-6.2- 스타터 -EBS-i386

또한 EBS 볼륨이 첨부되어 있습니다. 도움이된다면 감사합니다!

답변:


26

user-data 옵션을 사용하는 것이 좋습니다 ec2-run-instances. 처음 부팅시 실행될 VM에 일종의 스크립트를 제공 할 수 있습니다. 우분투 또는 데비안을 사용하는 경우 cloud-init을 사용 하여 프로세스를 멋지게 꾸밀 수 있습니다. cloud-init를 사용하는 [runcmd]경우 구성 파일 섹션을 사용하여 부팅 후 실행할 임의의 명령을 지정할 수 있습니다.

사용자 데이터 페이지를위한 SF 사용자 Eric Hammond 에게 감사합니다 . 그의 사이트를 확인하십시오 -AWS에 대한 풍부한 정보가 있습니다.

편집 : 다시 읽은 후에는 초기 부팅 또는 매 부팅마다 명령을 실행할 것인지 명확하지 않습니다. 위의 지침은 초기 부팅에만 적용됩니다. 모든 부팅에서 명령을 실행하려면 몇 가지 옵션이 있습니다. @rebootcron 지시문을 통해 명령을 실행 하거나 /etc/rc.local시스템을 부팅 할 때마다 실행되는 스크립트를에 추가 할 수 있습니다 .


1
응답 해 주셔서 감사합니다. 시스템을 부팅 할 때마다 실행하고 싶었습니다. /etc/rc.local훌륭하게 작동합니다.
SSH This

9

cloud-initAmazon Linux 또는 Ubuntu와 같은 패키지가 설치된 AMI를 사용하는 경우 bash 스크립트 (#!로 시작)를 사용자 데이터 파일로 전달하면 자동으로 종료됩니다. 부팅 과정.

예를 들어 다음과 같이 간단 할 수 있습니다.

ec2-run-instances                             \
  --user-data-file /home/root/beginProcess.sh \
  --key $USER                                 \
  ami-XXXXXXXX

다음은 Amazon Linux 및 Ubuntu와 같은 주요 EC2 AMI에서 사용할 수있는 사용자 데이터 스크립트 개념을 소개 한 기사입니다. http://alestic.com/2009/06/ec2-user-data-scripts

불행히도 RHEL AMI를 사용하려는 것 같습니다. 나는 그것의 사본을 실행했고 처음 부팅 할 때 cloud-init 또는 사용자 데이터 스크립트 실행에 대한 참조를 찾을 수 없었으며 동일한 작업을 테스트하지 않았습니다.

나는 이것을 위해 Linux 배포판을 전환해야한다고 말하지는 않지만 Amazon Linux는 RHEL을 기반으로하므로 효과가 있습니다.

다음은 내가 처음으로 작동하지 않는 경우 사용자 데이터 스크립트를 디버깅하는 데 도움이 될 수있는 기사입니다. http://alestic.com/2010/12/ec2-user-data-output


토픽이지만, 그런 귀중한 것도 만들어 주셔서 감사합니다. 세 건배.
danieljimenez
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.