Baixar
Baixe o ISO do servidor Ubuntu a partir deste local . Você tem a opção de ir para 32 bits ou 64 bits. O nome do arquivo para a edição do servidor será semelhante a este:
ubuntu-13.10-server-i386.iso
ubuntu-13.10-server-amd64.iso
Assumirei a versão 13.10 de 64 bits nas instruções a seguir, portanto, ajuste os comandos para o download que você fez. Mantenha uma cópia do seu download para poder criar várias novas versões a partir do download original, caso precise melhorar seu projeto. Também assumirei que usamos ~/Downloads/
para fazer todo o nosso trabalho.
Configuração inicial
Isso criará 2 diretórios "iso" e "isoNew" dentro do diretório Downloads, monte o ISO e copie o conteúdo de "iso" para "isoNew" para iniciar um novo projeto.
Coloque isso em um arquivo de texto, salve-o, torne-o executável e execute-o:
# Ubuntu custom server
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/
mkdir -p iso newIso
sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso
sudo cp -r ./iso/* ./newIso/
sudo cp -r ./iso/.disk/ ./newIso/
sudo umount ./iso/
cd ~/Downloads/newIso/
- Irá emitir 1 mensagem de erro:
mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only
Imagens de exemplo de como isso será:
Executando:
Resultado:
Adicionando uma opção de menu de inicialização
As opções de menu do instalador estão armazenadas isolinux/txt.cfg
e você pode criar novas opções entre default install
e label install
.
Isso criará uma nova opção chamada "Instalar servidor Ubuntu personalizado" e adicionará um arquivo de kickstart (o arquivo de kickstart é usado para alterar as opções; explicado abaixo):
label myownoption
menu label ^Install Custom Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
myownoption
é apenas um rótulo que você pode usar para identificar sua opção.
- "Instalar servidor Ubuntu personalizado" é o texto que será exibido no menu de inicialização.
- Se você deseja tornar sua opção de menu a padrão, basta alterar a opção
default install
para default myownoption
.
Exemplo:
e editando o arquivo (usei o nano, mas, se disponível, use o gedit, vim ou outro editor). Aqui está minha adição a este arquivo, onde eu usei "lampserver" como um rótulo e minha semente também será chamada "lampserver".
Kickstart (configurando graficamente um arquivo de configuração)
O método de instalação do Red Hat Kickstart é usado principalmente (mas não exclusivamente) pelo sistema operacional Red Hat Enterprise Linux para executar automaticamente a instalação e configuração autônoma do sistema operacional.
Documentação sobre preseeding / kickstart para Ubuntu . O Ubuntu possui suporte limitado ao kickstart (e pré-configuração); uma das coisas que faltam é uma interface gráfica para pré-configuração. Kickstart faz tem opções para isso (veja as imagens), mas estes não parecem funcionar no Ubuntu. Você pode fazer isso manualmente (consulte Pré-configuração abaixo).
Instalação e início do kickstart:
sudo apt-get install system-config-kickstart
ksconfig
** AVISO **
O kickstart está corrompido no Ubuntu 13.10 e, ao iniciá-lo, gera erros. Aqui está uma correção . Coloque o patch no comentário em um arquivo de texto, salve-o (chamei-o de "patch") e confirme:
Depois disso, ksconfig
funcionará e ele iniciará um editor de configuração que permite manipular muitas opções.
Veja o Red Hat Linux 7.2: O Guia Oficial de Personalização do Red Hat Linux para obter uma descrição de todas as opções que você pode definir.
Depois de concluir, salve as alterações em um ks.cfg
arquivo e copie-o para a ISO que estamos alterando:
sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
- Se você alterar alguma coisa aqui, o instalador SKIP solicitará essas informações se forem consideradas válidas. Se você não alterou uma opção, o instalador ainda solicitará sua resposta.
- Você também pode baixar arquivos do kickstart e salvá-los como
ks-custom.cfg
em ~/Downloads/newIso/preseed/
.
Exemplo em que inseri minhas credenciais. Comecei com a sudo ksconfig
partir da linha de comando.
E salvando-o no projeto:
Pré- configuração (configurando manualmente um arquivo de configuração)
A pré -configuração fornece uma maneira de definir respostas para as perguntas feitas durante o processo de instalação, sem a necessidade de inserir manualmente as respostas enquanto a instalação está em execução. Isso torna possível automatizar completamente a maioria dos tipos de instalação e ainda oferece alguns recursos não disponíveis durante as instalações normais.
Copie o preseed para a instalação normal para o seu próprio rótulo:
sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
- mude
myownoption
para o que você usou.
Agora, para alterar as configurações. Usando a debconf-get-selections
partir do, debconf-utils
você pode investigar quais parâmetros você pode usar com software específico.
Exemplo de configuração:
E adicionando servidor-lâmpada a ser instalado com o tasksel:
Se você deseja adicionar pacotes "openssh" e "build-essential", você pode incluí-lo no arquivo inicial:
d-i pkgsel/include string openssh-server build-essential
Um exemplo para o openssh:
debconf-get-selections | grep openssh
openssh-server ssh/vulnerable_host_keys note
openssh-server ssh/use_old_init_script boolean true
openssh-server ssh/encrypted_host_key_but_no_keygen note
openssh-server ssh/disable_cr_auth boolean false
Você pode adicionar essas opções a custom-iso/preseed/ubuntu-myownoption.seed
.
- Explicação / exemplos usando as configurações do debconf .
- Um arquivo preseed de exemplo
- Exemplos relacionados a: Localização, Configuração de rede, Console de rede, Relógio e hora, particionamento
No final do arquivo preseed, você pode adicionar pacotes (exemplos aleatórios) assim:
% pacotes openssh-server mysql-server apache2
Instalação offline
Caso você adicione pacotes e aqueles NÃO estão na ISO, o instalador fará o download deles no repositório. Se você não tiver uma conexão ativa com a Internet, isso será problemático, portanto você precisará adicionar todos esses pacotes (e dependências) ao seu projeto e gravá-los em um DVD. Felizmente, o ISO normal do servidor tem muito espaço, mas cuidado: CD e / ou DVDs têm um tamanho limitado.
Faça o download de todos os pacotes DEB necessários e armazene-os ~/Downloads/
. Esses 2 diretórios são necessários na nova ISO:
mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/
E isso atualizará nosso projeto com os novos pacotes:
cd ~/Downloads/newIso
sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/
Crie o ISO
cd ~/Downloads/
sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/
- a segunda linha cria uma nova soma de verificação e é necessária apenas ao adicionar pacotes.
- o terceiro cria um ISO do seu projeto que você pode gravar em um DVD.
Resultado:
E agora você pode experimentar gravando e instalando. Eu recomendaria usar como máquina virtual, pois será mais rápido testar o ISO criado inicialmente (caso contrário, você continuará reinicializando).
E depois de instalar o VirtualBox, recebo o seguinte menu:
Caça de insetos
Ocorreu um problema ao instalar: o padrão não foi selecionado.
Shadin. Do seu arquivo de semente no comentário
### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
provavelmente precisa ser assim:
### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
Abandone a linha de tarefas que você não deseja um servidor LAMP (ou seja, Apache, Mysql, Php)