Hi All, I''m new to puppet and I''m having some difficulty enabling and disabling yum repositories on an as needed basis and I was wondering if you all might be able to provide me with some assistance. I''ve been able to get puppet to configure a yum repository, I''m going to use EPEL as an example here but I''d like it for all, by creating a class called epel.pp containing class epel { yumrepo { "epel": descr => "Extra Packages for Enterprise Linux \$releasever - \$basearch", baseurl => "http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/\$releasever/\$basearch", gpgcheck => 1, gpgkey => "http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/RPM-GPG-KEY-EPEL", enabled=0 } } and it does create and populate the /etc/yum.repos.d/epel.repo file with this information. Now I want to be able to install ganglia-gmond automatically from this repository but I can''t figure out how to enable and disable the repo afterwards? Can anyone please provide an example of how something like this may be accomplished? -- James A. Peltier IT Services - Research Computing Group Simon Fraser University - Burnaby Campus Phone : 778-782-6573 Fax : 778-782-3045 E-Mail : jpeltier@sfu.ca Website : http://www.sfu.ca/itservices http://blogs.sfu.ca/people/jpeltier -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Jun 24, 2011, at 11:48 AM, James A. Peltier wrote:> Hi All, > > I''m new to puppet and I''m having some difficulty enabling and disabling yum repositories on an as needed basis and I was wondering if you all might be able to provide me with some assistance. I''ve been able to get puppet to configure a yum repository, I''m going to use EPEL as an example here but I''d like it for all, by creating a class called epel.pp containing > > class epel { > yumrepo { "epel": descr => "Extra Packages for Enterprise Linux \$releasever - \$basearch", baseurl => "http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/\$releasever/\$basearch", gpgcheck => 1, gpgkey => "http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/RPM-GPG-KEY-EPEL", enabled=0 } > } > > and it does create and populate the /etc/yum.repos.d/epel.repo file with this information. Now I want to be able to install ganglia-gmond automatically from this repository but I can''t figure out how to enable and disable the repo afterwards? Can anyone please provide an example of how something like this may be accomplished?---- I''ve been at this for less than a week and primarily concentrating on ubuntu, not RHEL/CentOS so take this with a grain of salt You have to be careful when installing packages from another repo but generally, you just keep the EPEL repo disabled and instead of using the built-in package command, you would want to ''exec'' something like... exec(''/usr/bin/yum --enablerepo=epel install -y ganglia-gmond'') and I would also note that you have to ensure that the rpm-gpg key is installed for the epel repo BEFORE that command is executed - I believe you already provided the gpg-key URL to us. something like this should work (adapt for rpm/yum and note that rpm stores keys in /etc/pki/rpm-gpg)... class apt { package { "apt": ensure => installed, } file{"/etc/apt/sources.list": ensure => present, owner => root, group => root, mode => 0444, content => template("apt/sources.list.erb"), require => Package["apt"], } exec{"/usr/bin/apt-get update": refreshonly => true, subscribe => File["/etc/apt/sources.list"], require => File["/etc/apt/sources.list"], } # MongoDB Key apt::key { "7F0CEB10": keyid => "7F0CEB10", ensure => present, } } define apt::key($keyid, $ensure, $keyserver = "keyserver.ubuntu.com") { case $ensure { present: { exec { "Import $keyid to apt keystore": path => "/bin:/usr/bin", environment => "HOME=/root", command => "gpg --keyserver $keyserver --recv-keys $keyid && gpg --export --armor $keyid | apt-key add -", user => "root", group => "root", unless => "apt-key list | grep $keyid", logoutput => on_failure, } } absent: { exec { "Remove $keyid from apt keystore": path => "/bin:/usr/bin", environment => "HOME=/root", command => "apt-key del $keyid", user => "root", group => "root", onlyif => "apt-key list | grep $keyid", } } default: { fail "Invalid ''ensure'' value ''$ensure'' for apt::key" } } } -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
There''s an open bug concerning this very issue, in regards to being able to specify which repos to use when installing an rpm using the package resource. http://projects.puppetlabs.com/issues/2247 -- Nathan Clemons http://www.livemocha.com The worlds largest online language learning community On Fri, Jun 24, 2011 at 12:27 PM, Craig White <craig.white@ttiltd.com>wrote:> > On Jun 24, 2011, at 11:48 AM, James A. Peltier wrote: > > > Hi All, > > > > I''m new to puppet and I''m having some difficulty enabling and disabling > yum repositories on an as needed basis and I was wondering if you all might > be able to provide me with some assistance. I''ve been able to get puppet to > configure a yum repository, I''m going to use EPEL as an example here but I''d > like it for all, by creating a class called epel.pp containing > > > > class epel { > > yumrepo { "epel": descr => "Extra Packages for Enterprise Linux > \$releasever - \$basearch", baseurl => " > http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/\$releasever/\$basearch", > gpgcheck => 1, gpgkey => " > http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/RPM-GPG-KEY-EPEL", > enabled=0 } > > } > > > > and it does create and populate the /etc/yum.repos.d/epel.repo file with > this information. Now I want to be able to install ganglia-gmond > automatically from this repository but I can''t figure out how to enable and > disable the repo afterwards? Can anyone please provide an example of how > something like this may be accomplished? > ---- > I''ve been at this for less than a week and primarily concentrating on > ubuntu, not RHEL/CentOS so take this with a grain of salt > > You have to be careful when installing packages from another repo but > generally, you just keep the EPEL repo disabled and instead of using the > built-in package command, you would want to ''exec'' something like... > > exec(''/usr/bin/yum --enablerepo=epel install -y ganglia-gmond'') and I would > also note that you have to ensure that the rpm-gpg key is installed for the > epel repo BEFORE that command is executed - I believe you already provided > the gpg-key URL to us. > > something like this should work (adapt for rpm/yum and note that rpm stores > keys in /etc/pki/rpm-gpg)... > > class apt { > package { "apt": > ensure => installed, > } > file{"/etc/apt/sources.list": > ensure => present, > owner => root, > group => root, > mode => 0444, > content => template("apt/sources.list.erb"), > require => Package["apt"], > } > exec{"/usr/bin/apt-get update": > refreshonly => true, > subscribe => File["/etc/apt/sources.list"], > require => File["/etc/apt/sources.list"], > } > # MongoDB Key > apt::key { "7F0CEB10": > keyid => "7F0CEB10", > ensure => present, > } > } > define apt::key($keyid, $ensure, $keyserver = "keyserver.ubuntu.com") { > case $ensure { > present: { > exec { "Import $keyid to apt keystore": > path => "/bin:/usr/bin", > environment => "HOME=/root", > command => "gpg --keyserver $keyserver --recv-keys $keyid && gpg > --export --armor $keyid | apt-key add -", > user => "root", > group => "root", > unless => "apt-key list | grep $keyid", > logoutput => on_failure, > } > } > absent: { > exec { "Remove $keyid from apt keystore": > path => "/bin:/usr/bin", > environment => "HOME=/root", > command => "apt-key del $keyid", > user => "root", > group => "root", > onlyif => "apt-key list | grep $keyid", > } > } > default: { > fail "Invalid ''ensure'' value ''$ensure'' for apt::key" > } > } > } > > -- > 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+unsubscribe@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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Fri, Jun 24, 2011 at 3:37 PM, Nathan Clemons <nathan@livemocha.com>wrote:> There''s an open bug concerning this very issue, in regards to being able to > specify which repos to use when installing an rpm using the package > resource. > > http://projects.puppetlabs.com/issues/2247 > > -- > Nathan Clemons > http://www.livemocha.com > The worlds largest online language learning community > > > > On Fri, Jun 24, 2011 at 12:27 PM, Craig White <craig.white@ttiltd.com>wrote: > >> >> On Jun 24, 2011, at 11:48 AM, James A. Peltier wrote: >> >> > Hi All, >> > >> > I''m new to puppet and I''m having some difficulty enabling and disabling >> yum repositories on an as needed basis and I was wondering if you all might >> be able to provide me with some assistance. I''ve been able to get puppet to >> configure a yum repository, I''m going to use EPEL as an example here but I''d >> like it for all, by creating a class called epel.pp containing >> > >> > class epel { >> > yumrepo { "epel": descr => "Extra Packages for Enterprise Linux >> \$releasever - \$basearch", baseurl => " >> http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/\$releasever/\$basearch", >> gpgcheck => 1, gpgkey => " >> http://mirror.its.sfu.ca/mirror/CentOS-Third-Party/epel/RPM-GPG-KEY-EPEL", >> enabled=0 } >> > } >> > >> > and it does create and populate the /etc/yum.repos.d/epel.repo file with >> this information. Now I want to be able to install ganglia-gmond >> automatically from this repository but I can''t figure out how to enable and >> disable the repo afterwards? Can anyone please provide an example of how >> something like this may be accomplished? >> ---- >> I''ve been at this for less than a week and primarily concentrating on >> ubuntu, not RHEL/CentOS so take this with a grain of salt >> >> You have to be careful when installing packages from another repo but >> generally, you just keep the EPEL repo disabled and instead of using the >> built-in package command, you would want to ''exec'' something like... >> >> exec(''/usr/bin/yum --enablerepo=epel install -y ganglia-gmond'') and I >> would also note that you have to ensure that the rpm-gpg key is installed >> for the epel repo BEFORE that command is executed - I believe you already >> provided the gpg-key URL to us. >> >> something like this should work (adapt for rpm/yum and note that rpm >> stores keys in /etc/pki/rpm-gpg)... >> >> class apt { >> package { "apt": >> ensure => installed, >> } >> file{"/etc/apt/sources.list": >> ensure => present, >> owner => root, >> group => root, >> mode => 0444, >> content => template("apt/sources.list.erb"), >> require => Package["apt"], >> } >> exec{"/usr/bin/apt-get update": >> refreshonly => true, >> subscribe => File["/etc/apt/sources.list"], >> require => File["/etc/apt/sources.list"], >> } >> # MongoDB Key >> apt::key { "7F0CEB10": >> keyid => "7F0CEB10", >> ensure => present, >> } >> } >> define apt::key($keyid, $ensure, $keyserver = "keyserver.ubuntu.com") { >> case $ensure { >> present: { >> exec { "Import $keyid to apt keystore": >> path => "/bin:/usr/bin", >> environment => "HOME=/root", >> command => "gpg --keyserver $keyserver --recv-keys $keyid && >> gpg --export --armor $keyid | apt-key add -", >> user => "root", >> group => "root", >> unless => "apt-key list | grep $keyid", >> logoutput => on_failure, >> } >> } >> absent: { >> exec { "Remove $keyid from apt keystore": >> path => "/bin:/usr/bin", >> environment => "HOME=/root", >> command => "apt-key del $keyid", >> user => "root", >> group => "root", >> onlyif => "apt-key list | grep $keyid", >> } >> } >> default: { >> fail "Invalid ''ensure'' value ''$ensure'' for apt::key" >> } >> } >> } >> >> -- >> 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+unsubscribe@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+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >Hi, Consider creating internal mirrors and internal repos (created and rebuilt *.src.rpm repos). The benefits are manifold (management, bandwidth, security). -- Cheers, Steven ----------------------- Steven Acres UNIX/Linux System Administrator -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.