使用CDK时EC2上的用户数据无法工作

0

【以下的问题经过翻译处理】 你们好,

我使用CDK创建了一个ec2实例并在其中添加了用户数据:

   const userData = readFileSync("lib/my-script.sh", "utf8");
    instance.addUserData(userData);
    instance.applyRemovalPolicy(RemovalPolicy.DESTROY);

my-script.sh :

#! /bin/bash
sudo su
yum -y update
# 将MYSQL客户端添加到连接到RDS(MYSQL)实例中。
sudo yum install mysql

但是,当我通过会话管理器选项卡连接到我的ec2实例并运行MySQL命令时,出现以下错误:

sh: mysql: command not found

看起来用户数据脚本未运行。

有什么做错的吗?如何知道用户数据脚本是否成功在ec2实例上运行?

/var/log/cloud-init-output.log中找到以下内容:

Sep 15 00:17:50 cloud-init[xxxx]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]
Sep 15 00:17:50 cloud-init[xxxx]: cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Sep 15 00:17:50 cloud-init[xxxx]: util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/site-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
ci-info: no authorized ssh keys fingerprints found for user ec2-user.

谢谢!

profile picture
专家
已提问 1 年前25 查看次数
1 回答
0

【以下的回答经过翻译处理】 根据此答案,从脚本中删除“sudo”,因为用户数据脚本是以root用户身份运行的:

https://stackoverflow.com/questions/67740072/user-data-not-running-command-in-mysql

https://stackoverflow.com/questions/41603517/installing-mysql-client-on-ec2-via-cloudformation

还注意到,即使脚本中已经存在,EC2也会在脚本顶部添加“#!/bin/bash”

我的最终脚本:

yum -y update
# 添加MYSQL客户端以连接到RDS(MYSQL)实例。
yum -y install mysql
profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则