FAQ
Hello All,

I'm wondering what is the canonical way of associating "specific"
versions of a module to a node? Is there a way of doing this in puppet?
Let me explain a "Use Case" of what I'm trying to accomplish:

Say we have created a puppet model called apache to manage and configure
apache webserver.
We have the apache module under version control and there are several
versions.
We use puppet to apply apache-1.0.3 across an entire "environment"
We want to be able to do a rolling upgrade across that entire
environment, where some nodes in the environment have apache-1.0.3 and
other have apache-1.1.2.

From what I understand of puppet, there is no way of associating a
specific version of a module to a specific node. The only way of doing
that would be to "embed" a version tag in the module/class name. However
that is ugly and does not work well with version control systems.

Any suggestions of to accomplish this using puppet?

Thanks
--
Mohamed Abbas

--
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+unsubscribe@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

  • Nan Liu at Mar 7, 2013 at 9:51 pm

    On Thu, Mar 7, 2013 at 12:42 PM, Mohamed Abbas wrote:

    I'm wondering what is the canonical way of associating "specific" versions
    of a module to a node? Is there a way of doing this in puppet? Let me
    explain a "Use Case" of what I'm trying to accomplish:

    Say we have created a puppet model called apache to manage and configure
    apache webserver.
    We have the apache module under version control and there are several
    versions.
    We use puppet to apply apache-1.0.3 across an entire "environment"
    We want to be able to do a rolling upgrade across that entire environment,
    where some nodes in the environment have apache-1.0.3 and other have
    apache-1.1.2.

    From what I understand of puppet, there is no way of associating a
    specific version of a module to a specific node. The only way of doing that
    would be to "embed" a version tag in the module/class name. However that is
    ugly and does not work well with version control systems.

    Any suggestions of to accomplish this using puppet?
    Github's boxen project powered by librarian-puppet, or r10k:
    https://github.com/adrienthebo/r10k are good examples using Puppetfile for
    module version control.

    Nan

    --
    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+unsubscribe@googlegroups.com.
    To post to this group, send email to puppet-users@googlegroups.com.
    Visit this group at http://groups.google.com/group/puppet-users?hl=en.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Mohamed Abbas at Mar 7, 2013 at 10:43 pm

    On 3/7/13 1:51 PM, Nan Liu wrote:
    On Thu, Mar 7, 2013 at 12:42 PM, Mohamed Abbas
    wrote:

    I'm wondering what is the canonical way of associating "specific"
    versions of a module to a node? Is there a way of doing this in
    puppet? Let me explain a "Use Case" of what I'm trying to accomplish:

    Say we have created a puppet model called apache to manage and
    configure apache webserver.
    We have the apache module under version control and there are
    several versions.
    We use puppet to apply apache-1.0.3 across an entire "environment"
    We want to be able to do a rolling upgrade across that entire
    environment, where some nodes in the environment have apache-1.0.3
    and other have apache-1.1.2.

    From what I understand of puppet, there is no way of associating a
    specific version of a module to a specific node. The only way of
    doing that would be to "embed" a version tag in the module/class
    name. However that is ugly and does not work well with version
    control systems.

    Any suggestions of to accomplish this using puppet?


    Github's boxen project powered by librarian-puppet, or r10k:
    https://github.com/adrienthebo/r10k are good examples using Puppetfile
    for module version control.
    Thanks Nan. I looked at both and they address a different
    defined-problem than the one I'm trying to address. What
    librarian-puppet and the boxen and r10k solution you mentioned allow you
    to do is(per my understanding and experience with using librarian-puppet):

    * To populate a modules sub-directory dynamically by using a
    "Puppetfile" where you can pull different modules from different
    sources and being able to specify which version to pull in. Once the
    modules directory is populated, what is available to you to use in
    Puppet is still a *single *version of that module.

    The defined-problem I'm trying to see if puppet addresses or create a
    new solution to address it:

    * Having multiple instances of a module of different version number
    available in the modules sub-directory where I can freely associate
    different 2 different nodes to differing versions of the same module.


    Thanks,
    Mohamed Abbas

    --
    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+unsubscribe@googlegroups.com.
    To post to this group, send email to puppet-users@googlegroups.com.
    Visit this group at http://groups.google.com/group/puppet-users?hl=en.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Nan Liu at Mar 8, 2013 at 1:59 am

    On Thu, Mar 7, 2013 at 2:43 PM, Mohamed Abbas wrote:

    On 3/7/13 1:51 PM, Nan Liu wrote:
    On Thu, Mar 7, 2013 at 12:42 PM, Mohamed Abbas wrote:

    I'm wondering what is the canonical way of associating "specific"
    versions of a module to a node? Is there a way of doing this in puppet? Let
    me explain a "Use Case" of what I'm trying to accomplish:

    Say we have created a puppet model called apache to manage and configure
    apache webserver.
    We have the apache module under version control and there are several
    versions.
    We use puppet to apply apache-1.0.3 across an entire "environment"
    We want to be able to do a rolling upgrade across that entire
    environment, where some nodes in the environment have apache-1.0.3 and
    other have apache-1.1.2.

    From what I understand of puppet, there is no way of associating a
    specific version of a module to a specific node. The only way of doing that
    would be to "embed" a version tag in the module/class name. However that is
    ugly and does not work well with version control systems.

    Any suggestions of to accomplish this using puppet?
    Github's boxen project powered by librarian-puppet, or r10k:
    https://github.com/adrienthebo/r10k are good examples using Puppetfile
    for module version control.


    Thanks Nan. I looked at both and they address a different defined-problem
    than the one I'm trying to address. What librarian-puppet and the boxen and
    r10k solution you mentioned allow you to do is(per my understanding and
    experience with using librarian-puppet):

    - To populate a modules sub-directory dynamically by using a
    "Puppetfile" where you can pull different modules from different sources
    and being able to specify which version to pull in. Once the modules
    directory is populated, what is available to you to use in Puppet is still
    a *single *version of that module.

    The defined-problem I'm trying to see if puppet addresses or create a new
    solution to address it:

    - Having multiple instances of a module of different version number
    available in the modules sub-directory where I can freely associate
    different 2 different nodes to differing versions of the same module.

    They are typically used to populate the master. But I'm using per system
    Puppetfile with 'puppet apply' instead. I suppose this won't meet your
    requirements if you need multiple module versions on the master to compile
    different versions per node.

    Thanks,

    Nan

    --
    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+unsubscribe@googlegroups.com.
    To post to this group, send email to puppet-users@googlegroups.com.
    Visit this group at http://groups.google.com/group/puppet-users?hl=en.
    For more options, visit https://groups.google.com/groups/opt_out.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedMar 7, '13 at 8:43p
activeMar 8, '13 at 1:59a
posts4
users2
websitepuppetlabs.com

2 users in discussion

Mohamed Abbas: 2 posts Nan Liu: 2 posts

People

Translate

site design / logo © 2022 Grokbase