Ubuntu: Could not enable service cfn-hup
I figure it out what's wrong with my code. Its the cfn-hup
service. It don't start after the installation. See the changes on user's data. Below is the updated code.
"LaunchConfig" : {
"Type" : "AWS::AutoScaling::LaunchConfiguration",
"Metadata" : {
"Comment" : "Install a simple application",
"AWS::CloudFormation::Init" : {
"config" : {
"files" : {
"/etc/cfn/cfn-hup.conf" : {
"content" : { "Fn::Join" : ["", [
"[main]\n",
"stack=", { "Ref" : "AWS::StackId" }, "\n",
"region=", { "Ref" : "AWS::Region" }, "\n"
]]},
"mode" : "000400",
"owner" : "root",
"group" : "root"
},
"/etc/cfn/hooks.d/cfn-auto-reloader.conf" : {
"content": { "Fn::Join" : ["", [
"[cfn-auto-reloader-hook]\n",
"triggers=post.update\n",
"path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n",
"action=/usr/local/bin/cfn-init -v ",
" --stack ", { "Ref" : "AWS::StackName" },
" --resource LaunchConfig ",
" --region ", { "Ref" : "AWS::Region" }, "\n",
"runas=root\n"
]]}
}
},
"services" : {
"sysvinit" : {
"cfn-hup" : { "enabled" : "true", "ensureRunning" : "true",
"files" : ["/etc/cfn/cfn-hup.conf", "/etc/cfn/hooks.d/cfn-auto-reloader.conf"]}
}
}
}
}
},
"Properties" : {
"AssociatePublicIpAddress" : "true",
"ImageId" : { "Ref" : "AmiId" },
"SecurityGroups" : [ { "Ref" : "LoadBalancerSecurityGroup" } ],
"KeyName" : { "Ref" : "KeyName" },
"InstanceType" : { "Ref" : "InstanceType" },
"IamInstanceProfile": {"Ref" :"RoleName"},
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash \n",
"easy_install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz\n",
"sudo ln /usr/local/bin/cfn-hup /etc/init.d/ \n",
"sudo initctl reload-configuration \n",
"sudo chmod 700 /etc/init.d/cfn-hup \n",
"sudo chown root:root /etc/init.d/cfn-hup \n",
"sudo update-rc.d cfn-hup defaults \n",
"sudo update-rc.d cfn-hup enable \n",
"/usr/local/bin/cfn-init -v ",
" --stack ", { "Ref" : "AWS::StackName" },
" --resource LaunchConfig ",
" --region ", { "Ref" : "AWS::Region" }, "\n",
"/usr/local/bin/cfn-signal -e $? ",
" --stack ", { "Ref" : "AWS::StackName" },
" --resource WebServerGroup ",
" --region ", { "Ref" : "AWS::Region" }, "\n",
"sed -i'' -e 's/.*requiretty.*//' /etc/sudoers", "\n",
"pip install --upgrade awscli", "\n",
"INSTANCE_ID=$(aws opsworks register ",
" --use-instance-profile ",
" --infrastructure-class ec2 ",
" --region ", { "Ref" : "AWS::Region" },
" --stack-id ", { "Ref" : "OpsWorksStackId" },
" --override-hostname $(tr -cd 'a-z' < /dev/urandom |head -c8) --local 2>&1 |grep -o 'Instance ID: .*' |cut -d' ' -f3)", "\n",
"aws opsworks wait instance-registered ",
" --region ", { "Ref" : "AWS::Region" },
" --instance-id $INSTANCE_ID", "\n",
"aws opsworks assign-instance ",
" --region ", { "Ref" : "AWS::Region" },
" --instance-id $INSTANCE_ID ",
" --layer-ids ", { "Ref": "OpsWorksLayerId" }, "\n"
]]}}
}
}