Open thomasf1234 opened 6 years ago
Any progress? We also see this kind of error.
Hey,
i am using the following workaround at this time just for info:
class profile::yum(
Hash $config_options = {},
) {
include yum
### Config options
$config_options.each | $name, $options | {
### Workaround because of https://github.com/voxpupuli/puppet-yum/issues/89
if $name == 'exclude' {
if $options['ensure'] != 'absent' {
file_line { 'yum_config_exclude' :
line => "exclude=${options['ensure']}",
match => 'exclude=.*',
path => '/etc/yum.conf',
}
} else {
file_line { 'yum_config_exclude' :
state => absent,
match => 'exclude=.*',
path => '/etc/yum.conf',
}
}
} else {
yum::config { $name:
* => $options,
}
}
}
}
Workaround changed:
### Config options
$config_options.each | $name, $options | {
### Workaround because of https://github.com/voxpupuli/puppet-yum/issues/89
if $name == 'exclude' {
if $options['ensure'] != 'absent' {
ini_setting { 'yum_config_exclude':
ensure => present,
path => '/etc/yum.conf',
section => 'main',
setting => 'exclude',
value => "${options['ensure']}",
key_val_separator => '='
}
} else {
ini_setting { 'yum_config_exclude':
ensure => absent,
path => '/etc/yum.conf',
section => 'main',
setting => 'exclude',
key_val_separator => '='
}
}
} else {
yum::config { $name:
* => $options,
}
}
}
I think this is an issue with how augeas yum.lns handles exclude. I ended up using versionlock which is suboptimal but close enough for my purposes.
I just found the following bug report:
Affected Puppet, Ruby, OS and module versions/distributions
How to reproduce (e.g Puppet code you use)
What are you seeing
Puppet errors:
What behaviour did you expect instead
expected yum.conf to contain the following line under [main]
exclude=dog cat
According to yum.conf documentation the exclude value should be separated by spaces: https://linux.die.net/man/5/yum.conf:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-configuring_yum_and_yum_repositories
Additional information
The following manifest also fails, showing that this problem is the augeas resource: