Como posso automatizar a configuração inicial de um novo servidor linux?

5

Sempre que configuro um novo servidor, sigo uma série de etapas em cada servidor para obter atualizações, definir passwd, remover login via usuário root, personalizar um ambiente familiar (bashrc) e proteger o servidor.

É possível fazer tudo isso usando um script? A configuração pode incluir:

  1. atualizações de distros e atualizações

    apt-get update

    apt-get upgrade

  2. adicionando usuários

    adduser deployer

    adduser deployer sudo

    mkdir /home/deployer/.ssh

    chmod 700 /home/deployer/.ssh

    toque em /home/deployer/.ssh/authorization_keys

    implantador passwd

    su deployer

    cd para /home/deployer/.ssh /

    implementador do sudo chown .ssh /

  3. Executando comandos na máquina local:

    ssh-copy-id [email protected]

    ssh-copy-id [email protected]

  4. fazendo login no servidor:

    chmod 400 /home/deployer/.ssh/authorized_keys

    implementador de chown: implantador / home / deployer -R

5..6 ... 7 .. Personalizando o bashrc, editando o sshd_config, instalando o ufw & logwatch

    
por CommonCents 03.04.2013 / 17:40

2 respostas

6

Use um processo Kickstart ou equivalente para gerenciar a construção. Use um produto de gerenciamento de configuração, como o Puppet, para implantar suas configurações.

Você também pode usar um pouco de mágica de script para iniciar o gerenciamento de configuração no final de sua compilação para torná-lo uma experiência perfeita.

Meu script define um IP estático, configura o OSSEC e executa alguns fantoches para resolver todas as dependências e, em seguida, executa uma atualização do yum (sou principalmente um usuário do CentOS).

É possível juntar outros métodos para obter os mesmos resultados, mas descobri que este é o método mais flexível com o qual trabalhei.

    
por 03.04.2013 / 18:49
2

Kickstart / Jumpstart, Chef (incluindo chef-solo), Puppet , Salt , scripts de shell e linguagens de script de nível mais alto podem ser usados para resolver esse problema.

Honestamente, parece que você tem um início decente de um script de shell. Comece por aí e, se a complexidade aumentar, faça uma iteração ou procure um produto mais robusto. Pessoalmente, tive uma boa experiência com o Chef.

A chave para automatizar todas as coisas é começar pequeno; você não precisa entrar na automação. Escolha um ponto de dor e torne isso melhor. Escolha outro, repita.

    
por 03.04.2013 / 19:35