Назад | Перейти на главную страницу

Как я могу предоставить файл конфигурации по умолчанию с марионеткой, но разрешить администратору сервера обновить его

Я хотел бы предоставить файл конфигурации «пример по умолчанию» для серверов узлов, использующих марионетку (например, my.cnf), но я хочу разрешить администратору сервера обновлять его столько, сколько он хочет. (По сути, я предоставляю ИТ-исследователям "базовую" виртуальную машину, и они сами ее адаптируют)

Я пробовал использовать функцию "файл" с марионеткой, но это заметил, когда я пытаюсь ее изменить ...

Есть решение?

Использовать заменить параметр для файл.

file { '/path/to/file':
  ensure  => present,
  source  => 'puppet:///modules/module_name/file',
  replace => false,
}

Если это производственная среда, я бы рекомендовал поощрять / требовать от администраторов вносить изменения в конфигурацию через марионетку. Если это не производственная среда, вы можете использовать марионетку для настройки (например, с помощью 'марионетка применить') и не продолжать запускать марионеточный агент после этого.

Ответ Антона, вероятно, лучший, но этот метод тоже может быть полезен.

Mysql поддерживает каталоги conf. Обычно у меня есть одна строка в my.cnf,! Includedir /etc/mysql/conf.d/, а затем я загружаю дополнительные конфигурации, чтобы заполнить функциональность. Mysql будет использовать последний экземпляр переменной конфигурации на основе порядка синтаксического анализа. Если вы установите значения по умолчанию в /etc/mysql/conf.d/00_somefile.cnf, любые дополнительные файлы должны переопределить их. Вы можете создать /etc/mysql/conf.d/local_changes.cnf, чтобы было понятно, куда его поместить.

class mysql::config {

  file { 'my.cnf':
    ensure  => present,
    path    => '/etc/mysql/my.cnf
    source  => 'puppet:///modules/mysql/my.cnf',
  }

  file { '/etc/mysql/conf.d':
    ensure  => directory,
  }

  file { 'general_mysql.cnf':
    ensure  => present,
    path    => '/etc/mysql/conf.d/00_general_mysql.cnf',
    content => template('mysql/general_mysql.cnf.erb'),
  }

С помощью вышеизложенного вы можете продолжать публиковать изменения через свой файл конфигурации, управляемый Puppet, и исследователи могут при необходимости отменить.