繁体   English   中英

在CloudFormation模板中运行PowerShell命令

[英]Running PowerShell commands in CloudFormation template

我有一个CloudFormation模板,该模板使用Java和Tomcat作为服务运行来启动Windows实例。 我必须在注册表中为Tomcat设置“最大内存池大小”的值。 我准备了一个PowerShell命令,它在命令行中可以正常工作。 然后,我尝试了3种不同的方式将它们作为CloudFormation模板的一部分运行,但没有一种有效。

Windows EventLog和C:\\ Program Files \\ Amazon \\ Ec2ConfigService \\ Logs中的文件都没有提供任何有关为什么它不起作用的线索。

1

"LaunchConfig" : {
    "Type" : "AWS::AutoScaling::LaunchConfiguration",
    "Properties" : {
        --- some props removed ---,
        "UserData" : {
            "Fn::Base64" : {
                "Fn::Join" : [
                    "",
                    [
                        "<powershell>\n",
                            "Set-ItemProperty -Path \"HKLM:\\Software\\Wow6432Node\\Apache Software Foundation\\Procrun 2.0\\Tomcat8\\Parameters\\Java\" -Name JvmMx -Value 5000 \n",
                            "Restart-Service Tomcat8 \n",
                        "</powershell>"
                    ]
                ]
            }
        }
    }
}

2

"LaunchConfig" : {
    "Type" : "AWS::AutoScaling::LaunchConfiguration",
    "Properties" : {
        --- some props removed ---,
        "UserData" : {
            "Fn::Base64" : {
                "Fn::Join" : [
                    "",
                    [
                        "<script>\n",
                            "PowerShell -Command \"& {Set-ItemProperty -Path 'HKLM:\\Software\\Wow6432Node\\Apache Software Foundation\\Procrun 2.0\\Tomcat8\\Parameters\\Java' -Name JvmMx -Value 5000}\" \n",
                            "PowerShell -Command \"& {Restart-Service Tomcat8}\" \n",
                        "</script>"
                    ]
                ]
            }
        }
    }
}

3

"LaunchConfig" : {
    "Type" : "AWS::AutoScaling::LaunchConfiguration",
    "Properties" : {
        --- some props removed ---,
        "UserData" : {
            "Fn::Base64" : {
                "Fn::Join" : [
                    "",
                    [
                        "<script>\n",
                            "cfn-init.exe -v -s ", {"Ref" : "AWS::StackId"}, " -r LaunchConfig --region ", {"Ref" : "AWS::Region"}, "\n",
                        "</script>"
                    ]
                ]
            }
        }
    },
    "Metadata" : {
        "AWS::CloudFormation::Init" : {
            "config" : {
                "commands" : {
                    "1-heapsize" : {
                        "command" : "PowerShell -Command \"& {Set-ItemProperty -Path 'HKLM:\\Software\\Wow6432Node\\Apache Software Foundation\\Procrun 2.0\\Tomcat8\\Parameters\\Java' -Name JvmMx -Value 5000}\""
                    },
                    "2-restart" : {
                        "command" : "PowerShell -Command \"& {Restart-Service Tomcat8}\""
                    }
                }
            }
        }
    }
}

User Data在EC2实例具有用于CFN-init和其它用户数据注入脚本启用要施加/运行。

您需要打开EC2ConfigurationService检查“启用用户数据”,停止实例并采用AMI,请使用新创建的AMI。

在此处输入图片说明

可以在Amazon Documentation Link- http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html上找到详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM