Is it possible to install a solaris streams package with puppet? As some of my machines are not allowed to be a nfs client, I transfer the bunch of packages to these clients with the file type and puppet:// ... If the packages are in filesystem format there can be hundreds of files within large packages. It takes a huge amount of time to transfer all of them. So I''ve changed them into the streams format on the source, transfer them to the target and try to install. Unfortunately, installation fails for a streams package. The pkgadd cmd is slightly different for a streamspkg: pkgadd -d /path/to/pkg/mysoftwarepkg than for a filesystembased: pkgadd -d /path/to/pkg mysoftwarepkg Besides this, is there a better way to install packages on the target machine if there''s no nfs available? Something like: - check if the package is installed -> version?? - if this is not the case, transfer it th othe client (temp) - install the package - remove the pkgsource on the client But this would mean circular dependencies? cheers, frank
On May 8, 2007, at 1:30 AM, Frank Munsche wrote:> Is it possible to install a solaris streams package with puppet? > > As some of my machines are not allowed to be a nfs client, I > transfer the > bunch of packages to these clients with the file type and > puppet:// ... > If the packages are in filesystem format there can be hundreds of > files within > large packages. It takes a huge amount of time to transfer all of > them. So > I''ve changed them into the streams format on the source, transfer > them to the > target and try to install. Unfortunately, installation fails for a > streams > package. The pkgadd cmd is slightly different for a streamspkg: > > pkgadd -d /path/to/pkg/mysoftwarepkg > > than for a filesystembased: > > pkgadd -d /path/to/pkg mysoftwarepkgI assume this could be handled by adding a ''format'' parameter or something, so you could specify that you were dealing with a stream- formatted package. Can you add the package name when doing a filesystem install (i.e., could you add ''mysoftwarepkg'' after the path in the first command above)?> Besides this, is there a better way to install packages on the > target machine > if there''s no nfs available? Something like: > - check if the package is installed -> version?? > - if this is not the case, transfer it th othe client (temp) > - install the package > - remove the pkgsource on the client > > But this would mean circular dependencies?I recommend using some form of BlastWave''s pkg-get stuff, even if you don''t use their packages -- hack the script so it does exactly this. Because most package managers these days know how to pull packages down for you, I''ve made the decision not to try doing so directly. If this were really important, then it could be added, but it''s a lot of extra work, and I''m unlikely to do it of my own volition. -- The Roman Rule The one who says it cannot be done should never interrupt the one who is doing it. --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com
On 5/9/07, Luke Kanies <luke@madstop.com> wrote:> On May 8, 2007, at 1:30 AM, Frank Munsche wrote: > > > Is it possible to install a solaris streams package with puppet? > > > > As some of my machines are not allowed to be a nfs client, I > > transfer the > > bunch of packages to these clients with the file type and > > puppet:// ... > > If the packages are in filesystem format there can be hundreds of > > files within > > large packages. It takes a huge amount of time to transfer all of > > them. So > > I''ve changed them into the streams format on the source, transfer > > them to the > > target and try to install. Unfortunately, installation fails for a > > streams > > package. The pkgadd cmd is slightly different for a streamspkg: > > > > pkgadd -d /path/to/pkg/mysoftwarepkg > > > > than for a filesystembased: > > > > pkgadd -d /path/to/pkg mysoftwarepkg > > I assume this could be handled by adding a ''format'' parameter or > something, so you could specify that you were dealing with a stream- > formatted package. Can you add the package name when doing a > filesystem install (i.e., could you add ''mysoftwarepkg'' after the > path in the first command above)? >No need for a ''format'' parameter. The pkgadd syntax is not entirely correct above. To install a datastream format package the command is: pkgadd -d /path/to/pkg_datastream_file PKGname you can also fetch datastream packages via http like so: pkgadd -d http://pkgs.example.com/path/to/pkg_datastream_file PKGname To install a filesystem format package the syntax is: pkgadd -d /path/to/pkg/directory PKGname All this info is in pkgadd(1M). So in theory no changes are necessary to puppet to handle this. Though I haven''t personally verified any of this.> > Besides this, is there a better way to install packages on the > > target machine > > if there''s no nfs available? Something like: > > - check if the package is installed -> version?? > > - if this is not the case, transfer it th othe client (temp) > > - install the package > > - remove the pkgsource on the client > > > > But this would mean circular dependencies? > > I recommend using some form of BlastWave''s pkg-get stuff, even if you > don''t use their packages -- hack the script so it does exactly this. > > Because most package managers these days know how to pull packages > down for you, I''ve made the decision not to try doing so directly. > If this were really important, then it could be added, but it''s a lot > of extra work, and I''m unlikely to do it of my own volition. >No need to do this either. The package could just be pulled down as a file resource which the package resource ''requires'' or the package resource could just point at a URL.> -- > The Roman Rule > The one who says it cannot be done should never interrupt the > one who is doing it. > --------------------------------------------------------------------- > Luke Kanies | http://reductivelabs.com | http://madstop.com > > > _______________________________________________ > Puppet-users mailing list > Puppet-users@madstop.com > https://mail.madstop.com/mailman/listinfo/puppet-users >-- matthew http://wadofstuff.blogspot.com
On Thursday 10 May 2007 07:27, Matthew Flanagan wrote:> On 5/9/07, Luke Kanies <luke@madstop.com> wrote: > > On May 8, 2007, at 1:30 AM, Frank Munsche wrote: > > > Is it possible to install a solaris streams package with puppet? > > > > > > As some of my machines are not allowed to be a nfs client, I > > > transfer the > > > bunch of packages to these clients with the file type and > > > puppet:// ... > > > If the packages are in filesystem format there can be hundreds of > > > files within > > > large packages. It takes a huge amount of time to transfer all of > > > them. So > > > I''ve changed them into the streams format on the source, transfer > > > them to the > > > target and try to install. Unfortunately, installation fails for a > > > streams > > > package. The pkgadd cmd is slightly different for a streamspkg: > > > > > > pkgadd -d /path/to/pkg/mysoftwarepkg > > > > > > than for a filesystembased: > > > > > > pkgadd -d /path/to/pkg mysoftwarepkg > > > > I assume this could be handled by adding a ''format'' parameter or > > something, so you could specify that you were dealing with a stream- > > formatted package. Can you add the package name when doing a > > filesystem install (i.e., could you add ''mysoftwarepkg'' after the > > path in the first command above)? > > No need for a ''format'' parameter. The pkgadd syntax is not entirely > correct above. To install a datastream format package the command is: > > pkgadd -d /path/to/pkg_datastream_file PKGname > > you can also fetch datastream packages via http like so: > > pkgadd -d http://pkgs.example.com/path/to/pkg_datastream_file PKGname > > To install a filesystem format package the syntax is: > > pkgadd -d /path/to/pkg/directory PKGname > > All this info is in pkgadd(1M). > > So in theory no changes are necessary to puppet to handle this. Though > I haven''t personally verified any of this.You''re right. Without the pkgname after the /path/to/pkg_datastream_file the content of the pkg_datastream_file is presented in interactive mode. In general, I use a one-to-one mapping of a package to a datastream file. So there''s just one pkg to choose. I''ll try the http way you mentioned.> > > > Besides this, is there a better way to install packages on the > > > target machine > > > if there''s no nfs available? Something like: > > > - check if the package is installed -> version?? > > > - if this is not the case, transfer it th othe client (temp) > > > - install the package > > > - remove the pkgsource on the client > > > > > > But this would mean circular dependencies? > > > > I recommend using some form of BlastWave''s pkg-get stuff, even if you > > don''t use their packages -- hack the script so it does exactly this. > > > > Because most package managers these days know how to pull packages > > down for you, I''ve made the decision not to try doing so directly. > > If this were really important, then it could be added, but it''s a lot > > of extra work, and I''m unlikely to do it of my own volition. > > No need to do this either. The package could just be pulled down as a > file resource which the package resource ''requires'' or the package > resource could just point at a URL > > > -- > > The Roman Rule > > The one who says it cannot be done should never interrupt the > > one who is doing it. > > --------------------------------------------------------------------- > > Luke Kanies | http://reductivelabs.com | http://madstop.com > > > > > > _______________________________________________ > > Puppet-users mailing list > > Puppet-users@madstop.com > > https://mail.madstop.com/mailman/listinfo/puppet-users