userdata可以用来初始化系统,例如安装更新,安装特定软件等,甚至部署项目。
在使用userdata时,注意以下几点:
脚本一定要以#! /bin/bash
开头,否则不会运行!
user data默认运行就在sudo权限,所以命令前面不用加sudo
user data默认是在根目录下运行,例如运行echo 123>>hello.txt
,那么hello.txt生成在根目录下面
在运行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
, 能够查看到每个命令的执行输出: