Peter Bukowinski [11.10.2013 15:57]:
> On Oct 11, 2013, at 9:06 AM, Werner Flamme <[email protected]> wrote:
> 
>> Peter Bukowinski [11.10.2013 14:39]:
>>> On Oct 11, 2013, at 5:48 AM, Jakub Bittner <[email protected]> wrote:
>>>
>>>> Hello,
>>>>
>>>> I created puppet class and I want the file operation to be executed on all 
>>>> servers but not on server with hostname "'server1.domain.com". I tried 
>>>> this class, but it does not work. Is there any other way? Thanks
>>>>
>>>>
>>>> class test {
>>>>    if $hostname != 'server1.domain.com' {
>>>>                file { "/etc/ntp.conf":
>>>>                        owner   => root,
>>>>                        group   => root,
>>>>                        mode    => 644,
>>>>                        source  => "puppet:///files/server/ntp.conf",
>>>>                }
>>>>    }
>>>> }
>>>>
>>>
>>> You have a couple errors in your if statement. For comparing a literal 
>>> string, you need to use double-equals in your test:
>>>
>>>    if $hostname == 'server1.domain.com' { ... }
>>>
>>> For a regex match, you'd use the equal-tilde:
>>>
>>>    if $hostname =~ /^server/ { ... }
>>>
>>> To negate a match, you put the not (!) in front of the entire comparison, 
>>> e.g.
>>>
>>>    if ! $hostname == 'server1.domain.com' { ... }
>>>
>>> I like to add parentheses around my comparisons for visual clarity:
>>>
>>>    if ( $hostname =~ /^server/ ) and ! ( $virtual == 'vmware' ) { ... } 
>>>
>>
>> I do not see "a couple of errors". But I'm a novice, so you can enlarge
>> my knowledge easily ;-)
>>
>> You show only one error by mentioning that the if statement may not have
>> an inequality sign: "To negate a match, you put the not (!) in front of
>> the entire comparison". Where can I find this in the puppet language
>> description?
>>
>> First, I looked at
>> <http://docs.puppetlabs.com/puppet/3/reference/lang_conditional.html#if-statements>.
>> Under the caption "Conditions" I find - among others - "Expressions". So
>> I follow that link, and on the linked page under
>> <http://docs.puppetlabs.com/puppet/3/reference/lang_expressions.html#non-equality>
>> I find the != operator. I do not find any hint that one has to prepend
>> the nagation to the whole statement. In the contrary, in the "Syntax"
>> section I see a sample for a comparison with an inequality sign:
>> "($operatingsystem != 'Solaris')".
>>
>> Where do I find that != is not allowed in this case?
>>
>> BTW, I'd never write a class like that, I'd rather use different node
>> declarations... ;-)
>>
>> Regards,
>> Werner
> 
> 
> I've been using the convention where the not (!) is separate from the equals 
> sign and it works well for me, so I suspect your only error was using a 
> single equal sign rather than a the required double.
> 

I'm not Jakub (the OP), it is not my problem.

I'm only the one who wanted to know where the "couple of errors" are.

Regards,
Werner

-- 
Werner Flamme, Abt. WKDV
Helmholtz-Zentrum für Umweltforschung GmbH - UFZ
Helmholtz Centre for Environmental Research - UFZ
Permoserstr. 15 - 04318 Leipzig / Germany
Tel./phone: +49 341 235-1921 - Fax +49 341 235-451921
Information nach §§ 37a HGB, 35a GmbHG:
Sitz der Gesellschaft: Leipzig
Registergericht: Amtsgericht Leipzig, Handelsregister Nr. B 4703
Vorsitzender des Aufsichtsrats: MinDirig Wilfried Kraus
Wissenschaftlicher Geschäftsführer: Prof. Dr. Georg Teutsch
(Scientific Managing Director)
Administrative Geschäftsführerin: Dr. Heike Graßmann
(Administrative Managing Director)

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to