我有一些运行在AWS上的EC2实例。我能够使用AWS CLI命令获取实例详细信息并启动和停止实例。我正在寻找一种方法,使用CLI在AWS EC2实例中执行一些Linux命令。
实际上,我正在创建一个Jenkins管道,它使用AWS CLI停止和启动EC2实例。但是我还需要在EC2启动后执行一些命令。
我尝试使用aws ssm send-command
,但似乎这个命令不适合我。我尝试了下面的示例命令,得到了错误。
aws ssm send-command
--instance-ids "instance-ID"
--document-name "AWS-RunShellScript"
--comment "IP config"
--parameters commands=ifconfig
--output text
错误:
An error occurred (InvalidInstanceId) when calling the SendCommand operation: Instances [[i-xxxx]] not in a valid state for account XXXXXXXX
是否有其他方法可以使用AWS CLI执行命令?
您的EC2实例是否在系统管理器中可见?如果您的EC2实例不能与系统管理器通信,您将无法使用aws ssm send-command
。
确保您的EC2实例具有以下角色:
- AmazonSSMManagedInstanceCore">
确保您的EC2可以访问以下internet域(或VPC端点):
- 导弹。[地区].amazonaws.com
- ec2messages。[地区].amazonaws.com
- ssmmessages。[地区].amazonaws.com