用于创建现有启动模板版本的 AWS CLI 命令

问题描述 投票:0回答:1

我一直在尝试使用 aws cli 命令创建现有启动模板的版本并将命令附加到用户数据。经过我所有的研究,我无法做到这一点。

请注意,我拥有执行此操作所需的 IAM 权限。

请您的贡献将受到高度赞赏。

amazon-web-services amazon-ec2 autoscaling launch-template
1个回答
0
投票

要实现创建现有启动模板的版本并使用 AWS CLI 将命令附加到用户数据的目标,您将执行一系列步骤。该过程包括检索当前启动模板数据、修改用户数据,然后使用更新的用户数据创建新的启动模板版本。

以下是完成此操作的分步指南:

  1. 检索当前启动模板数据:首先,您需要获取现有的启动模板数据。您可以使用

    aws ec2 describe-launch-template-versions
    命令来指定启动模板 ID 或名称来执行此操作。此命令返回有关启动模板版本的信息,包括用户数据。

    aws ec2 describe-launch-template-versions --launch-template-id <template-id> --versions <version-number>
    

    <template-id>
    替换为您的启动模板 ID,将
    <version-number>
    替换为您想要作为新版本基础的特定版本,或者使用
    $Latest
    $Default
    ,或省略
    --versions
    参数来获取最新版本。

  2. 解码并修改用户数据:启动模板中的用户数据是base64编码的。您需要对其进行解码,附加附加命令,然后将其重新编码回 Base64。您可以使用

    base64
    等命令行工具进行编码和解码。

    例如,在类 Unix 环境中解码、修改和重新编码:

    echo "<existing-base64-userdata>" | base64 --decode > userdata.txt
    # Append your commands to the userdata.txt file
    echo "<your-command>" >> userdata.txt
    # Re-encode the userdata
    NEW_USERDATA=$(cat userdata.txt | base64 | tr -d '\n')
    

    <existing-base64-userdata>
    替换为您当前的 Base64 编码用户数据,将
    <your-command>
    替换为您要附加的命令。

  3. 使用更新的用户数据创建新的启动模板版本:修改用户数据后,您可以使用

    aws ec2 create-launch-template-version
    命令使用更新的用户数据创建新版本的启动模板。

    aws ec2 create-launch-template-version --launch-template-id <template-id> --version-description "New version with updated userdata" --launch-template-data '{"UserData":"<new-base64-encoded-userdata>"}'
    

    <template-id>
    替换为您的启动模板 ID,将
    <new-base64-encoded-userdata>
    替换为新的 Base64 编码的用户数据。

这些步骤概述了使用 AWS CLI 将命令附加到 AWS EC2 启动模板版本的用户数据的基本过程。确保您已安装必要的工具(例如 AWS CLI 和 base64 实用程序)并配置了执行这些命令的适当权限。

© www.soinside.com 2019 - 2024. All rights reserved.