如何在AWS EC2控制台上重新运行用户数据?

4
2个回答

1
AWS只在首次启动时运行用户数据。您需要执行以下两个步骤:
  1. 使用mime-multipart附加您的新脚本。您可以在cloud-utils中使用命令write-mime-multipart创建mime-multipart文件。如果需要更多细节,请参阅Cloud-init
  2. 使用mime-multipart将scripts-user设置为始终运行always。在/etc/cloud/cloud.cfg中,参考Always run cloud-init scripts以查看选项。
因此,您需要从提供的链接复制所有脚本,并用您自己的脚本替换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==

0

使用SSH会话完成此操作。将用户数据复制为脚本,并从CL重新运行它。

curl http://instance-data/latest/user-data > user-data.sh
chmod u+x user-data.sh
sudo ./user-data.sh

请确保在重新运行 user-data.sh 脚本时,编辑掉您不想重新运行的任何命令。


自从发布这个答案后,我又回到了这个问题,并找到了这个链接:https://serverfault.com/questions/797482/how-to-make-ec2-user-data-script-run-again-on-startup - Clarius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接