【问题标题】:Not able to run command in Userdata with cloud-formation无法在具有云形成的用户数据中运行命令
【发布时间】:2020-11-12 19:26:17
【问题描述】:
"AppLaunchConfig": {
            "Type": "AWS::AutoScaling::LaunchConfiguration",
            "Properties": {
                "AssociatePublicIpAddress": true,
                "EbsOptimized": false,
                "ImageId": {
                    "Ref": "amiID"
                },
                "InstanceType": "t3.small",
                "UserData"       : { "Fn::Base64" : { "Fn::Join" : ["", [
                    "#!/bin/bash -xe\n",
                   "har-extractor /home/ubuntu/work/git.codavel.com.har --output /home/ubuntu/extract/\n"
                     ]]
                   }
                },
                "SecurityGroups": [
                    {
                        "Ref": "InstanceSecGroup"
                    }
                ],
            }
            },

您好团队, 这是我用于自动缩放的云形成模板,它工作正常,但问题是我在 Userdata 中运行了一个不起作用的命令。我已经尝试了所有可能的事情,但根本没有工作。如果我手动运行此命令,则此命令有效。 所以请帮助我解决这个问题。我在 Ubuntu 机器上运行这个命令。

【问题讨论】:

  • CloudFormation 有什么问题或无法运行?

标签: amazon-web-services amazon-ec2 amazon-cloudformation devops aws-cloudformation-custom-resource


【解决方案1】:

您可以通过查看包含output for your Linux Userdata commands/var/log/cloud-init-output.log 文件来调试它。

如果这不能提供任何有用的调试,则下一个必要步骤是尝试以 root 的身份运行命令,该命令完全模仿了功能执行的内容。

【讨论】:

  • 为此我需要通过 SSH 连接到由该模板创建的服务器,对吧?
  • 是的,你需要这样做
  • Amazon S3 是对象存储系统,而不是文件系统。不建议使用s3fs之类的工具在电脑上挂载S3,尤其是生产使用。如果您希望在多个 Amazon EC2 实例之间共享一个文件系统,您可以使用 Amazon Elastic File System (Amazon EFS)。
  • 是的,我已经解决了在用户数据中传递值的问题
  • 好的,很好,很高兴这个问题得到解决,看看未来使用 EFS over S3 在主机之间共享文件存储:)
猜你喜欢
  • 2020-04-08
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2017-09-04
  • 2015-05-14
相关资源
最近更新 更多