Hi Peter,

It all depends wher you use variables.

In manifests, it is best practice to scope facts @ top scope (::), if you really want to use the fact

you can do something like this :
ipaddress => 192.168.10.0 (the fact)

class { 'x':

  $ipaddress = '10.0.0.0'

  notify { "fact = ${::ipaddress}, local is ${ipaddress} }

}

If you always scope your facts, you are sure that you use the fact variable.

And it is true that you don't use the scoping in the hiera.yaml file for facts. I didn't noticed it

Glad it works now.




On 01/10/2014 12:32 PM, Peter wrote:
Hi Johan,

Thanks for the suggestion, unfortunately it did not work.

It seems that using a scope file (http://docs.puppetlabs.com/hiera/1/command_line.html#json-and-yaml-scopes) doesn't load the facts into the global scope. Could this be a hiera command line bug?

If I change the hiera.yaml hierarchy from "node/%{::fqdn}" to "node/%{fqdn}" it works.

Reading http://docs.puppetlabs.com/learning/variables.html#aside-why-do-everyones-manifests-seem-to-use-ipaddress seems to suggest that you don't need to use :: for facts.

Am I missing something?

Peter.


On Friday, 10 January 2014 03:19:23 UTC+11, Johan De Wit wrote:

    Hi,
    Could it be something stupid like
    ---
      fqdn: puppet.koewacht.net <http://puppet.koewacht.net>

    in your facts.yaml ?

    I generated my facts.yaml from facter -y

    Grts

    Jo

    On 01/09/2014 12:29 PM, Peter wrote:
    Hi List,

    I am experimenting with different hiera hierarchy's through the
    hiera command line.  I am passing in different facts to simulate
    different nodes.  In the beginning I would manually pass them in
    as parameters on the command line after a while when I wanted to
    pass in more and more facts I decided to use the YAML scope file
    option.

    This does not seem to work when I use the :: notation in the
    hieral.yaml under the hierarchy.  I have simplified my hierarchy
    to demonstrate the issue.  The relevant files look like:

    **********************************************
    $ ls -R
    .:
    facts.yaml  hiera.yaml  hieradata

    ./hieradata:
    common.yaml  node

    ./hieradata/node:
    creator.mgnt.local.yaml

    **********************************************
    $ cat hiera.yaml
    ---
    :backends:
      - yaml
    :yaml:
      :datadir: ./hieradata
    :hierarchy:
      - "node/%{::fqdn}"
      - common

    **********************************************
    $ cat hieradata/common.yaml
    ---
    ip: '192.168.0.1'


    **********************************************
    $ cat hieradata/node/creator.mgnt.local.yaml
    ---
    ip: '10.0.0.1'

    **********************************************
    $ cat facts.yaml
    ---
      fqdn: "creator.mgnt.local"

    If I manually pass the facts on the command line it works

    $ hiera -c hiera.yaml ip ::fqdn=creator.mgnt.local -d
    DEBUG: 2014-01-09 22:19:48 +1100: Hiera YAML backend starting
    DEBUG: 2014-01-09 22:19:48 +1100: Looking up ip in YAML backend
    DEBUG: 2014-01-09 22:19:48 +1100: Looking for data source
    node/creator.mgnt.local
    DEBUG: 2014-01-09 22:19:48 +1100: Found ip in node/creator.mgnt.local
    10.0.0.1


    However if I use a file which contains the facts it doesn't work

    $ hiera -c hiera.yaml ip -y facts.yaml -d
    DEBUG: 2014-01-09 22:26:31 +1100: Hiera YAML backend starting
    DEBUG: 2014-01-09 22:26:31 +1100: Looking up ip in YAML backend
    DEBUG: 2014-01-09 22:26:31 +1100: Looking for data source common
    DEBUG: 2014-01-09 22:26:31 +1100: Found ip in common
    192.168.0.1

    In the facts file I have have tried it also declaring it like
    "::fqdn" but that also does not work.  Is there an option to
    bring the factor variables into the global scope?

    Thanks,

    Peter
-- You received this message because you are subscribed to the
    Google Groups "Puppet Users" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to puppet-users...@googlegroups.com <javascript:>.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/puppet-users/420abd32-c607-4374-ad34-64c999487ed7%40googlegroups.com
    
<https://groups.google.com/d/msgid/puppet-users/420abd32-c607-4374-ad34-64c999487ed7%40googlegroups.com>.
    For more options, visit https://groups.google.com/groups/opt_out
    <https://groups.google.com/groups/opt_out>.


-- Johan De Wit

    Open Source Consultant

    Red Hat Certified Engineer         (805008667232363)
    Puppet Certified Professional 2013 (PCP0000006)
    _________________________________________________________
Open-Future Phone +32 (0)2/255 70 70
    Zavelstraat 72              Fax       +32 (0)2/255 70 71
    3071 KORTENBERG             Mobile    +32 (0)474/42 40 73
    BELGIUMhttp://www.open-future.be
    _________________________________________________________

    Upcoming Events:

    Puppet Fundamentals Training |
    http://www.open-future.be/puppet-fundamentals-training-4-till-6th-february
    <http://www.open-future.be/puppet-fundamentals-training-4-till-6th-february>

    Puppet Introduction Course |
    http://www.open-future.be/puppet-introduction-course-7th-february
    <http://www.open-future.be/puppet-introduction-course-7th-february>

    Zabbix Certified Training |
    http://www.open-future.be/zabbix-certified-training-10-till-12th-february
    <http://www.open-future.be/zabbix-certified-training-10-till-12th-february>

    Zabbix for Large Environments Training |
    
http://www.open-future.be/zabbix-large-environments-training-13-till-14th-february
    
<http://www.open-future.be/zabbix-large-environments-training-13-till-14th-february>

    Subscribe to our newsletter: http://eepurl.com/BUG8H


--
You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/c5380703-dab6-41c7-b6a7-40080b376f4e%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


--
Johan De Wit

Open Source Consultant

Red Hat Certified Engineer         (805008667232363)
Puppet Certified Professional 2013 (PCP0000006)
_________________________________________________________
Open-Future Phone +32 (0)2/255 70 70
Zavelstraat 72              Fax       +32 (0)2/255 70 71
3071 KORTENBERG             Mobile    +32 (0)474/42 40 73
BELGIUM                     http://www.open-future.be
_________________________________________________________

Next Events:
Puppet Fundamentals Training | 
http://www.open-future.be/puppet-fundamentals-training-4-till-6th-february
Puppet Intruction Course | 
http://www.open-future.be/puppet-introduction-course-7th-february
Zabbix Certified Training | 
http://www.open-future.be/zabbix-certified-training-10-till-12th-february
Zabbix for Large Environments Training | 
http://www.open-future.be/zabbix-large-environments-training-13-till-14th-february
Subscribe to our newsletter | http://eepurl.com/BUG8H

--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/52D04000.4070905%40open-future.be.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to