O que é um método preferido para configurar e configurar automaticamente uma instância do Ubuntu?

3

Estou cansado de configurar manualmente instâncias do Ubuntu para testar aplicações web e para configurar estações de trabalho. Estou ainda mais frustrado com os problemas causados por configurações inconsistentes.

Existe um método (espero que não seja muito demorado para aprender e configurar) que permite a automação da configuração e configuração de um servidor ou estação de trabalho Ubuntu de um ISO. Isso é principalmente para instâncias de máquina virtual, mas seria útil também criar instâncias no hardware.

Estou procurando especificamente um método para automatizar a instalação de bibliotecas (apt-get), configurar serviços (como Apache e MySQL), adicionar software de terceiros (download, extrair e compilar) e adicionar bibliotecas a linguagens de script (por exemplo, Ruby Gems ou pacotes CPAN para Perl).

    
por sutch 15.04.2010 / 00:24

6 respostas

2

Eu acho que o método Debian / Ubuntu mais comum é fazer sua instalação básica com pré-configuração . Em seguida, use algo como fantoche para configuração / instalação pós-instalação.

Se você não quiser ou não puder executar uma instalação completa de bonecos, outra opção é escrever scripts para personalizar o sistema pós-instalação e usá-los. Eu armazeno alguns dos scripts necessários para a configuração dos sistemas no meu repositório SVN que está disponível via https.

Quando eu quero usar um dos scripts no SVN em uma das máquinas, eu o executo diretamente do servidor SVN usando curl.

curl --silent https://svn.example.org/linuxdev/config_samples/lenny_setup/setup-aptsources | bash

Esse script específico configura o apt. Este é basicamente o conteúdo do script.

#!/bin/sh
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
etckeeper commit 'pre-commit setup-aptsources'
curl --silent "https://svn.example.org/linuxdev/config_samples/lenny/apt/sources.list" > /etc/apt/sources.list
etckeeper commit 'post-commit setup-aptsources'
apt-get update

A versão real do meu script tem mais verificação de erros para responder adequadamente se algo estiver quebrado. Eu faço coisa usando algo como etckeeper é importante que se algo quebrar você pode facilmente identificar o que mudou e reverter.

    
por 15.04.2010 / 01:12
3

Se você quiser uma maneira rápida e fácil de implantar o Linux, confira o Ultimate Deployment Appliance . Não é imensamente original em nenhum de seus recursos (qualquer um pode configurar um servidor PXE e arquivos de kickstart), mas a maneira como é apresentado e empacotado é brilhante.

Eu recomendo o v2.0 Beta . É bastante estável e muito mais amigável que o 1.4.

    
por 15.04.2010 / 02:12
1

dê uma olhada nos arquivos debian preseed usando o debconf. Não descarte a possibilidade de escrever seus próprios scripts para personalizar suas instalações.

    
por 15.04.2010 / 00:44
0

Parece que o Ubuntu tem alguma compatibilidade com os arquivos Kickstart .

    
por 15.04.2010 / 00:31
0

Por que não apenas escrever alguns scripts bash? Qualquer coisa que você pode fazer a partir do prompt do shell que você pode fazer de um script de shell. É portátil, fácil de aprender (é uma habilidade valiosa por si só) e de fácil manutenção.

Além disso, você mencionou máquinas virtuais: se você estiver usando o VMWare, poderá criar facilmente um modelo para cada sabor que precisar.

    
por 15.04.2010 / 00:50
0

Nós usamos o ubuntu-vm-builder com alguns arquivos de configuração predefinidos e alguns scripts aduaneiros. (Isto é para libvirt / kvm.)

Aqui está parte de um exemplo:

sudo vmbuilder kvm ubuntu --hostname somename --arch i386 --ip 192.168.222.21 \
    --gw 192.168.222.1 --dns 192.168.222.7 \
    --part vmbuilder.partition \
    --user peterh --name 'Peter Hansen' --pass default --tmpfs - \
    --firstboot vmbuilder.boot.sh --mirror http://192.168.222.1/ubuntu \
    --suite intrepid --flavour virtual --addpkg acpid --libvirt qemu:///system

Isso prepara a VM com rede, partições de disco, usuário inicial, URL de origem do apt-get e um script que é executado na primeira inicialização. O script inclui isso:

# Install openssh-server
apt-get update
apt-get install -qqy --force-yes openssh-server

Isso coloca o SSH em funcionamento. A partir desse ponto, podemos usar ssh para instalar pacotes adicionais e fazer outra configuração, remotamente.

Também começamos a experimentar com o libguestfs (do Python) como uma abordagem alternativa interessante para algumas configurações pós-criação.

Editar: Devo observar que o exemplo acima foi realmente usado com o "vmbuilder", que é uma versão mais antiga do ubuntu-vm-builder. Os detalhes podem ser um pouco diferentes agora, mas os princípios são os mesmos.

    
por 15.04.2010 / 03:01