class RenderCFN::LaunchConfiguration
Public Class Methods
new( arguments)
click to toggle source
# File lib/renderCFN/launchConfiguration.rb, line 7 def initialize( arguments) @serviceName = arguments[:serviceName] @serviceTitle = arguments[:serviceTitle] @name = "#{arguments[:name]}LaunchConfiguration" @startServices = arguments[:startServices] @deployments = arguments[:deployments] @pmData = arguments[:pmData] @hostname = arguments[:hostname] @cfnEBSVolume = arguments[:cfnEBSVolume] @userDataOnBeforeStart = arguments[:userDataOnBeforeStart] || '' @userDataOnAfterEnd = arguments[:userDataOnAfterEnd] || '' @awsObject = { @name => { 'Type' => 'AWS::AutoScaling::LaunchConfiguration', 'Properties' => { 'ImageId' => arguments[:ami], 'InstanceType' => arguments[:instanceType], 'KeyName' => arguments[:keyName], 'InstanceMonitoring' => false, 'BlockDeviceMappings' => [], 'SecurityGroups' => [ #{'Ref' => 'AdminSecurityGroup'}, #{'Ref' => 'AppServerSecurityGroup'} ] }, 'DependsOn' => [] } } if arguments[:publicIP] @awsObject[@name]['Properties']['AssociatePublicIpAddress'] = true end end
Public Instance Methods
addBlockDevice( deviceName, volumeSize, volumeType, iops = false, snapShotID = false)
click to toggle source
# File lib/renderCFN/launchConfiguration.rb, line 46 def addBlockDevice( deviceName, volumeSize, volumeType, iops = false, snapShotID = false) ebs = Hash.new ebs['DeleteOnTermination'] = true ebs['Encrypted'] = false ebs['VolumeSize'] = volumeSize.to_s ebs['VolumeType'] = volumeType if iops ebs['Iops'] = iops end if snapShotID ebs['SnapshotId'] = snapShotID end blockDevice = Hash.new blockDevice['DeviceName'] = deviceName blockDevice['Ebs'] = ebs @awsObject[@name]['Properties']['BlockDeviceMappings'].push( blockDevice) end
addInstanceProfile( name)
click to toggle source
# File lib/renderCFN/launchConfiguration.rb, line 68 def addInstanceProfile( name) @awsObject[@name]['Properties']['IamInstanceProfile'] = { 'Ref' => name } @awsObject[@name]['DependsOn'].push( name) end
addSecGroup( name)
click to toggle source
# File lib/renderCFN/launchConfiguration.rb, line 42 def addSecGroup( name) @awsObject[@name]['Properties']['SecurityGroups'].push( name) end
userData( file, common)
click to toggle source
# File lib/renderCFN/launchConfiguration.rb, line 73 def userData( file, common) erbUserData = String.new if File.exist?( "#{common}/UserData-start") erbUserData = File.read( "#{common}/UserData-start") end if File.exist?( file) erbUserData += File.read( file) end if File.exist?( "#{common}/UserData-end") erbUserData += File.read( "#{common}/UserData-end") end userData = ERB.new( erbUserData) @awsObject[@name]['Properties']['UserData'] = Base64.encode64(userData.result(binding)) end