Como ativar e usar o terminal serial de um HP Microserver Gen9?

5

Eu tenho um HP ProLiant Microserver Gen9. Ele tem o HP ILO versão 4, mas o Console remoto baseado em Java não funciona de maneira confiável e não posso usá-lo depois da tela do POST na versão gratuita do ILO (me pede para comprar uma licença do ILO Advanced). Então, eu quero usar o console serial para obter um login no servidor.

O que eu tenho que fazer em um sistema Ubuntu para obter todas as fases (POST, configuração do BIOS, saída do GRUB, o prompt de login eventual) do processo de inicialização em um console serial via porta de rede ILO do servidor? Como eu me conecto a ele?

    
por nh2 05.02.2017 / 21:58

3 respostas

11

A porta do ILO no servidor HP, por padrão, solicita um IP via DHCP. Então você só precisa conectá-lo em uma rede que tenha um servidor DHCP em execução. Ele se anunciará com um nome de host como ILOCZ12345678 , o que facilitará a localização na tabela de concessões DHCP do seu roteador ou, por exemplo, em journalctl / syslog se você executar um servidor DHCP (por exemplo, isc-dhcp-server ) em um sistema como o Ubuntu.

Depois de encontrar o IP (digamos, 1.2.3.4 ), você pode se conectar à interface gráfica do ILO via https://1.2.3.4 . Mas não é isso que estamos procurando, queremos o console serial. Então, use a interface SSH da ILO: ssh [email protected] . A senha padrão está na pequena etiqueta de papel que vem com o Microserver.

Observe que isso também funciona quando o servidor é desligado, desde que tenha um cabo de energia preso nele (esse é o ponto da ILO).

Lá, digite ? para ver todas as opções. Trecho:

POWER    : Control server power.
UID      : Control Unit-ID light.
ONETIMEBOOT: Access One-Time Boot setting.
NMI      : Generate an NMI.
VM       : Virtual media commands.
LANGUAGE : Command to set or get default language
VSP      : Invoke virtual serial port.
TEXTCONS : Invoke Remote Text Console.
TESTTRAP : Sends a test SNMP trap to the configured alert destinations.

Escolhemos VSP para obter a porta serial; TEXTCONS provavelmente também seria bom, mas você teria que comprar a licença Advanced ILO para usá-la.

Agora, uma vez que fazemos isso, com um sistema em execução, ele fica pendurado em

</>hpiLO-> VSP

Virtual Serial Port Active: COM2

Starting virtual serial port.
Press 'ESC (' to return to the CLI Session.

Isso porque, por padrão, o Ubuntu (eu estou usando o 16.04 aqui) não disponibiliza um prompt de login através da porta serial. Nós vamos mudar isso mais tarde. Primeiro nós reinicializamos para ver que a configuração do BIOS já funciona.

Vendo o boot pela porta serial

Em outra sessão ssh do ILO, reinicialize usando:

</>hpiLO-> power reset

status=0
status_tag=COMMAND COMPLETED
Sun Feb  5 20:05:59 2017

Server resetting .......

Após algum tempo de espera, você notará que a sessão na qual o VSP está em execução apagou a tela.

Em seguida, aparece:

                            4096 MB Installed                                   

ProLiant System BIOS - J06 (11/02/2015)                                         
Copyright 1982, 2015 Hewlett-Packard Development Company, L.P.                  



1 Processor(s) detected, 2 total cores enabled, Hyperthreading is not supported
Proc 1:  Intel(R) Celeron(R) CPU G1610T @ 2.30GHz      
HP Power Profile Mode: Custom
Power Regulator Mode: Dynamic Power Savings

Redundant ROM Detected - This system contains a valid backup System ROM.
Inlet Ambient Temperature: 18C/64F

HP SmartMemory authenticated in all populated DIMM slots.

HP AHCI SATA Controller (v0.90)            
Copyright (c) 2011, Hewlett-Packard Development Company, L.P.
HP AHCI SATA Controller (v0.84)             WD30EFRX-68EUZN0
   Port3: S.M.A.R.T Capable Hard Disk - WDC WD30EFRX-68EUZN0
Copyright (c) 2011, Hewlett-Packard Development Company, L.P.
                                                                  <F9 = Setup>
iLO 4 Standard                           
iLO 4 v2.50 Sep 23 2016 192.168.178.106

Broadcom NetXtreme Ethernet Boot Agent
Copyright (C) 2000-2015 Broadcom Corporation
All rights reserved.
Press Ctrl-S to enter Configuration Menu

