Skip to main content

IPMITool

IPMI é um protocolo usado para comunicação com BMC de um servidor

BMC, ou Baseboard Management Computer, é um mini computador que fica conectado ao chassi de um servidor e serve para realizar monitoramento, realizar controle da máquina em si e também realizar boot pela rede (PXE boot)

Comandos​

ipmitool - checando se existe um BMC​

ipmitool -H <ip do bmc> -U <user do BMC> -P <senha do user>

Caso este comando retorne “No command provided” significa que existe um BMC neste IP

Caso dê timeout, ou retorne “Error: Unable to establish IPMI v2 / RMCP+ session”, significa que não existe um BMC neste IP ou que há algum problema nele impedindo o acesso por IPMI

tags​

-H → “host”, ou seja, IP do BMC

-U→ “user” no BMC

-P→”password” no BMC

ipmitool shell - sessão interativa​

Usando o ipmitool shell, uma sessão iterativa do programa é lançada, evitando que seja necessário rodar todo o comando ipmitool -H <host> -U <user> -P <passwd> a todo momento

Todos os comandos abaixo podem ser rodados dentro do shell, indicando somente o comando em si

Abrindo o shell​

ipmitool -H <host> -U <user> -P <passwd> shell

Obtendo ajuda​

ipmitool> help

Rodando um comando​

ipmitool> power status

chassis - controlando a máquina​

Os comandos de ipmitool chassis controlam nossa máquina em si. Por exemplo

Note que os comandos de power do chassis poder ser abreviados. Por exemplo, chassis power on pode ser reduzido a power on

Verificando se a máquina está ligada​

ipmitool -H <host> -U <user> -P <root> power status

Ligando a máquina​

ipmitool -H <host> -U <user> -P <root> power on

Desligando a máquina​

ipmitool -H <host> -U <user> -P <root> power off

Reiniciando a máquina​

ipmitool -H <host> -U <user> -P <root> power reset

Verificando a saúde do chassi​

ipmitool -H <host> -U <user> -P <root> chassis selftest

mc - controlando o BMC em si​

Os comandos “mc” servem para gerenciar o BMC em si

reiniciando o BMC​

Aqui temos dois tipos de reset: warm e cold. Não sei a diferença de ambos, e só o cold funciona no nosso cluster, por algum motivo

ipmitool -H <host> -U <user> -P <passwd> mc reset cold

Verificando a saúde do BMC​

ipmitool -H <host> -U <user> -P <passwd> mc selftest

user - gerenciando os usuários do BMC​

Estes comando gerenciam por exemplo nome e senha dos usuários do BMC.

Note que o BMC tem uma tabela com usuários, senhas e o acesso do usuário. Portanto, não existe “deletar” e “criar” usuários, mas simplesmente tê-los ou não na tabela e suas permissões

listando usuários​

ipmitool -H <host> -U <user> -P <passwd> user list

Um exemplo de saída é

ID  Name	     Callin  Link Auth	IPMI Msg   Channel Priv Limit
1 true false false NO ACCESS
2 root true true true ADMINISTRATOR
3 maas true true true ADMINISTRATOR
4 fwupd true true true ADMINISTRATOR
5 true false false NO ACCESS
6 true false false NO ACCESS
7 true false false NO ACCESS
8 true false false NO ACCESS
9 true false false NO ACCESS
10 true false false NO ACCESS
11 true false false NO ACCESS
12 true false false NO ACCESS
13 true false false NO ACCESS
14 true false false NO ACCESS
15 true false false NO ACCESS
16 true false false NO ACCESS

Adicionando usuário​

Como dito, esse comando somente adiciona um nome na coluna “Name”. Após criar o usuário é necessário setar uma senha e definir o privilégio

Isso pode ser usado para criar ou sobrescrever um usuário

ipmitool -H <host> -U <user> -P <passwd> user set name <id na tabela> <novo nome>

Definindo uma senha do usuário​

Usando o comando assim, uma sessão interativa será aberta

ipmitool -H <host> -U <user> -P <passwd> user set password <id na tabela>

Definindo o acesso (privilégio) do usuário​

ipmitool -H <host> -U <user> -P <passwd> user priv <id na tabela> <privilégio>

Níveis de privilégio

  • 0xF→No Access
  • 0x3→Operator
  • 0x4→Administrator

Não sei bem o que cada um significa, na verdade. Na dúvida lança um Administrator

Ativando e desativando o usuário​

Isso ativa e desativa o usuário, ou seja, se ele está habilitado ou não para logar

ipmitool -H <host> -U <user> -P <passwd> user [disable ou enable] <id na tabela>

sensor - obtendo informações sobre os sensores​

Existem diversos sensores no BMC que podem ser usados para verificar a saúde do nó

Obtendo todas as informações de sensores​

ipmitool -H <host> -U <user> -P <passwd> sensor