[PYTHON] Boto ec2 인스턴스에서 셸 명령을 실행합니다.
PYTHONBoto ec2 인스턴스에서 셸 명령을 실행합니다.
나는 EC2와 boto에 초보자이다. 인스턴스를 실행하는 EC2가 있고 예를 들어 쉘 명령을 실행하고 싶습니다. apt-boto를 통해 업데이트하십시오.
run_instances 명령에서 user_data를 사용하여 솔루션을 많이 찾았습니다.하지만 인스턴스가 이미 시작된 경우에는 어떻게해야합니까?
나는 그것이 가능한지조차 모른다. 이 참조에 대한 단서는 큰 도움이 될 것입니다.
해결법
-
==============================
1.boto.manage.cmdshell 모듈을 사용하여이를 수행 할 수 있습니다. 이를 사용하려면 paramiko 패키지가 설치되어 있어야합니다. 간단한 사용 예 :
boto.manage.cmdshell 모듈을 사용하여이를 수행 할 수 있습니다. 이를 사용하려면 paramiko 패키지가 설치되어 있어야합니다. 간단한 사용 예 :
import boto.ec2 from boto.manage.cmdshell import sshclient_from_instance # Connect to your region of choice conn = boto.ec2.connect_to_region('us-west-2') # Find the instance object related to my instanceId instance = conn.get_all_instances(['i-12345678'])[0].instances[0] # Create an SSH client for our instance # key_path is the path to the SSH private key associated with instance # user_name is the user to login as on the instance (e.g. ubuntu, ec2-user, etc.) ssh_client = sshclient_from_instance(instance, '<path to SSH keyfile>', user_name='ec2-user') # Run the command. Returns a tuple consisting of: # The integer status of the command # A string containing the output of the command # A string containing the stderr output of the command status, stdout, stderr = ssh_client.run('ls -al')
그것은 기억에서 타자를 친다 그러나 나는 그것이 정확하다고 생각한다.
유사한 기능을 가진 Fabric (http://docs.fabfile.org/)을 체크 아웃 할 수도 있지만 훨씬 더 정교한 기능과 기능이 있습니다.
-
==============================
2.나는 당신이 당신의 필요 조건을 위해 직물을 사용할 수 있다고 생각한다. 패브릭 래퍼를 한 번 확인하십시오. 패브릭 라이브러리를 통해 원격 서버 셸에서 명령을 실행할 수 있습니다.
나는 당신이 당신의 필요 조건을 위해 직물을 사용할 수 있다고 생각한다. 패브릭 래퍼를 한 번 확인하십시오. 패브릭 라이브러리를 통해 원격 서버 셸에서 명령을 실행할 수 있습니다.
그것은 매우 사용하기 쉽고 boto와 fabric을 모두 통합 할 수 있습니다. 함께 그들은 훌륭하게 작동합니다.
또한 n 개의 노드에 동일한 명령을 실행할 수 있습니다. 내가 믿는 것은 당신의 요구 사항 일 수 있습니다.
그냥 확인해 봐.
-
==============================
3.예, AWS 시스템 관리자와 함께이 작업을 수행 할 수 있습니다. AWS Systems Manager Run Command를 사용하면 EC2 및 온 프레미스 서버에서 일련의 명령을 원격으로 안전하게 실행할 수 있습니다. 아래는이를 달성하기위한 고급 단계입니다.
예, AWS 시스템 관리자와 함께이 작업을 수행 할 수 있습니다. AWS Systems Manager Run Command를 사용하면 EC2 및 온 프레미스 서버에서 일련의 명령을 원격으로 안전하게 실행할 수 있습니다. 아래는이를 달성하기위한 고급 단계입니다.
인스턴스 IAM 역할 부착 : ec2 인스턴스에는 정책 AmazonSSMFullAccess가있는 IAM 역할이 있어야합니다. 이 역할은 인스턴스가 Systems Manager API와 통신 할 수있게합니다.
SSM 에이전트 설치 : EC2 인스턴스에는 SSM 에이전트가 설치되어 있어야합니다. SSM 에이전트는 실행 명령을 처리하고 명령별로 인스턴스를 요청 및 구성합니다.
명령 실행 : AWS CLI를 통한 예제 사용 :
다음 명령을 실행하여 인스턴스에서 실행중인 서비스를 검색합니다. 인스턴스 ID를 ec2 인스턴스 ID로 바꿉니다.
aws ssm send-command --document-name "AWS-RunShellScript" --comment "listing services" --instance-ids "Instance-ID" --parameters commands="service --status-all" --region us-west-2 --output text
자세한 정보 : https://www.justdocloud.com/2018/04/01/run-commands-remotely-ec2-instances/
from https://stackoverflow.com/questions/15501845/boto-execute-shell-command-on-ec2-instance by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Keras : 모델을 저장하고 교육을 계속하는 방법은 무엇입니까? (0) | 2018.10.28 |
---|---|
[PYTHON] 가로 세로 비율을 유지하면서 크기를 조정하고 세로 및 가로 이미지를 정확히 동일한 크기로 만드시겠습니까? (0) | 2018.10.28 |
[PYTHON] PNG 최적화 도구 (0) | 2018.10.28 |
[PYTHON] AWS 탄두에 구조화 된 Flask 앱을 배치하는 방법 (0) | 2018.10.28 |
[PYTHON] wxPython WebView 예제 (0) | 2018.10.28 |