【问题标题】:Launch Configuration Userdata shell scripts doesn't run from Cloudformation启动配置用户数据 shell 脚本不会从 Cloudformation 运行
【发布时间】:2016-05-09 22:22:08
【问题描述】:

我正在尝试从 AWS Cloudformation 模板中启动配置的用户数据运行 shell 脚本。我创建了 AMI,里面有一些脚本。

这是来自 LaunchConfiguration 的 Cloudformation 模板的示例:

 "ProcessLC": {
        "Type" : "AWS::AutoScaling::LaunchConfiguration",
        "Properties" : {
            "ImageId": {"Ref" : "GeneralAMI"},
            "InstanceType" : "t2.medium",
            "SecurityGroups" : [{"Ref": "SecurityGroup"}],
            "KeyName" : {"Ref": "KeyPair"},
            "UserData": {"Fn::Base64": {"Fn::Join": ["", [
              {"Fn::Join": ["", ["Env=",{"Ref": "Env"}," \n"]]},
              {"Fn::Join": ["", ["DBConn=", {"Ref": "Database"}," \n"]]},
              {"Fn::Join": ["", ["DBEngine=", {"Ref": "Metabase"}," \n"]]},
              "#!/bin/bash\n",
              "cd /project/\n",
              "./stop.sh\n",
              "./vpcAssignIP.sh\n"
              ]
            ]
          }
        } 
      }
    }

当我创建堆栈时,它没有运行(正如我在日志“/var/log/cloud-init.log”中看到的那样)。 我做错了什么?

谢谢!

【问题讨论】:

    标签: shell amazon-web-services amazon-cloudformation aws-ec2


    【解决方案1】:

    将此行放在顶部,而不是再往下: “#!/bin/bash\n”。该行告诉它将整个脚本作为 bash 命令处理。它必须是第一行。 (所以,在你的加入中,如果你把它放在“”而不是加入之后,你应该是好的。)

    编辑: 有了你的加入,这应该可以工作:

    "UserData": {"Fn::Base64": {"Fn::Join": ["", [
                  "#!/bin/bash\n",
                  {"Fn::Join": ["", ["Env=",{"Ref": "Env"}," \n"]]},
                  {"Fn::Join": ["", ["DBConn=", {"Ref": "Database"}," \n"]]},
                  {"Fn::Join": ["", ["DBEngine=", {"Ref": "Metabase"}," \n"]]},
                  "cd /project/\n",
                  "./stop.sh\n",
                  "./vpcAssignIP.sh\n"
                  ]
    

    【讨论】:

    • 所以如果 "fn::join" 将在 bash 脚本之后,它们将不起作用,不是吗?
    • 你必须让你的连接输出 "#!/bin/bash\n" 作为第一行。目前,您的联接将该行输出为第 4 行。查看我对代码 sn-p 的编辑。
    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多