Puppet file_line не работает с агентом, а с apply - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь добавить строку и заменить других ресурсом марионетки file_line. У меня очень странное поведение. Вот код:

file_line { 'bashrc':
  ensure => present,
  path   => '/user/.bashrc',
  line   => 'HISTCONTROL=ignoredups:ignorespace:erasedups',
  match  => '^HISTCONTROL\=',
}

file_line { 'sysctl_conf':
  ensure => present,
  path   => '/etc/sysctl.conf',
  line   => 'net.ipv6.conf.all.disable_ipv6=1',
  notify => Exec['/sbin/sysctl -p'],
}

У меня есть эта строка: HISTCONTROL=ignoredups в файле .bashrc. Когда я запускаю puppet agent -t, он просто добавляет эту строку HISTCONTROL=ignoredups:ignorespace:erasedups к файлу, а исходная строка HISTCONTROL=ignoredups все еще там. Более интересно то, что второй ресурс file_line вообще не выполняется. Но когда я запускаю puppet apply -e "include module", строка в .bashrc заменяется, а net.ipv6.conf.all.disable_ipv6=1 добавляется к /etc/sysctl.conf.

Системная информация:

root@puppet [Home]:~# puppet agent --version
5.5.8
root@puppet [Home]:~# puppet --version
5.5.8
root@puppet [Home]:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04
Codename:   xenial
root@puppet [Home]:~# puppet module list | grep stdlib
├── puppetlabs-stdlib (v5.1.0)

Может кто-нибудь объяснить это, пожалуйста, или как это исправить? Спасибо

...