有没有一种方法可以使用client.send_command参数执行多行命令,多个脚本并操作文件?

时间:2020-07-28 19:02:57

标签: amazon-web-services amazon-ec2 boto3 amazon-ami

我有一个正在运行特定脚本的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命令将这些内容括在括号中以用于这些多行命令吗?

0 个答案:

没有答案