Puppet Best practice: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
=Тут собраны интересные и не очень решения для паппета= |
=Тут собраны интересные и не очень решения для паппета= |
||
==Редактирование строк== |
==Редактирование строк== |
||
| + | 100% универсального решения я не знаю. |
||
| + | На паппетлабсе есть решение http://projects.puppetlabs.com/projects/puppet/wiki/Simple_Text_Patterns/5 |
||
| + | ===Вариант 1 - с паппетлабса=== |
||
| + | <PRE> |
||
| + | define line($file, $line, $ensure = 'present') { |
||
| + | case $ensure { |
||
| + | default : { err ( "unknown ensure value ${ensure}" ) } |
||
| + | present: { |
||
| + | exec { "/bin/echo '${line}' >> '${file}'": |
||
| + | unless => "/bin/grep -qFx '${line}' '${file}'" |
||
| + | } |
||
| + | } |
||
| + | absent: { |
||
| + | exec { "/usr/bin/perl -ni -e 'print unless /^\\Q${line}\\E\$/' '${file}'": |
||
| + | onlyif => "/bin/grep -qFx '${line}' '${file}'" |
||
| + | } |
||
| + | } |
||
| + | } |
||
| + | } |
||
| + | </PRE> |
||
| + | Usage example: Add ‘dummy’ to the list of automatically loaded modules |
||
| + | <PRE> |
||
| + | file { "/etc/modules": ensure => present, } |
||
| + | line { dummy_module: |
||
| + | file => "/etc/modules", |
||
| + | line => "dummy", |
||
| + | } |
||
| + | </PRE> |
||
| + | |||
==Редакирование ini-конфигов== |
==Редакирование ini-конфигов== |
||
Версия 10:22, 17 сентября 2013
Тут собраны интересные и не очень решения для паппета
Редактирование строк
100% универсального решения я не знаю. На паппетлабсе есть решение http://projects.puppetlabs.com/projects/puppet/wiki/Simple_Text_Patterns/5
Вариант 1 - с паппетлабса
define line($file, $line, $ensure = 'present') {
case $ensure {
default : { err ( "unknown ensure value ${ensure}" ) }
present: {
exec { "/bin/echo '${line}' >> '${file}'":
unless => "/bin/grep -qFx '${line}' '${file}'"
}
}
absent: {
exec { "/usr/bin/perl -ni -e 'print unless /^\\Q${line}\\E\$/' '${file}'":
onlyif => "/bin/grep -qFx '${line}' '${file}'"
}
}
}
}
Usage example: Add ‘dummy’ to the list of automatically loaded modules
file { "/etc/modules": ensure => present, }
line { dummy_module:
file => "/etc/modules",
line => "dummy",
}