[Puppet Users] Re: Puppet and installing packages from source

2013-01-04 Thread magic . rh
I understand exactly what source packages do, if it makes it easier for you 
I'll call them tar.gz files.
Also, I don't find your comparison valid, as the result of package 
installation be it yum or ./configure  make  make install is the same: 
software being installed.

My meaning is that compiling from source will always be with us, and it's 
the prominent way of releasing new software.

Thanks,
Magic.

On Wednesday, January 2, 2013 11:32:55 AM UTC+2, magi...@gmail.com wrote:

 Hello Everyone,

 I'm looking for a way to install packages from source via puppet, I was 
 able to locate maybe 5 posts on this subject which is very strange, as I 
 would expect people to still use ./configure with their own customized 
 options.
 For example, I need to compile Curl with c-ares support, for that I need 
 to set an option for ./configure but can't find a way to do it.

 Here's the manifest, it works up to the point of configure which fails:

 file { /usr/local/src: ensure = directory }
 file { /usr/local/src/c-ares-1.9.1.tar.gz:
 source = puppet:///modules/web_dev/c-ares-1.9.1.tar.gz,
 alias = ares-source-tgz,
 before = Exec[untar-ares-source]
 }

 exec { tar xzf /usr/local/src/c-ares-1.9.1.tar.gz:
 cwd = /usr/local/src,
 path = /bin,
 creates = /usr/local/src/c-ares-1.9.1,
 alias = untar-ares-source,
 subscribe = File[ares-source-tgz]
 }

 exec { configure:
 command = ./configure,
 cwd = /usr/local/src/c-ares-1.9.1,
 path = /usr/local/src/c-ares-1.9.1,
 require = Exec[untar-ares-source],
 creates = /usr/local/src/c-ares-1.9.1/config.h,
 }

 The ERROR:

 Debug: Exec[configure](provider=posix): Executing './configure'
 Debug: Executing './configure'
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: 1: 
 ./configure: expr: not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: 1: 
 ./configure: expr: not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: 95: 
 ./configure: as_fn_error: not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 83: expr: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 90: expr: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 95: as_fn_error: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 465: sed: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 464: expr: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 465: sed: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: ./configure: line 
 479: sed: command not found
 Notice: /Stage[main]/Web_dev/Exec[configure]/returns: : error: cannot 
 create .lineno; rerun with a POSIX shell
 Error: ./configure returned 1 instead of one of [0]
 Error: /Stage[main]/Web_dev/Exec[configure]/returns: change from notrun to 
 0 failed: ./configure returned 1 instead of one of [0]

 Anyone did this or knows whats wrong ?

 Thanks,
 Magic.


-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/zLcAvPzXtPYJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Re: Puppet and installing packages from source

2013-01-04 Thread R.I.Pienaar


- Original Message -
 From: magic rh magic...@gmail.com
 To: puppet-users@googlegroups.com
 Sent: Friday, January 4, 2013 9:39:53 AM
 Subject: [Puppet Users] Re: Puppet and installing packages from source
 
 I understand exactly what source packages do, if it makes it easier for you
 I'll call them tar.gz files.
 Also, I don't find your comparison valid, as the result of package
 installation be it yum or ./configure  make  make install is the same:
 software being installed.

it's not really though is it? the make install route drops a bunch of files
down, just tossing it out there with no regard for what comes before or after

the yum package apart from putting files on disks also does to name just a few:

 - manages the serving, locating and transferring of the package onto your OS
   for you, this is important because built into this process is things like
   check summing, mirroring including fastest mirror determination, local 
   caches and so forth.  You get some of this of course with the puppet file
   server like the checksums but Puppet isnt really great at it.

 - manage dependencies: makes sure you have all the pre-determined libraries
   you need for the software to function.  the ./configure method will adjust
   the software based on the requirements met - you might find that on one 
   machine your ./configure results in a tool minus a key feature while on
   the others it has it due to a simple ordering problem with when you deliver
   devel libraries

 - manage conflicts: if a OS update in the future comes with a file that might
   conflict with your ./configure build you'll be none the wiser, it'll just be
   overridden.  Packages won't do this, it'll register a conflict and refuse to
   install thus surfacing this behavior change and potential problem in a mature
   way

 - manage file lists: every file the package installs are registered and tracked
   and you can later compare them for changes. or when you upgrade to the next
   version orphaned files are detected and removed, config files are not blindly
   overwritten but backed up and possibly not even replaced. you can later 
safely
   uninstall it based on this database

 - handles things like integration with the OS init, rc, pam, logging and other
   subsystems

 - registers the new capability for other packages to be able to rely on it

 - provide many CLI tools to query, validate and generally manage the software 
you
   have on your system in a single consistent way that means you never need to 
   track - as a user or as an automation system - things like different 
configure
   flags depending on the type of software.  It's all standardised and unified 
into
   a single coherent system.

All in a way that combines with how your OS vendor chose to design their OS so 
you
know that by working with their approach you'll end up with a better functioning
whole in the end

Puppet is designed to use the facilities provided by your package manager, for 
example
the package resource has the ability to install, uninstall and upgrade a package
and it needs the ability to query if a package is installed.  By using these
facilities it provides a idempotent means of managing the full life cycle of 
your
software in a mature way. Because your tgz files do not do any of the above 
things
puppet is simply not capable of providing a solid management experience of 
software
delivered in such a manner - the key information sources and standardised 
management
just does not exist for tgz files as they do for true packages.

The configure method does the absolute minimal, it just puts files down in some
non deterministic location. Worse it requires you to know and manage a wide 
range
of different configure flags and have appropriate error handling for every 
possible
scenario wedged awkwardly into some exec statements. This is not package 
management,
they are not packages. This is just wholesale creation of technical debt.

 My meaning is that compiling from source will always be with us, and it's
 the prominent way of releasing new software.

We'll always be compiling software as you say, it's how you manage the 
compilation
and delivery of the software that changes. fpm is no harder to use than the tar 
command
and while it does not provide all of these benefits it goes a long way to 
improving
what happens to your software once its compiled.

 
 Thanks,
 Magic.
 
 On Wednesday, January 2, 2013 11:32:55 AM UTC+2, magi...@gmail.com wrote:
 
  Hello Everyone,
 
  I'm looking for a way to install packages from source via puppet, I was
  able to locate maybe 5 posts on this subject which is very strange, as I
  would expect people to still use ./configure with their own customized
  options.
  For example, I need to compile Curl with c-ares support, for that I need
  to set an option for ./configure but can't find a way to do it.
 
  Here's the manifest, it works up to the point of configure which fails:
 
  file { /usr/local/src: 

Re: [Puppet Users] Have Puppet *call* REST APIs

2013-01-04 Thread Craig Dunn




I hope this is just not my Google-fu lacking, but can you configure 
Puppet modules to make REST API calls inherently with Puppet?  I'm 
talking about 3rd party REST APIs, not Puppet's API.  I'm thinking of 
rolling my own plugin, but wondered if I'm missing something here.


Can you provide a bit more information on what you're trying to do? If 
are you are trying to look up a value from a REST API call you could use 
Hiera with the http backend.  Or are you trying to get Puppet to post 
data to a REST API when it runs?  And if so do you want this to happen 
on the agent when the resource gets applied, or on the server during 
catalog compilation in the form of a function? Whether or not you are 
doing anything with the data returned from your call will make a 
difference here.


Craig

--
Craig Dunn
Professional Services
Puppet Labs Inc.
http://www.puppetlabs.com

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] How to clone alfresco on puppet agents?

2013-01-04 Thread lalit jangra
Hi,

I have alfresco installed on my puppet master  try to clone it using 
puppet console to puppet agent nodes but under 'live management' link, i 
can not see any of package/group/user/host resources named similar to 
alfresco even though i can see postgres package resource but no 
java/alfresco/tomcat resource?

Can anyone let me know how to clone the same?

Regards.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/dXF-HUHJ_SgJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Re: puppet master keeps spawning new child processes

2013-01-04 Thread alcc
Disabling puppet dashboard helped - 12 hours without any frozen 100% 
child process. Now investigating if it's dashboard's external node command.



-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/okUymmaneZQJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How to automate agent installation on nodes

2013-01-04 Thread Ohad Levy
On Fri, Jan 4, 2013 at 9:23 AM, Nilesh nilesh.chaudha...@gmail.com wrote:

 Thanks for the reply :)

 I am using vCenter as a provisioing engin .

 I will try this option and let you know ...


You can try Foreman[1], which among of its features, it creates your vm,
install its os and deploy puppet, later on it can monitor your puppet
service and of course, tell puppet which classes to apply.