Essa é a tela do POST. Espere um pouco e veja:

 Press "F9" key for ROM-Based Setup Utility
 Press "F10" key for Intelligent Provisioning
 Press "F11" key for Default Boot Override Options
 Press "F12" key for Network Boot
 For access via BIOS Serial Console
 Press "ESC+9" for ROM-Based Setup Utility
 Press "ESC+0" for Intelligent Provisioning
 Press "ESC+!" for Default Boot Override Options
 Press "ESC+@" for Network Boot

Se você quiser configurar o BIOS, agora é sua vez: Essa tela aparece apenas por 1 segundo ou mais. As teclas F * normalmente não funcionam, elas precisam ser escapadas: você literalmente tem que pressionar a tecla ESC e depois o número / símbolo como diz acima. Por exemplo. ESC e, em seguida, 5 é para F5 .

Agora, sem configurações adicionais, obtemos silêncio na porta serial, porque como mencionado acima, nem o GRUB2 nem os terminais de login do Ubuntu saem por padrão para a porta serial em 16.04.

Portanto, configuramos o servidor (agora via SSH) para usar a porta serial.

Fazendo o GRUB2 usar a porta serial

Eu segui as instruções no link alterando /etc/default/grub conforme descrito ( - significa comentar a linha com # , + significa adicionar a linha):

DEFAULT=0
-GRUB_HIDDEN_TIMEOUT=0
-GRUB_HIDDEN_TIMEOUT_QUIET=true
-GRUB_TIMEOUT=10
+GRUB_TIMEOUT=1
 GRUB_DISTRIBUTOR='lsb_release -i -s 2> /dev/null || echo Debian'
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
-GRUB_CMDLINE_LINUX=""
+GRUB_CMDLINE_LINUX_DEFAULT=""
+GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200"

-#GRUB_TERMINAL=console
+GRUB_TERMINAL="console serial"
+GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

O tempo limite de 10 segundos é definido porque a conexão serial redesenha a tela extremamente lentamente e queremos tempo suficiente para poder cancelar o tempo limite pressionando, e. com a chave no GRUB.

Após alterar o arquivo conforme descrito, execute sudo update-grub e reinicialize.

Agora você deve ver na sua sessão VSP o seguinte após a tela POST:

error: serial port 'com2' isn't found
error: terminal 'serial' isn't found
error: terminal 'serial' isn't found
error: no video mode activated

Nós ignoramos isso (se você sabe como se livrar disso, por favor, comente). Depois de um tempo, aparece:

 GNU GRUB  version 2.02~beta2-36ubuntu3.6

 +----------------------------------------------------------------------------+
 |*Ubuntu                                                                     |
 | Advanced options for Ubuntu                                                |
 | Memory test (memtest86+)                                                   |
 | Memory test (memtest86+, serial console 115200)                            |
 |                                                                            |
 |                                                                            | 
 +----------------------------------------------------------------------------+

      Use the  and  keys to select which entry is highlighted.          
      Press enter to boot the selected OS, 'e' to edit the commands       
      before booting or 'c' for a command-line.                           

Essa é uma tela normal do GRUB, e você pode mover o ponteiro * com as teclas para cima e para baixo.

Fazendo o login do Ubuntu usar a porta serial

Os bits a seguir são inspirados no link

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

Agora edite /etc/systemd/system/[email protected] :

Altere a linha

ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM

para

ExecStart=-/sbin/agetty %I 115200 vt100-nav

Nós nos preocupamos em definir o modo vt100-nav - descobri que o login não aparece sem essa alteração.

Não sei por que temos que usar ttyS1 enquanto que no GRUB nós configuramos ttyS0 - mas não funciona para mim usar S0 aqui. Se alguém souber por quê, por favor comente.

Inicie o tty via:

sudo systemctl start [email protected]

Agora você deve ver um prompt de login na sua sessão VSP . Faça isso acontecer automaticamente na inicialização usando:

sudo systemctl enable [email protected]

E reinicie. Agora você deve ver toda a saída em VSP , do POST para o GRUB2 para o prompt de login.

    
por 05.02.2017 / 21:58
2

Use textcons da interface do ssh do ILO. Isso pode exigir a licença do ILO Advanced, mas, ao mesmo tempo, há uma barreira muito baixa para a obtenção de uma.

A maioria das organizações não está interessada em fazer a porta serial virtual funcionar porque é demorado.

Google para uma licença ILO
ou obtenha um licença de demonstração da HP
ou pague apenas $ 25 por um chave ILO da Amazon

    
por 05.02.2017 / 22:33
1

No RHEL7 "erro: o terminal 'serial' não foi encontrado" é devido ao fato de que o Anaconda não coloca um driver de dispositivo "serial" na imagem da RAM. É possível reconstruir o disco RAM com o driver ausente, mas o Grub parece funcionar o suficiente sem ele.

    
por 17.07.2017 / 15:26