amazon-web-services - EC2从用户数据调用CLI

标签 amazon-web-services ssh amazon-ec2 aws-cli

启动ec2实例时,如何在user data shell脚本中使用CLI命令?

当我通过SSH进入实例时,我可以运行CLI命令,一切都会按预期进行。

我假设问题是user data是作为root执行的。当我SSH进入实例并运行CLI命令时,我是以ec2-user身份这样做的。

考虑到每次我要测试新的user data脚本时都必须启动一个实例(每次尝试都需要3分钟),所以我非常感激不必猜测和检查自己的方式。

任何帮助都是合适的。谢谢

最佳答案

  • 您新启动的实例需要有权访问您尝试使用的命令。我建议您添加IAM角色设置并将其添加到实例。这将为您节省证书等的设置。
  • 您需要在userdata脚本中安装awscli。

  • Ubuntu示例用户数据:
    #!/bin/bash -x
    
    apt-get install awscli
    I_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
    aws ec2 create-tags --resources $I_ID --tags Key=Name,Value=my-test-server --region us-east-1
    

    这将在系统上安装awscli,并使用测试名称标记自身。 (如果它有权这样做)

    了解如何添加适当的IAM roles

    关于amazon-web-services - EC2从用户数据调用CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28058219/

    相关文章:

    amazon-web-services - Cognito 标准属性网站不可搜索

    amazon-web-services - 在 CloudFormation 中跨不同 AWS 账户添加 VPC 对等路由

    ssh 远程命令不返回

    java - JProfiler,连接到防火墙后面的计算机

    ubuntu - 如何使用 ansible 获取与 ec2 实例关联的安全组 ID

    amazon-web-services - Terraform - AWS Route53 防止域删除

    amazon-web-services - AWS 中 S3 的最大 IOPS/最大吞吐量

    Python - 如何远程并行执行进程并检索其输出

    nginx - 在 Amazon 为 EC2 实例创建具有故障转移功能的 UDP 负载均衡器

    apache - 如何在不破坏或丢失 ec2 数据的情况下使用 terraform 更新 ec2