【问题标题】:How can I prevent AWS cloudinit to execute the userdata if they contain a bash script如果 AWS cloudinit 包含 bash 脚本,如何阻止它们执行用户数据
【发布时间】:2014-07-15 11:37:56
【问题描述】:

我正在尝试将我的软件打包到 AWS AMI 中。

我想在我的 AMI 中禁用执行用户数据的逻辑,如果它检测到它包含 bash 脚本,而不禁用整个用户数据系统(我通过元数据 URL (169.254.169.254) 访问用户数据) .

我的 AMI 基于使用 cloud-init 0.7.2-7.20Amazon Linux AMI x86_64 PV EBS (ami-5256b825)。

我已经尝试在/etc/cloud/cloud.cfg.d/defaults.cfg 中注释以下行,但 AWS AMI 创建过程似乎用默认值覆盖了这个文件。

 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user

注意:在旧的 AWS AMI(例如 ami-5256b825)上,我一直使用以下 sed 命令执行此操作:

sed -i 's/once-per-instance/never/g' /etc/init.d/cloud-init-user-scripts

【问题讨论】:

  • “如果它们是脚本”?
  • 我重写了它。事实上,如果用户数据包含 bash 脚本,我不想执行它们。

标签: amazon-web-services cloud-init


【解决方案1】:

您可以在运行之前创建 cloud-init 锁定文件(例如“/var/lib/cloud/sem/user-scripts.i-7f3f1d11”)。由于 cloud-init 最后运行并检查是否缺少此锁定文件来运行用户数据,因此用户数据不会运行。您可以将其设置为以“#!/bin/bash”开头的用户数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-19
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2018-04-24
    • 1970-01-01
    • 2018-02-24
    相关资源
    最近更新 更多