Управление несколькими конфигурациями (/ etc) – с помощью VCS?

У меня есть машина, которая должна иметь две конфигурации, которые мне нужно поддерживать (машина иногда перемещается между двумя средами и имеет разные роли в каждой среде).

Примечание. Это не корпоративная среда, это домашняя среда.

Я рассматриваю VCS (мне нравится git ), возможно, используя etckeeper . Однако я понимаю, что мой набор инструментов ограничен, и мой молот VCS может привести к тому, что эта проблема будет идентифицирована как гвоздь, когда ее можно будет идентифицировать лучше, чем что-то еще.

Правильно ли это решение?

  • Что нужно сделать для резервного копирования, прежде чем возиться с X
  • / etc / fstab 5-я колонка
  • Как отслеживать изменения в файле / etc /
  • Как проверить, установлена ​​ли общая библиотека?
  • Ошибка при загрузке Ubuntu 14.04 - setterm: $ TERM не определен
  • Собственность на папку etc изменена, как восстановить ее с помощью командной строки?
  • su -s '/ bin / bash' продолжает использовать shell в / etc / passwd
  • Почему «-» был выбран в качестве суффикса файла резервной копии для некоторых системных файлов Unix?
  • 3 Solutions collect form web for “Управление несколькими конфигурациями (/ etc) – с помощью VCS?”

    У вас есть несколько альтернатив для решения вашей проблемы:

    • использовать VCS и следить за тем, чтобы отслеживать разрешения и информацию о владельцах файлов
    • используйте экземпляр KVM для вашей второй среды, то есть вы можете установить второй экземпляр Linux там, если у вас достаточно места на жестком диске
    • настройте конфигурацию с двойной загрузкой, так что вы установите Linux-систему для первой среды на разделе X и Linux-систему для второго в разделе Y

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

    Вы можете взглянуть на switchconf, который разработан специально для обработки нескольких конфигураций / etc и переключения между собой, когда это необходимо.

    Вам нужно будет создать 2 конфигурации в каталоге /etc/switchconf , назовем их entreprise и home . В каждом каталоге вам нужно будет создать подкаталоги etc, в которых необходимо изменить файлы конфигурации, и сохранить их в файлах, например:

     /etc/switchconf/enterprise/etc/network/interface # in which you store your enterprise network interface configuration /etc/switchconf/home/etc/network/interface # in which you store your home network interface configuration 

    Если вам нужны некоторые сценарии, которые должны быть выполнены до или после переключения конфигурации, вы можете сохранить их в /etc/switchconf/before.d и /etc/switchconf/after.d .

    Наконец, чтобы переключиться с одной конфигурации на другую, просто запустите switchconf enterprise чтобы использовать конфигурацию entreprise или switchconf home для использования домашней конфигурации.

    Для машины, которая должна быть перемещена между средами, я попытался бы иметь один набор файлов для /etc , причем как можно больше измененной конфигурации можно установить динамически с помощью сценариев оболочки. Например, сетевая конфигурация, вероятно, различна, поэтому используйте директиву mapping в /etc/network/interfaces или условные /etc/network/if-up.d в сценариях в /etc/network/if-up.d и братьях и сестрах.

    Если некоторые статические файлы необходимо изменить, сохраните два набора в двух разных каталогах, например

     /etc/configuration/work/xorg.conf /etc/configuration/home/xorg.conf /etc/configurations/current -> work /etc/X11/xorg.conf -> /etc/configurations/current/xorg.conf 

    Таким образом, вы переключаетесь между конфигурациями, изменяя /etc/configurations/current символическую ссылку и перезапуска затрагивая сервисы.

    Возможно, вы сможете использовать механизмы, которые уже существуют в некоторых подсистемах, таких как схемы PCMCIA.

    Interesting Posts

    Создать скрипт завершения bash для автозаполнения путей после знака равенства?

    Имена кодов Linux Debian

    Использование grep / sort / find для извлечения уникальных значений

    Изменение размера LVM LV и FS в Debian 7

    Отменить или изменить по умолчанию «повторное обнаружение мониторов» windows + p cinnamon keybinding с использованием gsettings

    Как я могу определить, какие команды выполняются на процессоре?

    Как я могу определить, почему мой вход зависает в течение 20 секунд при запуске?

    Regex для поиска файловых систем NFS, которые не монтируются с помощью nosuid, кроме тех, которые имеют особые потребности

    Терминатор не запускается в i686, проблема DBus в Python

    Если tmpfs имеет больший размер, чем ваша оперативная память, сколько оперативной памяти она использует? Являются ли приложения привилегированными для ОЗУ?

    Как вы намеренно вызываете ошибку «текстовый файл занят»?

    Бинарное содержимое xclip image, вставленное в текстовые поля

    Funtoo: define для emerge для использования определенной версии в новом обновлении

    Что такое буфер ядра ядра?

    Проблема использования диска / Linux

    Linux и Unix - лучшая ОС в мире.