Редактировать: Пример ниже верен и отлично работает. Но у меня почему-то в первый раз не получилось а потом у меня получилось vagrant provision
а потом все заработало отлично.
Я пытаюсь добавить строку в существующий файл /etc/fuse.conf. Я пробовал это
добавил папку две папки в каталог модулей
sudo mkdir /etc/puppet/modules/test
sudo mkdir /etc/puppet/modules/test/manifests
Затем создал файл test.pp и добавил следующие строки
sudo vim /etc/puppet/modules/test/manifests/test.pp
file { '/etc/fuse.conf':
ensure => present,
}->
file_line { 'Append a line to /etc/fuse.conf':
path => '/etc/fuse.conf',
line => 'Want to add this line as a test',
}
После этого я запустил эту команду
puppet apply /etc/puppet/modules/test/manifests/test.pp
Затем я открыл этот файл /etc/fuse.conf
и в файле не было изменений. Строка не добавлена в файл. Я не понимаю, что мне здесь не хватает. Как я могу это сделать? Я учусь марионетке. Так что это только для обучения.
Для file_line
должна быть установлена стандартная библиотека Puppet Labs.
Видеть https://puppet.com/blog/module-of-week-puppetlabs-stdlib-puppet-labs-standard-library Чтобы получить больше информации.
Вы можете попробовать это:
exec {'exec_name':
command => 'bash -c "echo foo_bar" >> /path/to/file',
path => '/bin',
}
Пробовал большинство вариантов, и все они меня разочаровали.
Попробуй это
file { '/etc/fuse.conf':
ensure => present,
}->
if "test `grep -q 'Want to add this line as a test' /etc/fuse.conf | wc -l` -eq 0" {
exec { 'echo "Want to add this line as a test" >> /etc/fuse.conf':
}
}