Como alternar entre diferentes configurações do Linux?

4

Eu tenho vários casos de uso diferentes para o meu Raspberry Pi 3. Atualmente eu tenho uma configuração como media center, streaming de áudio, hacking, escritório, etc. Todas as configurações são baseadas na distribuição Raspbian padrão.

Essas configurações requerem diferentes (systemd) serviços e diferentes arquivos de configuração /etc service. Por exemplo: no meu local de trabalho no escritório, eu tenho o Network Manager configurado com tantas senhas de rede wifi quanto eu preciso, enquanto que para minha estação de hacking, eu gostaria de desabilitar o Network Manager e configurar um endereço mac rotativo e IP estático. Às vezes eu gosto do meu Pi sem cabeça, e às vezes eu preciso de uma GUI. Etc.

A chave é, que não apenas os serviços diferem, também os arquivos de configuração do serviço diferem, com base na finalidade.

Minha pergunta é: como eu "alterno" entre configurações (serviços + arquivos de configuração) dentro do mesmo ambiente Linux? Idealmente, gostaria de emitir um comando (terminal) para mudar para outro "modo".

Já tentei:

  • Partições diferentes com grub multi boot: custam muito espaço / overhead. Não acomoda a troca fácil.
  • Use o nível de execução para diferenciar: não acomoda arquivos de configuração diferentes.
  • Crie meu próprio "script de alternância" que interrompe serviços, copia / alterna arquivos de configuração e (re) inicia serviços: chega perto, mas parece que estou reinventando a roda.

Alguma sugestão para uma solução "pronta para usar" para isso? Eu não posso imaginar que sou o primeiro ou único com essa necessidade.

    
por agtoever 12.02.2017 / 22:39

2 respostas

2

Soa como criar alvos no systemd, e possivelmente o armazenamento de / etc / in git criaria algo parecido com o que você quer. Mude o alvo, mude o ramo git, você pode querer ter um alvo intermediário que desabilita a maioria dos serviços antes de mudar tudo.

    
por 13.02.2017 / 01:20
2

E algo parecido com uma partição de 'configuração' montada com pastas como esta:

/mnt/config/setup1/etc
/mnt/config/setup2/etc
/mnt/config/setup3/etc
/mnt/config/etc -> /mnt/config/setup1/etc

Em seguida, faça um serviço systemd que copie / mnt / config / etc para / etc no início da inicialização. Coloque qualquer coisa que seja diferente nessas pastas /mnt/config/.../etc. Atualize o link simbólico para alterar sua configuração e reiniciar.

    
por 13.02.2017 / 05:00