RPMBUILD: Возможна ли переносимость файла конфигурации RPM во время установки

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


person meet patel    schedule 04.12.2012    source источник


Ответы (2)


Возможно повторение этого поэтому я скопирую свой ответ оттуда...


Я не думаю, что есть родной способ; Я бы сделал %post, как вы заметили.

Однако я бы сделал это (аналогично тому, что я делаю с пакетом только для внутреннего использования, который я разрабатываю для работы):

  1. Три отдельных файла /etc/name.conf-developer, /etc/name.conf-live и т. д.
  2. Пусть все три пакета предоставляют виртуальный пакет, например. name-config
  3. Have main package require name-config
    • This will make rpm, yum, or whatever require at least one be installed in the same transaction
  4. Все три пакета конфликтуют друг с другом
  5. Have each config package's %post (and possibly %verify) symlink /etc/name.conf to the proper config
    • This also helps show the user what is happening

Минусы:

  1. Это немного хакерски
  2. rpm --whatprovides /etc/name.conf скажет, что он не принадлежит ни одному пакету
person Aaron D. Marasco    schedule 04.12.2012
comment
я все еще запутался, пожалуйста, дайте больше информации. - person meet patel; 05.12.2012

Ответ Аарона - хороший способ сделать это. другой вариант — использовать оператор bash if для запуска команды sed в вашем файле конфигурации в разделе %post на основе имени хоста (например, * prod). Это позволит вам заменить определенные переменные в зависимости от среды. Очевидно, это пример высокого уровня, так как я не знаю, как выглядит ваша конфигурация конфигурации. К сожалению, это пример того, как может выглядеть плохой пакет, потому что другим будет сложно справиться с ним в будущем. Я предлагаю вам удалить все файлы конфигурации из RPM и начать использовать Salt, Chef или Puppet, поскольку именно для такой задачи они и были созданы.

person Forrest    schedule 05.12.2012