[openstack-dev] [puppet] - No way to pass extra variables from a heat template to a puppet manifest

James Slagle james.slagle at gmail.com
Tue Sep 19 13:12:15 UTC 2017


On Tue, Sep 19, 2017 at 6:32 AM, Roquesalane, Jean-Pierre <
Jeanpierre.Roquesalane at dell.com> wrote:

> Dear fellow stackers,
>
>
>
> I’m currently trying to run a manifest from within a heat template. This
> manifest test the hostname and  depending on the value will do different
> things. I need  to pass some extra variables that are set in an
> environment  file to the manifest, and It failed so far. I’m driving nuts
> at this moment and even though all of the things I found on google, there
> is no way to get it work.
>
> RHOSP 10 is driving my overcloud.
>
>
>
> Any help would be much appreciated.
>
>
>
> Below are the files I’m using.
>
>
>
> ·        Heat Template
>
>
>
> heat_template_version: 2016-10-14
>
>
>
> description: >
>
>   NFV Feature Hugepages configured by Puppet for computeNfv role.
>
>
>
> parameters:
>
>   servers:
>
>     type: json
>
>   HugePageSize:
>
>     type: string
>
>   HugePageCount:
>
>     type: string
>
>
>
> resources:
>
>
>
>   NovaComputeExtraConfig:
>
>     type: OS::Heat::SoftwareConfig
>
>     properties:
>
>       group: puppet
>
>       inputs:
>
>       - name: HugePageSize
>
>       - name: HugePageCount
>
>       config:
>
>         get_file: ../manifests/hugepages.pp
>
>       options:
>
>         enable_hiera: True
>
>         enable_facter: False
>
>
>
>
>
>   ExtraPuppetDeployment:
>
>     type: OS::Heat::SoftwareDeployments
>
>     properties:
>
>       servers: {get_param: servers}
>
>       config: {get_resource: NovaComputeExtraConfig}
>
>       input_values:
>
>         HugePageSize: {get_param: HugePageSize}
>
>         HugePageCount: {get_param: HugePageCount}
>
>       actions: ['CREATE','UPDATE']
>
>
>
> ·        Puppet manifest
>
> if $hostname =~ /compute-nfv/ {
>
>   file { '/tmp/test_puppet':
>
>     ensure => 'file',
>
>     content  => "This is an NFV node!!! Setting ${HugePageCount} pages of
> ${HugePageSize} each",
>
>     owner => 'root',
>
>     group => 'root',
>
>     mode => 0777,
>
>   }
>
> } else {
>
>   file { '/tmp/test_puppet':
>
>     ensure => 'file',
>
>     content  => 'This is not an NFV node... Nothing to set',
>
>     owner => 'root',
>
>     group => 'root',
>
>     mode => 0777,
>
>   }
>
> }
>
>
>
> ·        Environment  file
>
> resource_registry:
>
>   OS::TripleO::NodeExtraConfigPost: puppet/services/hugepages.yaml
>
> parameter_defaults:
>
>   OvercloudComputeNfvFlavor: baremetal
>
>   ComputeNfvCount: 3
>
>   HugePageSize: 2048
>
>   HugePageCount: 4
>
>
>

​Since you're setting use_hiera:True in the config, there should be a
hieradata file created for the config under /etc/puppet/hieradata on the
node(s) associated with the deployment.

That hiera file should automatically be included whenever you run puppet
due to the ​FACTER_deploy_config_name fact, and the templated use of
deploy_config_name in the hierarchy configured in /etc/puppet/hiera.yaml.

I'd start by checking all that to see if it got configured correctly. You
should be able to see the full puppet command run by the agent in the
os-collect-config log output on each node, and that may help you
troubleshoot as you can copy/paste the command and rerun it.

Also, you may just try setting use_facter:True in the config and see if
that fixes it as well.

-- 
-- James Slagle
--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170919/0c6c78db/attachment.html>


More information about the OpenStack-dev mailing list