autoinstall(8)
é sua ferramenta para executar essa tarefa desde o OpenBSD 5.5. Usando dhcp+pxe
e um servidor http, você é bom o suficiente para implantar uma infraestrutura de instalação automatizada. Este tópico está bem explicado em este bsdnow.tv , mas farei alguns comentários sobre este tutorial:
Crie uma entrada de pxe dhcp. O exemplo abaixo, pesquisará o arquivo auto_install
em vez de pxeboot
option domain-name-servers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
filename "auto_install";
next-server 192.168.1.1;
range 192.168.1.8 192.168.1.254;
[..other stuff..]
}
Usando um servidor tftp
, hospede os arquivos necessários para inicializar usando o pxe. Você também precisará ativar o pxe-boot no site do cliente em suas bios:
# ls -l /tftp
total 12896
lrwxr-xr-x 1 root wheel 7 Feb 22 21:37 auto_install -> pxeboot
-rw-r--r-- 1 root wheel 6501415 Feb 22 12:49 bsd
-rw-r--r-- 1 root wheel 80524 Feb 22 12:50 pxeboot
Hospede todos os pacotes de instalação dentro do diretório raiz htdocs
e configure o seu httpd.conf
de acordo:
# ls /var/www/htdocs/pub/OpenBSD/5.5/i386/
SHA256 bsd comp55.tgz index.txt xetc55.tgz xshare55.tgz
SHA256.sig bsd.mp etc55.tgz man55.tgz xfont55.tgz
base55.tgz bsd.rd game55.tgz xbase55.tgz xserv55.tgz
Dentro do diretório raiz httpd
, crie um arquivo install.conf
com todas as respostas às perguntas feitas pelo instalador.
# cat /var/www/htdocs/install.conf
System hostname = bsdnow.tv
Password for root = ThePlaceToBe...SD
Network interfaces = em0
IPv4 address for em0 = dhcp
Setup a user = puffy
Password for user = whywasibornasafish
What timezone are you in = US/Eastern
Location of sets = http
Server = 192.168.1.1
Note que você também pode usar nginx
aqui. O importante aqui é que ele precisa ser colocado na raiz do servidor com o nome install.conf
. Além disso, não há uma lista abrangente dos parâmetros que podem ser usados em autoinstall
, portanto, faça sua busca para encontrar bons exemplos como aqui . Citando autoinstall
manpages:
The response file is a line-oriented ASCII text file. The format of
each line is:
question = answer
question is an installer question (not including the question mark) or
a non-ambiguous part of it, consisting of whitespace separated words.
answer is the answer to the question. Passwords may be in plaintext,
encrypted with encrypt(1), or set to ‘*************’ (13 '*'s) to
disable password logins, only permitting alternative access methods
(for example, ssh(1) keys).
Você também pode usar MAC_address-install.conf
ou hostname-install.conf
(se o nome do host estiver definido em dhcpd.conf
) para criar uma rotina de instalação para apenas um host.
Basta inicializar a máquina e aguardar a conclusão do trabalho de instalação.
Além disso, o céu é o limite aqui. Dê uma olhada neste Exemplo complicado em CoBUG que criará dinamicamente um vm, banco de dados de feed e arquivos httpd para configurá-lo e iniciar a instalação. Tudo com apenas um comando;)