EC2 user data

userdata可以用来初始化系统,例如安装更新,安装特定软件等,甚至部署项目。

在使用userdata时,注意以下几点:

  1. 脚本一定要以#! /bin/bash开头,否则不会运行!

  2. user data默认运行就在sudo权限,所以命令前面不用加sudo

  3. user data默认是在根目录下运行,例如运行echo 123>>hello.txt,那么hello.txt生成在根目录下面

user-data日志

在运行userdata后,所有的日志都保存到EC2的/var/log/cloud-init-output.log中。这个日志可以帮助调试userdata的执行结果,如果userdata有非预期结果,通过查看日志可以定位出原因

例如在启动时,以下脚本自动安装docker并启动nginx:

#! /bin/bash

yum update -y
yum install docker -y
service docker start 
docker pull nginx
docker run -itd -p 80:80 --name nginx nginx

登录到EC2上,查看/var/log/cloud-init-output.log, 能够查看到每个命令的执行输出:

image-20221008192558176