如何从控制台重新运行aws ec2上的用户数据?

时间:2017-09-16 16:40:15

标签: amazon-web-services amazon-ec2 user-data cloud-init

我想问一下是否有办法在已启动的实例上重新执行用户数据。 我想重新启动服务并编辑〜。/ ssh / autorized_keys。

我在https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/找到了相关信息 但是来自控制台的云日志没有显示任何变化。

1 个答案:

答案 0 :(得分:1)

AWS仅在首次启动时运行用户数据。您需要做以下两件事:

  1. 使用mime-multipart附加新脚本。您可以在write-mime-multipart中使用命令cloud-utils来创建mime-multipart文件。如果您需要更多详细信息,请参阅Cloud-init
  2. 使用mime-multipart设置scripts-user运行always。在/etc/cloud/cloud.cfg中,请参阅Always run cloud-init scripts以查看选项
  3. 因此,您需要从您提供的链接中复制所有脚本,并将shell脚本部分替换为您的脚本。 https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/

    Content-Type: multipart/mixed; boundary="===============5940869395195845375=="
    MIME-Version: 1.0
    
    --===============5940869395195845375==
    Content-Type: text/cloud-config; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="cloud-config.txt"
    
    #cloud-config
    cloud_final_modules:
    - [scripts-user, always]
    
    --===============5940869395195845375==
    Content-Type: text/x-shellscript; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="userdata.txt"
    
    #!/bin/bash
    /bin/echo "Hello World." >> /tmp/abcde
    --===============5940869395195845375==