voxpupuli / puppet-augeas

Helper for using augeas with puppet
Apache License 2.0
43 stars 82 forks source link

Augeas fails after upgrading augeas packages during same puppetrun #48

Closed varac closed 3 years ago

varac commented 9 years ago

We need to use augeas from wheezy-backport.

using this simple manifest:


file {
  '/etc/apt/sorces.list':
    content => 'deb http://httpredir.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://httpredir.debian.org/debian/ wheezy-backports main contrib non-free';
  '/etc/apt/preferences.d/augeas':
    content => 'Package: augeas-lenses augeas-tools libaugeas0 libaugeas-ruby*
Pin: release a=wheezy-backports
Pin-Priority: 999';
}

exec { 'apt_update':
  command     => '/usr/bin/apt-get update',
  refreshonly => true,
  subscribe   => File['/etc/apt/sorces.list']
}

class {'augeas':
  version => 'latest'
}

Exec['apt_update'] -> Package <| |> -> Augeas <| |>

augeas {'logrotate_leap_deploy':
  context => '/files/etc/logrotate.d/leap_deploy/rule',
  changes => [ 'set file /var/log/leap/deploy.log',
    'set rotate 5' ],
}

fails when it needs to upgrade:

root@leap-wheezy:/vagrant/dev/augeas-test# rm /etc/logrotate.d/leap_deploy
rm: cannot remove `/etc/logrotate.d/leap_deploy': No such file or directory
root@leap-wheezy:/vagrant/dev/augeas-test# apt-get install augeas-lenses=0.10.0-1 augeas-tools=0.10.0-1 libaugeas0=0.10.0-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  augeas-doc
The following packages will be DOWNGRADED:
  augeas-lenses augeas-tools libaugeas0
0 upgraded, 0 newly installed, 3 downgraded, 0 to remove and 1 not upgraded.
Need to get 0 B/426 kB of archives.
After this operation, 670 kB disk space will be freed.
Do you want to continue [Y/n]? y
dpkg: warning: downgrading libaugeas0 from 1.2.0-0.2~bpo70+2 to 0.10.0-1
(Reading database ... 46334 files and directories currently installed.)
Preparing to replace libaugeas0 1.2.0-0.2~bpo70+2 (using .../libaugeas0_0.10.0-1_amd64.deb) ...
Unpacking replacement libaugeas0 ...
dpkg: warning: downgrading augeas-lenses from 1.2.0-0.2~bpo70+2 to 0.10.0-1
Preparing to replace augeas-lenses 1.2.0-0.2~bpo70+2 (using .../augeas-lenses_0.10.0-1_all.deb) ...
Unpacking replacement augeas-lenses ...
dpkg: warning: downgrading augeas-tools from 1.2.0-0.2~bpo70+2 to 0.10.0-1
Preparing to replace augeas-tools 1.2.0-0.2~bpo70+2 (using .../augeas-tools_0.10.0-1_amd64.deb) ...
Unpacking replacement augeas-tools ...
Processing triggers for man-db ...
Setting up augeas-lenses (0.10.0-1) ...
Setting up libaugeas0 (0.10.0-1) ...
Setting up augeas-tools (0.10.0-1) ...

root@leap-wheezy:/vagrant/dev/augeas-test# dpkg -l|grep auge
ii  augeas-lenses                      0.10.0-1                      all          Set of lenses needed by libaugeas0 to parse config files
ii  augeas-tools                       0.10.0-1                      amd64        Augeas command line tools
ii  libaugeas-ruby1.8                  0.4.1-1.1                     amd64        Augeas bindings for the Ruby language
ii  libaugeas0                         0.10.0-1                      amd64        Augeas configuration editing library and API
root@leap-wheezy:/vagrant/dev/augeas-test# puppet apply --modulepath ../../shared-modules/ test.pp
notice: /Stage[main]/Augeas::Packages/Package[augeas-lenses]/ensure: ensure changed '0.10.0-1' to '1.2.0-0.2~bpo70+2'
notice: /Stage[main]/Augeas::Packages/Package[augeas-tools]/ensure: ensure changed '0.10.0-1' to '1.2.0-0.2~bpo70+2'
notice: /Stage[main]/Augeas::Packages/Package[libaugeas0]/ensure: ensure changed '0.10.0-1' to '1.2.0-0.2~bpo70+2'
err: /Stage[main]//Augeas[logrotate_leap_deploy]: Could not evaluate: unknown error - Failed to initialize Augeas
notice: Finished catalog run in 4.71 seconds

BUT directly after that, it succeeds:

root@leap-wheezy:/vagrant/dev/augeas-test# dpkg -l|grep augeas
ii  augeas-lenses                      1.2.0-0.2~bpo70+2             all          Set of lenses needed by libaugeas0 to parse config files
ii  augeas-tools                       1.2.0-0.2~bpo70+2             amd64        Augeas command line tools
ii  libaugeas-ruby1.8                  0.4.1-1.1                     amd64        Augeas bindings for the Ruby language
ii  libaugeas0                         1.2.0-0.2~bpo70+2             amd64        Augeas configuration editing library and API

root@leap-wheezy:/vagrant/dev/augeas-test# puppet apply --modulepath ../../shared-modules/ test.pp
notice: /Stage[main]//Augeas[logrotate_leap_deploy]/returns: executed successfully
notice: Finished catalog run in 0.77 seconds
varac commented 9 years ago

This is debug output:

root@leap-wheezy:/vagrant/dev/augeas-test# puppet apply --verbose --debug --modulepath ../../shared-modules/ test.pp                                                                                               
info: Loading facts in ../../shared-modules//concat/lib/facter/concat_basedir.rb
info: Loading facts in ../../shared-modules//sshd/lib/facter/ssh_version.rb
info: Loading facts in ../../shared-modules//apache/lib/facter/apache_version.rb
info: Loading facts in ../../shared-modules//mysql/lib/facter/mysql_version.rb
info: Loading facts in ../../shared-modules//mysql/lib/facter/mysql_exists.rb
info: Loading facts in ../../shared-modules//apt/lib/facter/apt_running.rb
info: Loading facts in ../../shared-modules//munin/lib/facter/interfaces.rb
info: Loading facts in ../../shared-modules//munin/lib/facter/acpi_available.rb
info: Loading facts in ../../shared-modules//ekeyd/lib/facter/ekeyd.rb
info: Loading facts in ../../shared-modules//strongswan/lib/facter/strongswan_ips.rb
info: Loading facts in ../../shared-modules//strongswan/lib/facter/strongswan_cert.rb
info: Loading facts in ../../shared-modules//monkeysphere/lib/facter/monkeysphere.rb
debug: importing '/vagrant/shared-modules/augeas/manifests/init.pp' in environment production
debug: Automatically imported augeas from augeas into production
debug: importing '/vagrant/shared-modules/augeas/manifests/params.pp' in environment production
debug: Automatically imported augeas::params from augeas/params into production
debug: importing '/vagrant/shared-modules/augeas/manifests/packages.pp' in environment production
debug: Automatically imported augeas::packages from augeas/packages into production
debug: importing '/vagrant/shared-modules/augeas/manifests/files.pp' in environment production
debug: Automatically imported augeas::files from augeas/files into production
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Adding relationship from Class[Augeas::Packages] to Class[Augeas::Files] with 'before'
debug: Adding relationship from Class[Augeas::Files] to Class[Augeas] with 'before'
debug: Adding relationship from Package[ruby-augeas] to Augeas[logrotate_leap_deploy] with 'before'
debug: Adding relationship from Package[ruby-augeas] to Augeas[logrotate_leap_deploy] with 'before'
debug: Adding relationship from Package[augeas-lenses] to Augeas[logrotate_leap_deploy] with 'before'
debug: Adding relationship from Package[libaugeas0] to Augeas[logrotate_leap_deploy] with 'before'
debug: Adding relationship from Package[augeas-tools] to Augeas[logrotate_leap_deploy] with 'before'
debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist
debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist
debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_info does not exist
debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist
debug: Puppet::Type::Package::ProviderPorts: file /usr/sbin/pkg_info does not exist
debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox does not exist
debug: Puppet::Type::Package::ProviderPkg: file /usr/bin/pkg does not exist
debug: Puppet::Type::Package::ProviderZypper: file /usr/bin/zypper does not exist
debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist
debug: Puppet::Type::Package::ProviderPortupgrade: file /usr/sbin/pkg_info does not exist
debug: Puppet::Type::Package::ProviderRpm: file rpm does not exist
debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/eix-update does not exist
debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_info does not exist
debug: Puppet::Type::Package::ProviderAix: file /usr/sbin/installp does not exist
debug: Puppet::Type::Package::ProviderYum: file rpm does not exist
debug: Puppet::Type::Package::ProviderSun: file /usr/bin/pkginfo does not exist
debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swlist does not exist
debug: Puppet::Type::Package::ProviderPacman: file /usr/bin/pacman does not exist
debug: Puppet::Type::Package::ProviderAptrpm: file rpm does not exist
debug: Puppet::Type::Package::ProviderNim: file /usr/sbin/nimclient does not exist
debug: Creating default schedules
debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist
debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
debug: Puppet::Type::User::ProviderPw: file pw does not exist
debug: Puppet::Type::User::ProviderLdap: true value when expecting false
debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring File[/var/lib/puppet/state]
debug: Finishing transaction 70237774392200
debug: Loaded state in 0.00 seconds
debug: Executing '/etc/puppet/etckeeper-commit-pre'
debug: Loaded state in 0.00 seconds
info: Applying configuration version '1432130383'
debug: /Stage[main]/Augeas::Packages/before: requires Class[Augeas::Files]
debug: /Stage[main]/Augeas::Files/before: requires Class[Augeas]
debug: /Stage[main]/Augeas::Packages/Package[libaugeas0]/before: requires Augeas[logrotate_leap_deploy]
debug: /Stage[main]/Augeas::Packages/Package[ruby-augeas]/before: requires Augeas[logrotate_leap_deploy]
debug: /Stage[main]/Augeas::Packages/Package[ruby-augeas]/before: requires Augeas[logrotate_leap_deploy]
debug: /Stage[main]/Augeas::Packages/Package[augeas-tools]/before: requires Augeas[logrotate_leap_deploy]
debug: /Stage[main]/Augeas::Packages/Package[augeas-lenses]/before: requires Augeas[logrotate_leap_deploy]
debug: /Stage[main]/Augeas::Files/File[/usr/share/augeas/lenses/dist]: Autorequiring File[/usr/share/augeas/lenses]
debug: /Stage[main]/Augeas::Files/File[/usr/share/augeas/lenses/tests]: Autorequiring File[/usr/share/augeas/lenses]
debug: /Schedule[daily]: Skipping device resources because running on a host
debug: /Schedule[monthly]: Skipping device resources because running on a host
debug: /Schedule[hourly]: Skipping device resources because running on a host
debug: Prefetching apt resources for package
debug: Executing '/usr/bin/dpkg-query -W --showformat '${Status} ${Package} ${Version}\n''
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/dpkg-query -W --showformat '${Status} ${Package} ${Version}\n''
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-cache policy augeas-lenses'
debug: /Stage[main]/Augeas::Packages/Package[augeas-lenses]/ensure: augeas-lenses "0.10.0-1" is installed, latest is "1.2.0-0.2~bpo70+2"
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install augeas-lenses'
notice: /Stage[main]/Augeas::Packages/Package[augeas-lenses]/ensure: ensure changed '0.10.0-1' to '1.2.0-0.2~bpo70+2'
debug: /Stage[main]/Augeas::Packages/Package[augeas-lenses]: The container Class[Augeas::Packages] will propagate my refresh event
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-cache policy augeas-tools'
debug: /Stage[main]/Augeas::Packages/Package[augeas-tools]/ensure: augeas-tools "0.10.0-1" is installed, latest is "1.2.0-0.2~bpo70+2"
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install augeas-tools'
notice: /Stage[main]/Augeas::Packages/Package[augeas-tools]/ensure: ensure changed '0.10.0-1' to '1.2.0-0.2~bpo70+2'
debug: /Stage[main]/Augeas::Packages/Package[augeas-tools]: The container Class[Augeas::Packages] will propagate my refresh event
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-cache policy libaugeas0'
debug: /Stage[main]/Augeas::Packages/Package[libaugeas0]/ensure: libaugeas0 "0.10.0-1" is installed, latest is "1.2.0-0.2~bpo70+2"
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install libaugeas0'
notice: /Stage[main]/Augeas::Packages/Package[libaugeas0]/ensure: ensure changed '0.10.0-1' to '1.2.0-0.2~bpo70+2'
debug: /Stage[main]/Augeas::Packages/Package[libaugeas0]: The container Class[Augeas::Packages] will propagate my refresh event
debug: Augeas[logrotate_leap_deploy](provider=augeas): Opening augeas with root /, lens path , flags 0
err: /Stage[main]//Augeas[logrotate_leap_deploy]: Could not evaluate: unknown error - Failed to initialize Augeas
debug: /Schedule[never]: Skipping device resources because running on a host
debug: /Schedule[weekly]: Skipping device resources because running on a host
debug: /Schedule[puppet]: Skipping device resources because running on a host
debug: Class[Augeas::Packages]: The container Stage[main] will propagate my refresh event
debug: Finishing transaction 70237774427320
debug: Storing state
debug: Stored state in 0.00 seconds
notice: Finished catalog run in 5.06 seconds
debug: Executing '/etc/puppet/etckeeper-commit-post'
debug: Finishing transaction 70237773386640
debug: Received report to process from leap-wheezy.vagrantup.com
debug: Processing report from leap-wheezy.vagrantup.com with processor Puppet::Reports::Store
stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.