cheers,
Ohad

[1] theforeman.org


 On Thursday, January 3, 2013 7:25:01 PM UTC+5:30, Ygor wrote:

 What do you use to provision ?

 I am still working with non-virtual servers and I use Cobbler to install
 / configure Puppet

 “Sometimes I think the surest sign that intelligent life exists elsewhere
 in the universe is that none of it has tried to contact us.”
 Bill Waterson (Calvin  Hobbes)

 - Original Message -
 From: Nilesh nilesh.c...@gmail.com
 To: puppet...@googlegroups.com
 Sent: Thursday, January 3, 2013 6:13:23 AM
 Subject: [Puppet Users] How to automate agent installation on nodes


 Hello Everyone

 Can anyone please let me know once I am done with VM provisioing with
 vmware how
 to allocate hostname and install puppet agent on that node automatically.
 Thanks :)

 --
 You received this message because you are subscribed to the Google Groups
 Puppet Users group.
 To view this discussion on the web visit https://groups.google.com/d/**
 msg/puppet-users/-/**35pXckQzOCoJhttps://groups.google.com/d/msg/puppet-users/-/35pXckQzOCoJ.
 To post to this group, send email to puppet...@googlegroups.com.
 To unsubscribe from this group, send email to puppet-users...@**
 googlegroups.com.
 For more options, visit this group at http://groups.google.com/**
 group/puppet-users?hl=enhttp://groups.google.com/group/puppet-users?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Puppet Users group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/puppet-users/-/fROc8zavh8oJ.

 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/puppet-users?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Module for tuned-adm

2013-01-04 Thread Romain Pelisse
Hi all,

tuned-adm module: https://github.com/rpelisse/puppet-tuned

I'm using 
tuned-admhttps://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Power_Management_Guide/tuned-adm.htmlto
tune the kernel of the target system according to a profile. I first
used exec{} to trigger the profile setting but lead to the exec{} being ran
at every Puppet run which I found, at beast, inelegant. I end up doing this
module to more and less properly implement the exists? method. The module
implementation is rather rudimentory but still nice to have - if you need
it.

(Note: i've googled a bit before doing that and ran into a couple of
existing Puppet module or code for tuned-adm but they were either using
exec() internally or just installing the packages and nothing more).

(Final note: Before XMas, I've already submitted a completely useless
module extension to handle DNS Name, as it turned out Puppet supports this
out of the box, so I hope this module proposal will be a tidbit more useful
! :) )

-- 
Romain PELISSE,
*The trouble with having an open mind, of course, is that people will
insist on coming along and trying to put things in it -- Terry Pratchett*
Belaran ins Prussia (blog) http://blog.wordpress.belaran.eu/ (...
finally up and running !)

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] puppetlabs-mysql module

2013-01-04 Thread treydock
You can supply values to override those defined in /etc/my.cnf by adding files 
to /etc/mysql/conf.d.  The module makes the overrides possible with the default 
configuration in my.cnf, I believe the IncludeDir line.  Using phone so 
difficult to reference. 

- Trey

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/D98HPPDdiLEJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Internal server error

2013-01-04 Thread earthgecko
Hi Mamta

This is not really a puppet issue, you have no space left on the device.

What puppet master files can you delete, well reports would be one, if you 
have them enabled and if you wanted to.  They normally reside:

/var/lib/puppet/reports/node/*.yaml

However you may want the data in the future for dashboard or something, so 
archiving them somewhere may be better.

If you have run out of disk space then there are all the usual suspects to 
consider and check that you do not have a lot unexepcted data in:

/tmp/
/var/log/
/var/cache/

However, if you find that you actually seem to have disk space e.g. df -h 
does not report Use% 100% then check you have not run out of inodes

df -i

100% use of inodes will also report No space left on the device.

Which should really report Too many files on the device or No inodes left 
on the device

Or you need a bigger boat :)

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/eyLHGeQ075QJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Puppet and installing packages from source

2013-01-04 Thread Hans van der Made


On Friday, January 4, 2013 10:39:53 AM UTC+1, magi...@gmail.com wrote:

 I understand exactly what source packages do, if it makes it easier for 
 you I'll call them tar.gz files.
 Also, I don't find your comparison valid, as the result of package 
 installation be it yum or ./configure  make  make install is the same: 
 software being installed.

 My meaning is that compiling from source will always be with us, and it's 
 the prominent way of releasing new software.


When all the required features of a source build  install environment are 
met, like uninstalling, upgrading, listing, you end up with a new type of 
package provider. As you don't want a split between OS-provided software 
(libraries your source file depends on), it's easier to use the provider 
your OS comes with.

The requirements for building source are often many. You'll need a compiler 
and a toolchain, at least. Many don't want all of these tools installed on 
their (virtual) production servers, because they consume space, require 
updates, and because they facilitate exploits. Less software means less 
work and less risk. 

Building software on a separate system and deploying the resulting binaries 
and documentation to production systems is one step up from compiling on 
your production systems.

Many of us used to compile from source earlier in our careers, so don't 
asume we don't know about anything but ready made packages ;-)

Now for a quick hack to address your problem:

Why don't you try to do a ./configure --prefix=/usr/local --specialopts  
make  make install on a clean system and create a tar file of /usr/local/ 
afterwards?  Missing dependencies can be met by installing OS packages on 
your test system. The installation on your target system can be a hack like 
this:

# dependencies
package { [ dep1, dep2, dep3, ]: ensure = installed, }

file { /var/tmp/curl-custom-version.tar.gz:
  ensure = file,
  source = puppet:///module/curl-custom-version.tar.gz,
  notify = Exec[unpackcurl],
}

exec { unpackcurl: 
  command = tar -C /usr/local -xzf /var/tmp/curl-custom-version.tar.gz,
  creates = /usr/local/bin/curl,
  path = /usr/sbin:/usr/bin:/sbin:/bin,
  logoutput = true,
  refreshonly = false,
}

If possible, use packages, but if you can't meet your deadline this way, 
try the above (and discover the wonderful world of packaging anyway at a 
later time).

Best,

Hans

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/dprmfK80yh8J.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Multiple Requires not allowed, not sure what this is for...

2013-01-04 Thread Hans van der Made


On Wednesday, January 2, 2013 4:33:36 PM UTC+1, jcbollinger wrote:

 You may also want to consider whether you want to establish relationships 
 with the config class, or whether it would be as good or better to 
 establish them with particular resources declared by that class (e.g. 
 File['/etc/puppet/puppet.conf']).  There are a few other variations and 
 options as well, and you are more constrained if class 'puppet::config' is 
 parametrized, but maybe this will get you looking in the right direction.


We make a habit of only depending on individual resources (File etc.) 
within a single class. Dependencies outside the class (e.g. in another 
manifest) are on classes only. Not sure if others agree, but we made this 
choice so we could move resources around within a class, clean up code, 
change File { path: to File { name: etc.

Best,

Hans van der Made
Utrecht University
NL 

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/845UwF-GQjIJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Configuration is not applied notice: Finished catalog run in 0.01 seconds

2013-01-04 Thread jcbollinger


On Thursday, January 3, 2013 9:08:48 AM UTC-6, Aleksandar Nikolic wrote:

 Hi guys,

 I am fairly new to puppet and I am having a problem with one of the 
 clients. I recently installed a new server that should get config from 
 puppet master. All similar servers I recently installed didn't have any 
 problem. I installed puppet agent on the server and sent a sign request. 
 SSL cert is signed but when I run puppetd manually I get the following:

 info: Retrieving plugin
 info: Caching catalog for client4
 info: Applying configuration version '1357214285'
 notice: Finished catalog run in 0.01 seconds

 Even though it says catalog run finish nothing is applied. The strange 
 thing is that I recently installed the same OS on the same machine and 
 didn't get any problem. I tried various debug options but searching the 
 output didn't help.  



As Denmat implied, this looks like a problem at your master.  It recognizes 
the client, but serves up an empty catalog.  That probably means that the 
node block you think will match the client does not in fact match it, but 
there are other possibilities.


John

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/6sWqd96pz8UJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Have Puppet *call* REST APIs

2013-01-04 Thread Rob Johnson
Hi Craig,

Thanks for your reply.

I'm looking to post requests to a server that configures properties of that 
server after standing it up.  So, I would envision sending requests from 
puppet master in this case to one server.

It would happen likely after a bunch of other installations occurred first 
(that's standard RPM deployment).  So it's:

1) Install a bunch of software on numerous machines including server 
process on a specific machine. (simplified, there's more config I have to 
do here)
2) Start up the master server.
3) Configure the master server via REST API Posts.  I mainly need to check 
the replies for return status I think.  Don't need to process the requests 
too much.

Does that make sense?  I probably have to build some custom plugins or 
something to do this right?  I was thinking about exec calls to curl or 
something, but that seems a little kludgy.

Thanks for any advice, it's much appreciated!
Rob

On Friday, January 4, 2013 5:02:16 AM UTC-6, Craig Dunn wrote:


  
  I hope this is just not my Google-fu lacking, but can you configure 
  Puppet modules to make REST API calls inherently with Puppet?  I'm 
  talking about 3rd party REST APIs, not Puppet's API.  I'm thinking of 
  rolling my own plugin, but wondered if I'm missing something here. 
  
 Can you provide a bit more information on what you're trying to do? If 
 are you are trying to look up a value from a REST API call you could use 
 Hiera with the http backend.  Or are you trying to get Puppet to post 
 data to a REST API when it runs?  And if so do you want this to happen 
 on the agent when the resource gets applied, or on the server during 
 catalog compilation in the form of a function? Whether or not you are 
 doing anything with the data returned from your call will make a 
 difference here. 

 Craig 

 -- 
 Craig Dunn 
 Professional Services 
 Puppet Labs Inc. 
 http://www.puppetlabs.com 



-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/XP2goJEbl-UJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Hiera hashes and arrays in ERB templates

2013-01-04 Thread Andy Taylor
Hi,

I'm trying to build a module for haproxy which fetches all the 
configuration data from Hiera to populate the haproxy config file. I've run 
into a number of issues though when I try to use hashes. Ideally, I want to 
use something like this:

haproxy_listeners :
 cluster1 :
  ip : '192.168.0.2'
  port : '80'
  servers : 
   server1 :
ip : '192.168.0.3'
port : '8080'

So a hash of clusters with each cluster containing a nested hash of 
servers. Is this possible with Hiera/ERB? It's easy enough to iterate over 
the first hash, but I can't work out how to extract the contents of the 
nested hash. Or I might just be approaching this in entirely the wrong 
way... Any help would be much appreciated.

Thanks,

Andy

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/vtr8gCCwuBsJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Schedule yum update not found

2013-01-04 Thread Miguel Angel Coa Morales
Hello jcbollinger,
 I resolved the problem  with  sudo in the command syntax .  

[………...]
class updateso  {

schedule{ weekly:
range = 14 - 16,
repeat = 2,
 }

exec { sudo yum --exclude=drbd* --exclude=kernel* --exclude=mysql* 
--exclude=php* update -y:
user = root,
 #  password_required = true,
schedule = weekly,
path = /bin:/usr/bin:/sbin:/usr/sbin,
}

}
[]


Thanks a lot!!

El 04-01-2013, a las 11:28, jcbollinger john.bollin...@stjude.org escribió:

 
 
 On Thursday, January 3, 2013 9:37:49 AM UTC-6, Kazor wrote:
 Hello,
 I resolved the structure inside my init.pp, but the command in the puppet 
 agent fails:
 
 [………]
 Jan  3 12:25:45 mail2 puppet-agent[31902]: (/Stage[main]/Updateso/Exec[yum 
 --exclude=drbd* --exclude=kernel* --exclude=mysql* --exclude=php* update 
 -y]/returns) change from notrun to 0 failed: yum --exclude=drbd* 
 --exclude=kernel* --exclude=mysql* --exclude=php* update -y returned 1 
 instead of one of [0] at /etc/puppet/modules/updateso/manifests/init.pp:13
 [………]
 
 My class updateso
 
 [………]
 
 class updateso  {
 
 schedule{ daily:
 range = 10 - 15,
 repeat = 2,
  }
 
 exec { yum --exclude=drbd* --exclude=kernel* --exclude=mysql* --exclude=php* 
 update -y: #LINE 13
 schedule = daily,
 path = /usr/local/bin/:/bin/:/usr/bin/,
 #   refreshonly = true, 
 #   command = yum --exclude=kernel* --exclude=mysql* --exclude=php* 
 update -y,
 }
 
 #}
 
 
 }
 [………]
 
 
 The line 13 is the command yum --exclude …… 
 
 
 That looks perfectly normal to me.  Your yum update command is not 
 completing successfully.  That's probably not Puppet's fault. Run the same 
 command manually to see yum's explanation of the problem, but I'd bet it's a 
 depsolving failure arising from your package exclusions.
 
 
 John
 
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Puppet Users group.
 To view this discussion on the web visit 
 https://groups.google.com/d/msg/puppet-users/-/PWxzV5bAb9IJ.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to 
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/puppet-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How do I check content of a file in puppet

2013-01-04 Thread pdiddy
Any thoughts guys...

On Wednesday, January 2, 2013 11:05:41 AM UTC-5, pdiddy wrote:

 When I build the server I make sure it meets all the compliance 
 requirements (ex: PermitRootLogin, login banner). However, I would like to 
 double check those compliance requirements on daily basis through Puppet 
 (in case someone has changed them). This is an audit requirement.

 I was able to write custom facts and now I see PermitRootLogin and 
 login banner values in node inventory list.

 I was trying to create same report using following link, but it's not 
 working
 http://puppetlabs.com/blog/when-puppet-reports-part-2/

 dir structure
 --
 [root@lxpuppet modules]# pwd
 /opt/puppet/share/puppet/modules
 [root@lxpuppet modules]# ls -ltR compliance_report
 compliance_report:
 total 12
 -rw-r--r-- 1 peadmin games  154 Jan  2 10:47 Modulefile
 drwxr-xr-x 2 peadmin games 4096 Jan  2 10:40 manifests
 drwxr-xr-x 3 peadmin games 4096 Jan  2 10:25 lib

 compliance_report/manifests:
 total 4
 -rw-r--r-- 1 peadmin games 467 Jan  2 10:40 init.pp

 compliance_report/lib:
 total 4
 drwxr-xr-x 3 peadmin games 4096 Jan  2 10:25 puppet

 compliance_report/lib/puppet:
 total 4
 drwxr-xr-x 2 peadmin games 4096 Jan  2 10:25 reports

 compliance_report/lib/puppet/reports:
 total 0
 ---




 On Friday, December 28, 2012 10:11:16 AM UTC-5, pdiddy wrote:

 Thanks everyone, I will look into these options...I will write back in 
 few days...

 On Friday, December 28, 2012 7:36:31 AM UTC-5, Keiran Sweet wrote:

 Hi,
 Although I've never used it, this does sound like a task for the 
 auditing functionality that was added into Puppet 2.6.
 Some information about it can be found here: 
 http://puppetlabs.com/blog/all-about-auditing-with-puppet/

 You may also find the Puppet enterprise documentation on audit and 
 compliance of some use, as it uses the audit metaparams to achieve this 
 functionality.
 http://docs.puppetlabs.com/pe/2.7/compliance_basics.html

 From what I understand, you can build your own 
 auditing/reporting/compliance tool using your existing puppet framework and 
 a modified report processor that fits your needs.

 Hope this helps.

 K







 On Thursday, December 27, 2012 10:27:53 PM UTC, Jason Edgecombe wrote:

 Yes, you can do what you want if you already have a puppet master 
 (server) in your puppet environment, but you may need configure or 
 install some add-ons. 

 All puppet installations include a tool called facter. Facter gathers 
 various facts or data about your systems. The system can be configured 
 to sent this data back to the puppet server. Various puppet add-ons 
 offer the ability to create reports based on the data that was sent 
 back 
 to the server. For you needs, you will likely need to write a custom 
 fact. 

 Here are some links that might be helpful: 

  Info on facter: 
  http://puppetlabs.com/blog/facter-part-1-facter-101/ 

  How to do custom facts: 
  http://docs.puppetlabs.com/guides/custom_facts.html 

  Puppet reporting: 
  http://docs.puppetlabs.com/guides/reporting.html 

 If you don't use a puppet server, then I think there are other options 
 for gathering the reporting data. 

 Sincerely, 
 Jason 


 P.S. My apologies to other posters, but I didn't see a clear answer to 
 the question. 

 On 12/27/2012 03:01 PM, pdiddy wrote: 
  Understood, but is it possible to get it done via puppet? I've 
 management 
  requirement. 
  
  On Thursday, December 27, 2012 2:52:31 PM UTC-5, Christopher Wood 
 wrote: 
  You might be better off putting together a custom fact about this. 
 Then 
  you can check fact(s) on the host(s) without trying to 
  manage-but-not-manage something inside puppet. 
  
  On Thu, Dec 27, 2012 at 11:15:14AM -0800, pdiddy wrote: 
  How do I check content of a file in puppet? 
  ex: I want to see if PermitRootLogin is no 
  in /etc/ssh/sshd_config 
  file (RHEL). If it's yes i want to show it on compliance 
 report. 
  For now 
  I don't want make any changes to the sshd_config file through 
 puppet. 
  Here is something I have: 
  define line($file, $line, $ensure = 'present') { 
  $line = PermitRootLogin no 
  $file = /etc/ssh/sshd_config 
  case $ensure { 
  default : { err ( unknown ensure value ${ensure} ) } 
  present: { 
  warning/flag code: 
  unless = /bin/grep '${line}' '${file}' 
  } 
  } 
  } 
  
  -- 
  You received this message because you are subscribed to the 
 Google 
  Groups 
  Puppet Users group. 
  To view this discussion on the web visit 
  [1]https://groups.google.com/d/msg/puppet-users/-/M8gmxMKkp58J. 

  To post to this group, send email to 
  puppet...@googlegroups.comjavascript:. 

  To unsubscribe from this group, send email to 
  

[Puppet Users] Re: Hiera hashes and arrays in ERB templates

2013-01-04 Thread llowder


On Friday, January 4, 2013 9:11:28 AM UTC-6, Andy Taylor wrote:

 Hi,

 I'm trying to build a module for haproxy which fetches all the 
 configuration data from Hiera to populate the haproxy config file. I've run 
 into a number of issues though when I try to use hashes. Ideally, I want to 
 use something like this:

 haproxy_listeners :
  cluster1 :
   ip : '192.168.0.2'
   port : '80'
   servers : 
server1 :
 ip : '192.168.0.3'
 port : '8080'

 So a hash of clusters with each cluster containing a nested hash of 
 servers. Is this possible with Hiera/ERB? It's easy enough to iterate over 
 the first hash, but I can't work out how to extract the contents of the 
 nested hash. Or I might just be approaching this in entirely the wrong 
 way... Any help would be much appreciated.


I haven't used the function myself, but this looks like it would be a good 
case for a define + create_resources(), which I think is part of stdlib. 
You might need to restructure the hashes slightly, but I think that will be 
the best approach.

 

 Thanks,

 Andy


-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/DPkuzR8Q8soJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How to clone alfresco on puppet agents?

2013-01-04 Thread Ryan Coleman
Hello,

In the future, you may want to pose questions like this to the PE-Users
list as live management is a Puppet Enterprise feature. There are likely
more people on that list who can directly help with those kinds of
questions.

On the machine alfresco is installed on, can you inspect the current state
of the package your're looking for with `puppet resource package
package-name`? If you don't know it, you can ask for the state of all
packages on the system and pipe it through grep like `puppet resource
package | grep foo`. You can replace package with user, group or whatever
else you're looking for.

Hopefully that gets you to the point where you're absolutely sure what the
title is of the resource you want to manage. Try taking that to live
management and see if it's just a matter of having the name wrong.

HTH,

--Ryan


On Fri, Jan 4, 2013 at 4:13 AM, lalit jangra lalit.j.jan...@gmail.comwrote:

 Hi,

 I have alfresco installed on my puppet master  try to clone it using
 puppet console to puppet agent nodes but under 'live management' link, i
 can not see any of package/group/user/host resources named similar to
 alfresco even though i can see postgres package resource but no
 java/alfresco/tomcat resource?

 Can anyone let me know how to clone the same?

 Regards.

 --
 You received this message because you are subscribed to the Google Groups
 Puppet Users group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/puppet-users/-/dXF-HUHJ_SgJ.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/puppet-users?hl=en.




-- 
Ryan Coleman | Modules  Forge | @ryanycoleman | ryancoleman in #puppet

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] ParsedFile Multi-line...

2013-01-04 Thread Gavin Williams
Afternoon all, 

I'm currently working on adding oranfstab support to Puppet-Oracle 
(https://github.com/stschulte/puppet-oracle). 

However I'm struggling to get my head around how I can get Puppet 
parsedfile to work with multi-line configurations... 

An example oranfstab configuration block is: 
server: stgasm === NFS server Host name
path: 10.177.52.158 --- First path to NFS server ie NFS server NIC
local: 10.177.52.151 --- First client-side NIC
path: 10.177.52.159 --- Second path to NFS server ie NFS server NIC (For 
load balance purpose)
local: 10.177.52.151 --- Second client-side NIC (For load balance purpose)
export: /oraclenfs mount: /oradata1

'path' and 'local' are optional, but can be specified multiple times 
aswell... 
The final 'export' line is required, and can be provided multiple times for 
multiple mount points.. 

So as you can see, there's a fair amount of variability in the file 
format... 

It's also then possible to have multiple 'server/path/local/export' blocks, 
for example with different filers... 

Any ideas on where I could begin? Is parsedfile right for the job, or am I 
better looking elsewhere?

Thank you in advance for any responses. 

Regards
Gavin 

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/7Mz3DIiIIDIJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Hiera hashes and arrays in ERB templates

2013-01-04 Thread Wolf Noble
not sure if this is the best way to do this, but, taking from a different 
module I have:


hiera yaml:

snmp_filesystems:
  root: {
mountpoint:  '/',
threshold:   '10%'
  }
snmp_collector:
  test: {
ip:'1.2.3.4',
group: 'readonly',
community: 'somecommunity'
  }

class:

class snmp::params(
filesystems = hiera(snmp_filesystems, undef),
collector = hiera(snmp_collector, undef)
{
#…
}

template:

%
  collector = scope.lookupvar('snmp::params::collector')
  filesystems = scope.lookupvar('snmp::params::filesystems')
-%

% collector.each_pair do |key, hash| -%
group  %=hash['group']-%  v2c  %=key%
%end-%

# Filesystem monitoring enabled
% filesystems.each_pair do |key, hash| -%
# %=key%
disk %=hash['mountpoint']-%  %=hash['threshold']%
%end-%




does that help at all?


Wolf Noble
UNIX Team Lead
Datapipe Managed IT Services
1.201.792.4847 (international) x2910
1.888.749.5821 (toll free) x2910




On Jan 4, 2013, at 9:37 AM, llowder llowde...@gmail.com wrote:



 On Friday, January 4, 2013 9:11:28 AM UTC-6, Andy Taylor wrote:
 Hi,

 I'm trying to build a module for haproxy which fetches all the configuration 
 data from Hiera to populate the haproxy config file. I've run into a number 
 of issues though when I try to use hashes. Ideally, I want to use something 
 like this:

 haproxy_listeners :
  cluster1 :
   ip : '192.168.0.2'
   port : '80'
   servers :
server1 :
 ip : '192.168.0.3'
 port : '8080'

 So a hash of clusters with each cluster containing a nested hash of servers. 
 Is this possible with Hiera/ERB? It's easy enough to iterate over the first 
 hash, but I can't work out how to extract the contents of the nested hash. Or 
 I might just be approaching this in entirely the wrong way... Any help would 
 be much appreciated.


 I haven't used the function myself, but this looks like it would be a good 
 case for a define + create_resources(), which I think is part of stdlib. You 
 might need to restructure the hashes slightly, but I think that will be the 
 best approach.


 Thanks,

 Andy

 --
 You received this message because you are subscribed to the Google Groups 
 Puppet Users group.
 To view this discussion on the web visit 
 https://groups.google.com/d/msg/puppet-users/-/DPkuzR8Q8soJ.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to 
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/puppet-users?hl=en.




This message may contain confidential or privileged information. If you are not 
the intended recipient, please advise us immediately and delete this message. 
See http://www.datapipe.com/legal/email_disclaimer/ for further information on 
confidentiality and the risks of non-secure electronic communication. If you 
cannot access these links, please notify us by reply message and we will send 
the contents to you.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Hiera hashes and arrays in ERB templates

2013-01-04 Thread Gavin Williams
I'm with Andy on this one... I'm doing something very similar with my 
NetApp volume provider (https://github.com/fatmcgav/fatmcgav-netapp/). 

I've created a define with the following contents:
define util::netapp::volume (
$ensure = present,
$size,
$aggr = 'aggr1',
$snapresv = 0,
$autoincrement = true,
$snapschedule = {minutes = 0, hours = 0, days = 0, weeks 
= 0}
) {

netapp_notify {volume_define_${name}:
message = Processing Volume ${name},
}
-
netapp_volume { v_${name}:
ensure = $ensure,
initsize = $size,
aggregate = $aggr,
spaceres = none,
snapreserve = $snapresv,
autoincrement = $autoincrement,
options = {'convert_ucode' = 'on', 'no_atime_update' = 
'on', 'try_first' = 'volume_grow'},
snapschedule = $snapschedule
}
-
netapp_qtree { q_${name}:
ensure = $ensure,
volume = v_${name}
}
-
netapp_export { /vol/v_${name}/q_${name}:
ensure = $ensure,
persistent = true
}

}

I've added a default hash to 'snapschedule' in the options list, but that 
can be over-ridden from the Hiera data. 

Then use the following to pull the data from hiera and call the define:
create_resources( util::netapp::volume, hiera('volumes') )

'Volumes' in hiera yaml looks like:
volumes:
 vol1:
  ensure: present
  size: '500m'
 vol2:
  ensure: present
  size: '20g'
  snapschedule:
   minutes: 0
   hours: 36
   days: 0
   weeks: 0

You can also use the 'hiera' command to test your yaml structure:
$ hiera -c hiera.yaml volumes clientcert=act-star-nactl01
{vol1={ensure=present, size=500m}, 
vol2={ensure=present, size=20g, snapschedule={days=0, 
weeks=0, hours=36, minutes=0}}}

As you can see from the above output, *snapschedule* for *vol2* is a nested 
hash. This assumes that your resource provider can support hashes on the 
relevant param/property ;)

HTH

Gav

On Friday, 4 January 2013 15:37:25 UTC, llowder wrote:



 On Friday, January 4, 2013 9:11:28 AM UTC-6, Andy Taylor wrote:

 Hi,

 I'm trying to build a module for haproxy which fetches all the 
 configuration data from Hiera to populate the haproxy config file. I've run 
 into a number of issues though when I try to use hashes. Ideally, I want to 
 use something like this:

 haproxy_listeners :
  cluster1 :
   ip : '192.168.0.2'
   port : '80'
   servers : 
server1 :
 ip : '192.168.0.3'
 port : '8080'

 So a hash of clusters with each cluster containing a nested hash of 
 servers. Is this possible with Hiera/ERB? It's easy enough to iterate over 
 the first hash, but I can't work out how to extract the contents of the 
 nested hash. Or I might just be approaching this in entirely the wrong 
 way... Any help would be much appreciated.


 I haven't used the function myself, but this looks like it would be a good 
 case for a define + create_resources(), which I think is part of stdlib. 
 You might need to restructure the hashes slightly, but I think that will be 
 the best approach.

  

 Thanks,

 Andy



-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/UjWLd-yp7iIJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Hiera hashes and arrays in ERB templates

2013-01-04 Thread Andy Taylor
Thanks for your suggestions guys. I did consider using create_resource, but 
don't see how I can when I'm trying to apply this Hiera data to a single 
file. To expand on my initial post, what I need to do is create multiple 
config blocks within one file resource. So this Hiera data:

haproxy_listeners :
 cluster1 :
  ip : '192.168.0.2'
  port : '80'
  servers : 
   server1 :
ip : '192.168.0.3'
port : '8080'
   server2 :
ip : '192.168.0.4'
port : '8080'
 cluster2 :
  ip : '192.168.0.5'
  port : '80'
  servers :
   server3
 ip : '192.168.0.6'
 port : '8080'
   server4
 ip : '192.168.0.7'
 port : '8080'

will result in this being generated in the haproxy config file:

listen cluster1 192.168.0.2:80
   server server1 192.168.0.3:8080
   server server2 192.168.0.4:8080

listen cluster2 192.168.0.5:80
   server server3 192.168.0.6:8080
   server server4 192.168.0.7:8080

So I don't see how create_resources can handle this, as that's for creating 
multiple Puppet resources, as opposed to multiple blocks within a single 
file. The only alternative I can think of at the moment is using 
create_resources with a define which utilizes Augeas, but I don't know how 
well that will work.

Thanks,

Andy

On Friday, 4 January 2013 16:47:13 UTC, Gavin Williams wrote:

 I'm with Andy on this one... I'm doing something very similar with my 
 NetApp volume provider (https://github.com/fatmcgav/fatmcgav-netapp/). 

 I've created a define with the following contents:
 define util::netapp::volume (
 $ensure = present,
 $size,
 $aggr = 'aggr1',
 $snapresv = 0,
 $autoincrement = true,
 $snapschedule = {minutes = 0, hours = 0, days = 0, 
 weeks = 0}
 ) {

 netapp_notify {volume_define_${name}:
 message = Processing Volume ${name},
 }
 -
 netapp_volume { v_${name}:
 ensure = $ensure,
 initsize = $size,
 aggregate = $aggr,
 spaceres = none,
 snapreserve = $snapresv,
 autoincrement = $autoincrement,
 options = {'convert_ucode' = 'on', 'no_atime_update' = 
 'on', 'try_first' = 'volume_grow'},
 snapschedule = $snapschedule
 }
 -
 netapp_qtree { q_${name}:
 ensure = $ensure,
 volume = v_${name}
 }
 -
 netapp_export { /vol/v_${name}/q_${name}:
 ensure = $ensure,
 persistent = true
 }

 }

 I've added a default hash to 'snapschedule' in the options list, but that 
 can be over-ridden from the Hiera data. 

 Then use the following to pull the data from hiera and call the define:
 create_resources( util::netapp::volume, hiera('volumes') )

 'Volumes' in hiera yaml looks like:
 volumes:
  vol1:
   ensure: present
   size: '500m'
  vol2:
   ensure: present
   size: '20g'
   snapschedule:
minutes: 0
hours: 36
days: 0
weeks: 0

 You can also use the 'hiera' command to test your yaml structure:
 $ hiera -c hiera.yaml volumes clientcert=act-star-nactl01
 {vol1={ensure=present, size=500m}, 
 vol2={ensure=present, size=20g, snapschedule={days=0, 
 weeks=0, hours=36, minutes=0}}}

 As you can see from the above output, *snapschedule* for *vol2* is a 
 nested hash. This assumes that your resource provider can support hashes on 
 the relevant param/property ;)

 HTH

 Gav

 On Friday, 4 January 2013 15:37:25 UTC, llowder wrote:



 On Friday, January 4, 2013 9:11:28 AM UTC-6, Andy Taylor wrote:

 Hi,

 I'm trying to build a module for haproxy which fetches all the 
 configuration data from Hiera to populate the haproxy config file. I've run 
 into a number of issues though when I try to use hashes. Ideally, I want to 
 use something like this:

 haproxy_listeners :
  cluster1 :
   ip : '192.168.0.2'
   port : '80'
   servers : 
server1 :
 ip : '192.168.0.3'
 port : '8080'

 So a hash of clusters with each cluster containing a nested hash of 
 servers. Is this possible with Hiera/ERB? It's easy enough to iterate over 
 the first hash, but I can't work out how to extract the contents of the 
 nested hash. Or I might just be approaching this in entirely the wrong 
 way... Any help would be much appreciated.


 I haven't used the function myself, but this looks like it would be a 
 good case for a define + create_resources(), which I think is part of 
 stdlib. You might need to restructure the hashes slightly, but I think that 
 will be the best approach.

  

 Thanks,

 Andy



-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/W3UBJBXuT24J.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For 

Re: [Puppet Users] How to clone alfresco on puppet agents?

2013-01-04 Thread Ken Barber
I don't think Alfresco is shipped as a formal OS package. It's just a
tarball with an installer script last time I looked, I remember some
third-party efforts back in the 2.x days but nothing formal from the
company itself (at least not when I worked on Alfresco). Live
management only deals with proper OS packages, like RPM's and Deb's.

I would double check Alfresco is an actual package 

On Fri, Jan 4, 2013 at 12:13 PM, lalit jangra lalit.j.jan...@gmail.com wrote:
 Hi,

 I have alfresco installed on my puppet master  try to clone it using puppet
 console to puppet agent nodes but under 'live management' link, i can not
 see any of package/group/user/host resources named similar to alfresco even
 though i can see postgres package resource but no java/alfresco/tomcat
 resource?

 Can anyone let me know how to clone the same?

 Regards.

 --
 You received this message because you are subscribed to the Google Groups
 Puppet Users group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/puppet-users/-/dXF-HUHJ_SgJ.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/puppet-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



RE: [Puppet Users] Re: Hiera hashes and arrays in ERB templates

2013-01-04 Thread Steven Nemetz

I'm using stdlib to help with this $listeners = hiera('haproxy_listeners', 
undef)$listener_keys = keys($listeners) then pass $listener_keys to a define to 
create all the instances
The entre hash is in memory ($listeners) and the define will have the key it is 
working on ($name)So you can access anything in the data structure to build 
your resources.
Steven
 Date: Fri, 4 Jan 2013 09:05:15 -0800
From: andytaylo...@gmail.com
To: puppet-users@googlegroups.com
Subject: [Puppet Users] Re: Hiera hashes and arrays in ERB templates

Thanks for your suggestions guys. I did consider using create_resource, but 
don't see how I can when I'm trying to apply this Hiera data to a single file. 
To expand on my initial post, what I need to do is create multiple config 
blocks within one file resource. So this Hiera data:
haproxy_listeners : cluster1 :  ip : '192.168.0.2'  port : '80'  servers :
server1 :ip : '192.168.0.3'port : '8080'   server2 :ip : 
'192.168.0.4'port : '8080' cluster2 :  ip : '192.168.0.5'  port : '80'  
servers :   server3 ip : '192.168.0.6' port : '8080'   server4 
ip : '192.168.0.7' port : '8080'
will result in this being generated in the haproxy config file:
listen cluster1 192.168.0.2:80   server server1 192.168.0.3:8080   
server server2 192.168.0.4:8080
listen cluster2 192.168.0.5:80   server server3 192.168.0.6:8080   
server server4 192.168.0.7:8080
So I don't see how create_resources can handle this, as that's for creating 
multiple Puppet resources, as opposed to multiple blocks within a single file. 
The only alternative I can think of at the moment is using create_resources 
with a define which utilizes Augeas, but I don't know how well that will work.
Thanks,
Andy
On Friday, 4 January 2013 16:47:13 UTC, Gavin Williams  wrote:I'm with Andy on 
this one... I'm doing something very similar with my NetApp volume provider 
(https://github.com/fatmcgav/fatmcgav-netapp/). 

I've created a define with the following contents:
define util::netapp::volume (
$ensure = present,
$size,
$aggr = 'aggr1',
$snapresv = 0,
$autoincrement = true,
$snapschedule = {minutes = 0, hours = 0, days = 0, weeks = 
0}
) {

netapp_notify {volume_define_${name}:
message = Processing Volume ${name},
}
-
netapp_volume { v_${name}:
ensure = $ensure,
initsize = $size,
aggregate = $aggr,
spaceres = none,
snapreserve = $snapresv,
autoincrement = $autoincrement,
options = {'convert_ucode' = 'on', 'no_atime_update' = 'on', 
'try_first' = 'volume_grow'},
snapschedule = $snapschedule
}
-
netapp_qtree { q_${name}:
ensure = $ensure,
volume = v_${name}
}
-
netapp_export { /vol/v_${name}/q_${name}:
ensure = $ensure,
persistent = true
}

}

I've added a default hash to 'snapschedule' in the options list, but that can 
be over-ridden from the Hiera data. 

Then use the following to pull the data from hiera and call the define:
create_resources( util::netapp::volume, hiera('volumes') )

'Volumes' in hiera yaml looks like:
volumes:
 vol1:
  ensure: present
  size: '500m'
 vol2:
  ensure: present
  size: '20g'
  snapschedule:
   minutes: 0
   hours: 36
   days: 0
   weeks: 0

You can also use the 'hiera' command to test your yaml structure:
$ hiera -c hiera.yaml volumes clientcert=act-star-nactl01
{vol1={ensure=present, size=500m}, vol2={ensure=present, 
size=20g, snapschedule={days=0, weeks=0, hours=36, 
minutes=0}}}

As you can see from the above output, snapschedule for vol2 is a nested hash. 
This assumes that your resource provider can support hashes on the relevant 
param/property ;)

HTH

Gav

On Friday, 4 January 2013 15:37:25 UTC, llowder  wrote:

On Friday, January 4, 2013 9:11:28 AM UTC-6, Andy Taylor wrote:Hi,
I'm trying to build a module for haproxy which fetches all the configuration 
data from Hiera to populate the haproxy config file. I've run into a number of 
issues though when I try to use hashes. Ideally, I want to use something like 
this:
haproxy_listeners : cluster1 :  ip : '192.168.0.2'  port : '80'  servers :
server1 :ip : '192.168.0.3'port : '8080'
So a hash of clusters with each cluster containing a nested hash of servers. Is 
this possible with Hiera/ERB? It's easy enough to iterate over the first hash, 
but I can't work out how to extract the contents of the nested hash. Or I might 
just be approaching this in entirely the wrong way... Any help would be much 
appreciated.

I haven't used the function myself, but this looks like it would be a good case 
for a define + create_resources(), which I think is part of stdlib. You might 
need to restructure the hashes slightly, but I think that will be the 

Re: [Puppet Users] Puppet 3.0: Not authorized to call find on /file_metadata, more issues?

2013-01-04 Thread Eric Sorenson

On Jan 3, 2013, at 2:02 PM, Forrie wrote:

 I see the ChangeLog in 3.0.2 and this bug is still not addressed?   Is there 
 a technical problem that is not yet resolved, or is this just a matter of 
 priority and time. 

Forrie this is on the table for 3.1 which will have a Release Candidate build 
Real Soon Now -- you can track progress on these two bugs:

https://projects.puppetlabs.com/issues/17448
https://projects.puppetlabs.com/issues/17449

Eric Sorenson - eric.soren...@puppetlabs.com
#puppet irc: eric0 

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] How to manage one line in a file by puppet

2013-01-04 Thread Andreas Hilboll
Hi,

I want to write a puppet module for xen on Debian. This module will need
to manage one line in the file /etc/default/grub, namely the line
starting with GRUB_CMDLINE_XEN=. Currently I want to leave the rest of
the file untouched.

Which would be the best way to do this?

I see two options:

a) Do some `sed` magic on the file in a `exec` call. Downside: puppet
won't notice when the line gets manually changed.

b) Have some support for sections inside files, like this:

[... part of file untouched by puppet ...]
###
# BEGIN MANAGED BY PUPPET: IDENTIFIEROFPUPPETRESOURCE
###
GRUB_CMDLINE_XEN='my options'
###
# END MANAGED BY PUPPET: IDENTIFIEROFPUPPETRESOURCE
###
[... rest of file untouched by puppet ...]

Is there support for something like this?

Cheers, Andreas.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Windows Puppet Agent Hangs on Run

2013-01-04 Thread phundisk
Can anyone make sense of the output below?  I am still experiencing this 
error.  Does this require any configuration change on the puppet server?

On Friday, December 21, 2012 4:45:30 PM UTC-5, phundisk wrote:

 Hi Josh!

 Making the changes and running the command I got the following... (I made 
 the change in C:\Program Files (x86)\Puppet 
 Labs\Puppet\facter\lib\facter\util\ as that was the only resolution.rb I 
 could find)  We do not use cygwin or msys on this system.

 [0;32mFound no suitable resolves of 1 for xendomains [0m
 [0;32mvalue for xendomains is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux_mode [0m
 [0;32mvalue for selinux_mode is still nil [0m
 [0;32mvalue for netmask_teredo_tunneling_pseudo_interface is still nil [0m
 [0;32mFound no suitable resolves of 1 for vlans [0m
 [0;32mvalue for vlans is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux_config_policy [0m
 [0;32mvalue for selinux_config_policy is still nil [0m
 [0;32mFound no suitable resolves of 1 for lsbdistcodename [0m
 [0;32mvalue for lsbdistcodename is still nil [0m
 [0;32mFound no suitable resolves of 1 for arp_loopback_pseudo_interface_1 
 [0m
 [0;32mvalue for arp_loopback_pseudo_interface_1 is still nil [0m
 [0;32mvalue for sshrsakey is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux_config_mode [0m
 [0;32mvalue for selinux_config_mode is still nil [0m
 [0;32mFound no suitable resolves of 2 for processor [0m
 [0;32mvalue for processor is still nil [0m
 [0;32mexecuting C:\Windows/system32/netsh.exe interface ipv6 show address 
 level=verbose [0m
 [0;32mFound no suitable resolves of 1 for lsbrelease [0m
 [0;32mvalue for lsbrelease is still nil [0m
 [0;32mvalue for macaddress_teredo_tunneling_pseudo_interface is still nil 
 [0m
 [0;32mvalue for macaddress_local_area_connection is still nil [0m
 [0;32mvalue for macaddress_loopback_pseudo_interface_1 is still nil [0m
 [0;32mvalue for sshecdsakey is still nil [0m
 architecture = x64
 dir = C:\Program Files (x86)\Puppet Labs\Puppet\facter
 domain = local.currensee.com
 env_windows_installdir = C:\Program Files (x86)\Puppet Labs\Puppet
 facterversion = 1.6.14
 fqdn = mt4-mgr-qaprod.local.currensee.com
 hardwaremodel = x64
 hostname = mt4-mgr-qaprod
 id = mt4-mgr-qaprod\administrator
 interfaces = 
 Loopback_Pseudo_Interface_1,Local_Area_Connection,Teredo_Tunneling_Pseudo_Interface
 ipaddress = 192.168.5.75
 ipaddress6 = 2001:0:9d38:6ab8:3d:37bb:3f57:fab4
 ipaddress6_teredo_tunneling_pseudo_interface = 
 2001:0:9d38:6ab8:3d:37bb:3f57:fab4
 ipaddress_local_area_connection = 192.168.5.75
 ipaddress_loopback_pseudo_interface_1 = 127.0.0.1
 kernel = windows
 kernelmajversion = 6.1
 kernelrelease = 6.1.7600
 kernelversion = 6.1.7600
 macaddress = B8:AC:6F:B6:22:F9
 manufacturer = Dell Inc.
 memoryfree = 1.98 GB
 memorysize = 3.97 GB
 memorytotal = 3.97 GB
 netmask_local_area_connection = 255.255.255.0
 netmask_loopback_pseudo_interface_1 = 255.0.0.0
 network_local_area_connection = 192.168.5.0
 network_loopback_pseudo_interface_1 = 127.0.0.0
 operatingsystem = windows
 operatingsystemrelease = 6.1.7600
 osfamily = windows
 path = C:\Program Files (x86)\Puppet Labs\Puppet\puppet\bin;C:\Program 
 Files (x86)\Puppet Labs\Puppet\facter\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\ruby\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\tools\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\puppet\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\facter\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\ruby\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\tools\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program
  
 Files\TortoiseSVN\bin;c:\Program Files\SlikSvn\bin
 physicalprocessorcount = 1
 processor0 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processor1 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processor2 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processor3 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processorcount = 4
 productname = Vostro 230   
 ps = tasklist.exe
 puppetversion = 2.7.20
 rubysitedir = C:/Program Files (x86)/Puppet 
 Labs/Puppet/sys/ruby/lib/ruby/site_ruby/1.8
 rubyversion = 1.8.7
 serialnumber = 9CH3KM1
 timezone = Morocco Standard Time
 uptime = 3 days
 uptime_days = 3
 uptime_hours = 77
 uptime_seconds = 279298
 [0;32mexecuting C:\Windows\system32\arp.EXE -a [0m
 [0;32mNot an EC2 host [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for 

Re: [Puppet Users] How to manage one line in a file by puppet

2013-01-04 Thread Stephen Jahl
 Hi,
 
 I want to write a puppet module for xen on Debian. This module will need
 to manage one line in the file /etc/default/grub, namely the line
 starting with GRUB_CMDLINE_XEN=. Currently I want to leave the rest of
 the file untouched.
 
 Which would be the best way to do this?
 

Would the file_line resource from the puppetlabs stdlib do what you
want?

http://puppetlabs.com/blog/module-of-the-week-puppetlabsstdlib-puppet-labs-standard-library/

-Steve

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How to manage one line in a file by puppet

2013-01-04 Thread Roman Shaposhnik
Hi!

On Fri, Jan 4, 2013 at 9:46 AM, Andreas Hilboll li...@hilboll.de wrote:
 Hi,

 I want to write a puppet module for xen on Debian. This module will need
 to manage one line in the file /etc/default/grub, namely the line
 starting with GRUB_CMDLINE_XEN=. Currently I want to leave the rest of
 the file untouched.

 Which would be the best way to do this?

 I see two options:

There's an extra option involving augeas that may work for you:
http://projects.puppetlabs.com/projects/1/wiki/puppet_augeas

Thanks,
Roman.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How to manage one line in a file by puppet

2013-01-04 Thread Dan White
http://docs.puppetlabs.com/references/latest/type.html#augeas

http://forge.puppetlabs.com/puppetlabs/stdlib (file_line with match parameter)


“Sometimes I think the surest sign that intelligent life exists elsewhere in 
the universe is that none of it has tried to contact us.”
Bill Waterson (Calvin  Hobbes)

- Original Message -
From: Andreas Hilboll li...@hilboll.de
To: Puppet Users puppet-users@googlegroups.com
Sent: Friday, January 4, 2013 12:46:34 PM
Subject: [Puppet Users] How to manage one line in a file by puppet

Hi,

I want to write a puppet module for xen on Debian. This module will need
to manage one line in the file /etc/default/grub, namely the line
starting with GRUB_CMDLINE_XEN=. Currently I want to leave the rest of
the file untouched.

Which would be the best way to do this?

I see two options:

a) Do some `sed` magic on the file in a `exec` call. Downside: puppet
won't notice when the line gets manually changed.

b) Have some support for sections inside files, like this:

[... part of file untouched by puppet ...]
###
# BEGIN MANAGED BY PUPPET: IDENTIFIEROFPUPPETRESOURCE
###
GRUB_CMDLINE_XEN='my options'
###
# END MANAGED BY PUPPET: IDENTIFIEROFPUPPETRESOURCE
###
[... rest of file untouched by puppet ...]

Is there support for something like this?

Cheers, Andreas.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How to manage one line in a file by puppet

2013-01-04 Thread Jerald Sheets
I'm doing this with the augeas piece like so:

augeas { 'make_grub_verbose':
  context = '/files/etc/grub.conf',
  changes = [
'rm hiddenmenu',
'rm splashimage',
 ],
   }

You should be able to use those features as you like.


--Jerald


On Jan 4, 2013, at 12:46 PM, Andreas Hilboll li...@hilboll.de wrote:

 Hi,
 
 I want to write a puppet module for xen on Debian. This module will need
 to manage one line in the file /etc/default/grub, namely the line
 starting with GRUB_CMDLINE_XEN=. Currently I want to leave the rest of
 the file untouched.
 
 Which would be the best way to do this?
 
 I see two options:
 
 a) Do some `sed` magic on the file in a `exec` call. Downside: puppet
 won't notice when the line gets manually changed.
 
 b) Have some support for sections inside files, like this:
 
 [... part of file untouched by puppet ...]
 ###
 # BEGIN MANAGED BY PUPPET: IDENTIFIEROFPUPPETRESOURCE
 ###
 GRUB_CMDLINE_XEN='my options'
 ###
 # END MANAGED BY PUPPET: IDENTIFIEROFPUPPETRESOURCE
 ###
 [... rest of file untouched by puppet ...]
 
 Is there support for something like this?
 
 Cheers, Andreas.
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Puppet Users group.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to 
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/puppet-users?hl=en.
 

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] How to manage one line in a file by puppet

2013-01-04 Thread Andreas Hilboll
Thanks guys, you're amazing :) While augeas looks like a powerful tool,
I went for the quick'n'easy file_line resource, with a match parameter
to ensure the parameter isn't set multiple times.

Cheers, have a nice weekend!
Andreas.

Am 04.01.2013 20:06, schrieb Stephen Jahl:
 Hi,

 I want to write a puppet module for xen on Debian. This module will need
 to manage one line in the file /etc/default/grub, namely the line
 starting with GRUB_CMDLINE_XEN=. Currently I want to leave the rest of
 the file untouched.

 Which would be the best way to do this?

 
 Would the file_line resource from the puppetlabs stdlib do what you
 want?
 
 http://puppetlabs.com/blog/module-of-the-week-puppetlabsstdlib-puppet-labs-standard-library/
 
 -Steve
 

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Puppet3 CSW packages for Solaris

2013-01-04 Thread Phips
Hey Alex,

Thanks - I've known for a long time the SMF manifests aren't right, but the 
CSW build process has made it hard to resolve. This is good motivation to 
finally sort it properly.

I'll post a note when it's sorted.

--Mark

On Thursday, January 3, 2013 12:39:52 AM UTC, Alex Box wrote:

 Mark,

 Been using CSWpuppet3 packages for a few weeks now, thanks very much.

 I have found the client SMF manifest needs to be updated to reflect the 
 new invocation (puppet agent vs puppetd):

 svccfg delete cswpuppetmasterd

 cat EOF | svccfg import -

 ?xml version='1.0'?

 !DOCTYPE service_bundle SYSTEM 
 '/usr/share/lib/xml/dtd/service_bundle.dtd.1'

 service_bundle type='manifest' name='export'

   service name='network/cswpuppetmasterd' type='service' version='0'

 single_instance/

 dependency name='fs' grouping='require_all' restart_on='none' 
 type='service'

   service_fmri value='svc:/system/filesystem/local'/

 /dependency

 dependency name='net' grouping='require_all' restart_on='none' 
 type='service'

   service_fmri value='svc:/network/loopback'/

 /dependency

 exec_method name='start' type='method' exec='/opt/csw/bin/puppet 
 master' timeout_seconds='120'

   method_context/

 /exec_method

 exec_method name='stop' type='method' exec=':kill -SIGTERM' 
 timeout_seconds='60'

   method_context/

 /exec_method

 exec_method name='restart' type='method' exec=':kill -SIGHUP' 
 timeout_seconds='180'

   method_context/

 /exec_method

 instance name='default' enabled='true'

   property_group name='general' type='framework'

 propval name='package' type='astring' value='CSWpuppetmaster3'/

   /property_group

 /instance

   /service

 /service_bundle

 EOF


-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/ntGp-hhgNg8J.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Hiera hashes and arrays in ERB templates

2013-01-04 Thread jcbollinger


On Friday, January 4, 2013 9:11:28 AM UTC-6, Andy Taylor wrote:

 Hi,

 I'm trying to build a module for haproxy which fetches all the 
 configuration data from Hiera to populate the haproxy config file. I've run 
 into a number of issues though when I try to use hashes. Ideally, I want to 
 use something like this:

 haproxy_listeners :
  cluster1 :
   ip : '192.168.0.2'
   port : '80'
   servers : 
server1 :
 ip : '192.168.0.3'
 port : '8080'

 So a hash of clusters with each cluster containing a nested hash of 
 servers. Is this possible with Hiera/ERB? It's easy enough to iterate over 
 the first hash, but I can't work out how to extract the contents of the 
 nested hash. Or I might just be approaching this in entirely the wrong 
 way... Any help would be much appreciated.


The data can be expressed in YAML, loaded into a Puppet variable via Hiera, 
and processed in an ERB template to construct your file.  In other words, 
yes, it is possible.

May I ask, however, what the advantage is to encoding the data in YAML and 
then transcoding it into the haproxy configuration language?  I mean, if 
you also use bits and pieces of that object elsewhere in your manifests 
then perhaps it makes sense, but if all you want to do with it is generate 
the config file then I don't see the point.  Why not just serve up the 
config as a static or mostly-static file?

Leaving aside the question of merits of your design,
   
   - Note that your example data are a quadruply-nested hash, not just a 
   doubly-nested one as you say.  You have a hash of clusters, each of which 
   is a hash itself and contains a third hash, each of whose values is *
   another* hash.
   - The same Ruby mechanisms that allow your template to iterate and 
   otherwise inspect the outer hash also work for the inner ones.
   - Perhaps, though, you are tripping over the fact that the values in 
   your outer hash are of uniform type and meaning, whereas the values in the 
   next-level hash are of varying type and meaning.  You probably don't 
   actually want to iterate the second-level hash; instead, you want to 
   retrieve specific values from it by key.

So, you might do something of this general form (not intended to resemble 
an actual haproxy configuration file):

haproxy.conf.erb:

% @clusters.each_pair | cluster, properties | { -%
cluster name=%= cluster %
  ip=%= properties['ip'] %
  port=%= properties['port'] %
  
%   properties['servers'].each_pair | server, server_props | { -%
  server name=%= server %
ip=%= server_props['ip'] %
port=%= server_props['port'] %
/
%   } -%
/cluster
% } -%


Once corrected for the inevitable typos, that should produce output similar 
to
cluster name=cluster1
  ip=192.168.0.2
  port=80
  
  server name=server1
ip=192.168.0.3
port=8080
/
/cluster


John

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/uZSpX_tBuM8J.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Windows Puppet Agent Hangs on Run

2013-01-04 Thread Josh Cooper
On Friday, January 4, 2013 11:01:00 AM UTC-8, phundisk wrote:

 Can anyone make sense of the output below?  I am still experiencing this 
 error.  Does this require any configuration change on the puppet server?

 On Friday, December 21, 2012 4:45:30 PM UTC-5, phundisk wrote:

 Hi Josh!

 Making the changes and running the command I got the following... (I made 
 the change in C:\Program Files (x86)\Puppet 
 Labs\Puppet\facter\lib\facter\util\ as that was the only resolution.rb I 
 could find)  We do not use cygwin or msys on this system.

 [0;32mFound no suitable resolves of 1 for xendomains [0m
 [0;32mvalue for xendomains is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux_mode [0m
 [0;32mvalue for selinux_mode is still nil [0m
 [0;32mvalue for netmask_teredo_tunneling_pseudo_interface is still nil [0m
 [0;32mFound no suitable resolves of 1 for vlans [0m
 [0;32mvalue for vlans is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux_config_policy [0m
 [0;32mvalue for selinux_config_policy is still nil [0m
 [0;32mFound no suitable resolves of 1 for lsbdistcodename [0m
 [0;32mvalue for lsbdistcodename is still nil [0m
 [0;32mFound no suitable resolves of 1 for arp_loopback_pseudo_interface_1 
 [0m
 [0;32mvalue for arp_loopback_pseudo_interface_1 is still nil [0m
 [0;32mvalue for sshrsakey is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux is still nil [0m
 [0;32mFound no suitable resolves of 1 for selinux_config_mode [0m
 [0;32mvalue for selinux_config_mode is still nil [0m
 [0;32mFound no suitable resolves of 2 for processor [0m
 [0;32mvalue for processor is still nil [0m
 [0;32mexecuting C:\Windows/system32/netsh.exe interface ipv6 show address 
 level=verbose [0m
 [0;32mFound no suitable resolves of 1 for lsbrelease [0m
 [0;32mvalue for lsbrelease is still nil [0m
 [0;32mvalue for macaddress_teredo_tunneling_pseudo_interface is still nil 
 [0m
 [0;32mvalue for macaddress_local_area_connection is still nil [0m
 [0;32mvalue for macaddress_loopback_pseudo_interface_1 is still nil [0m
 [0;32mvalue for sshecdsakey is still nil [0m
 architecture = x64
 dir = C:\Program Files (x86)\Puppet Labs\Puppet\facter
 domain = local.currensee.com
 env_windows_installdir = C:\Program Files (x86)\Puppet Labs\Puppet
 facterversion = 1.6.14
 fqdn = mt4-mgr-qaprod.local.currensee.com
 hardwaremodel = x64
 hostname = mt4-mgr-qaprod
 id = mt4-mgr-qaprod\administrator
 interfaces = 
 Loopback_Pseudo_Interface_1,Local_Area_Connection,Teredo_Tunneling_Pseudo_Interface
 ipaddress = 192.168.5.75
 ipaddress6 = 2001:0:9d38:6ab8:3d:37bb:3f57:fab4
 ipaddress6_teredo_tunneling_pseudo_interface = 
 2001:0:9d38:6ab8:3d:37bb:3f57:fab4
 ipaddress_local_area_connection = 192.168.5.75
 ipaddress_loopback_pseudo_interface_1 = 127.0.0.1
 kernel = windows
 kernelmajversion = 6.1
 kernelrelease = 6.1.7600
 kernelversion = 6.1.7600
 macaddress = B8:AC:6F:B6:22:F9
 manufacturer = Dell Inc.
 memoryfree = 1.98 GB
 memorysize = 3.97 GB
 memorytotal = 3.97 GB
 netmask_local_area_connection = 255.255.255.0
 netmask_loopback_pseudo_interface_1 = 255.0.0.0
 network_local_area_connection = 192.168.5.0
 network_loopback_pseudo_interface_1 = 127.0.0.0
 operatingsystem = windows
 operatingsystemrelease = 6.1.7600
 osfamily = windows
 path = C:\Program Files (x86)\Puppet Labs\Puppet\puppet\bin;C:\Program 
 Files (x86)\Puppet Labs\Puppet\facter\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\ruby\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\tools\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\puppet\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\facter\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\ruby\bin;C:\Program Files (x86)\Puppet 
 Labs\Puppet\sys\tools\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program
  
 Files\TortoiseSVN\bin;c:\Program Files\SlikSvn\bin
 physicalprocessorcount = 1
 processor0 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processor1 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processor2 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processor3 = Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
 processorcount = 4
 productname = Vostro 230   
 ps = tasklist.exe
 puppetversion = 2.7.20
 rubysitedir = C:/Program Files (x86)/Puppet 
 Labs/Puppet/sys/ruby/lib/ruby/site_ruby/1.8
 rubyversion = 1.8.7
 serialnumber = 9CH3KM1
 timezone = Morocco Standard Time
 uptime = 3 days
 uptime_days = 3
 uptime_hours = 77
 uptime_seconds = 279298
 [0;32mexecuting C:\Windows\system32\arp.EXE -a [0m
 [0;32mNot an EC2 host [0m
 [0;32mFound no suitable resolves of 1 for selinux [0m
 [0;32mvalue for selinux