我有一个正在运行特定脚本的EC2实例。该脚本具有启动EC2的命令。在脚本中,命令调用另一个脚本,该脚本在新创建的EC2中运行更多命令。
我的目标是成功运行命令以自动烘焙AMI,但是我有16个步骤可以通过第二个脚本在第二个实例中进行编码。这16条命令包括单行代码,如sudo权限和其他杂项,所涉及的命令是诸如打开和配置配置文件以及添加用户帐户以具有sudo访问权限的命令。
import boto3
def amifunc2(instance_id):
client = boto3.client('ssm', region_name = 'us-east-1')
ec2_response = client.send_command(
InstanceIds=[
instance_id
],
DocumentName='AWS-RunShellScript',
Parameters={
'commands': [
'sudo -s',
'sudo apt-get update -y',
'sudo yum update -y',
'sudo apt-get install python-pip -y',
'sudo pip install awscli',
'( instance_id=$(curl -id)',
'admin_users=( user user user )',
'for i in ${admin_users[@]}; do aws ssm send-command --document-name ',
'"arn:aws:ssm:u$',
')',
'sudo vim /.../.../.conf',
'
]
}
)
如您所见,我正在创建包裹在(
和)
中的多行代码结构。应该通过send命令将这些内容括在括号中以用于这些多行命令吗?