reinstalar o grupo de programas em um novo pc ou máquina virtual

0

SO: OpenSuSE 42,3 64 bits

Eu passei muito tempo configurando um servidor de e-mail e gostaria de empacotá-lo de alguma forma para que eu possa reimplantá-lo facilmente se o host precisar ser reinstalado.

Por exemplo, um vírus apaga ou falha de hardware.

Configurei o postfix com o dovecot, clamav, dkim, dovecot, rspam, assassino de spam, openssl e muito mais.

Eu gostaria de continuar sendo capaz de continuar aprimorando conforme o tempo passa.

Isso envolve uma mudança complexa de permissões do sistema de arquivos, adição de usuários, geração de chaves e etc.

Eu pensei em um contêiner como lxc, docker ou etc. Essa é a melhor escolha? Qual deles?

Como faço para reunir todas essas configurações e etc para que eu possa reinstalar facilmente a mesma configuração em uma nova máquina. A máquina atual ficou inchada com arquivos antigos e coisas que não foram limpas. Desejo iniciar uma nova VM migrar todas as coisas atuais e excluir a VM antiga.

Se um contêiner é a resposta, como reunir todas as alterações que fiz e colocá-las em um contêiner?

Um conteúdo parece facilitar a duplicação das configurações.

    
por cybernard 19.09.2017 / 00:54

1 resposta

0

Parece que você quer alguma forma de gerenciamento de configuração, como Salt Stack  (possivelmente sem mestre ou Assistente ou um dos vários outros.

Essas ferramentas podem demorar um pouco, mas resolvem o problema exato que você está enfrentando: como provisionar uma nova máquina exatamente para as especificações. Com essas ferramentas você pode colocar sua configuração e configuração em um repositório git em algum lugar, em seguida, em uma nova máquina ou vm você simplesmente precisa inicializar a instalação de salt ou ansible e deixar fazer o resto seguindo as regras em seu repositório.

Ansible pode ser o que você quer - permite que você escreva 'playbooks' de arquivos e comandos de configurações para executá-los remotamente através do ssh. Assim, quando você cria um novo servidor, basta executar um ansioso playbook para configurá-lo completamente.

Eu tenho mais experiência com o saltstack, então posso dar exemplos mais detalhados de como usá-lo em uma configuração sem master. No repositório que contém dois arquivos:

wheel.sls que garante que o sudo esteja instalado e desativa o tempo limite da senha

sudo:
  pkg.installed

/etc/sudoers.d/wheel:
  file.managed:
    - user: root
    - group: root
    - mode: 440
    - contents: |
        %wheel ALL=(ALL) ALL
        Defaults passwd_timeout=0

e top.sls - o que o salt usa para decidir quais estados executar em quais máquinas, nesse caso, tudo rodará roda.sls

base:
  '*':
    - wheel

Em seguida, basta instalar o sal-minion no servidor-alvo / vm e dar a configuração semelhante à seguinte em /etc/salt/minion

file_client: local
fileserver_backend:
  - git
gitfs_remotes:
  - [email protected]:user/repo.git:
    - pubkey: /etc/salt/ssh/github.pub
    - privkey: /etc/salt/ssh/github

Substituindo o URL do github pelo de seu repositório e pelas chaves públicas / privadas por aqueles que têm acesso a esse repositório. Naturalmente, você pode estender isso para fazer mais, em seguida, instalar um único pacote e escrever um único arquivo, para um exemplo mais completo de check-out este repo que contém a metade pública da minha configuração (naturalmente a maior parte da configuração está em um repositório privado, mas deve ser suficiente para lhe dar algumas idéias).

Para configurações mais complicadas, você pode executar um mestre dedicado - ou até mesmo executar salt sobre o ssh.

    
por 19.09.2017 / 01:58