使用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
EXPERTE
gefragt vor 5 Monaten12 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen