There's a few options available with the Ruby ERB templating in Puppet, depending on how you want to control the output, these pages are a good introduction to ERB and Puppet.
Here's a few quick examples for you, based on your question.
option one: provide an array of all the component numbers required.
components = ['1','2','3']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<% @components.each { |item| -%>
LAUNCH_STRING.Component<%= item %>="Blah"
PROCESS_FOOTPRINT.Component<%= item %>-"Blah"
<% } -%>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
option two: provide the number of components required
components = 4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<% (1..@components).each { |item| -%>
LAUNCH_STRING.Component<%= item %>="Blah"
PROCESS_FOOTPRINT.Component<%= item %>-"Blah"
<% } -%>
option three: provide an array of component names, the component number is extracted by index position in the array.
components = ['blah', 'Blah', 'blaH']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<% @components.to_enum.with_index(1).each { |item, index| -%>
LAUNCH_STRING.Component<%= index %>="<%= item %>"
PROCESS_FOOTPRINT.Component<%= index %>-"<%= item %>"
<% } -%>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~