Batch redefinir todas as senhas do iLO via linha de comando

2

Gostaria de redefinir em lote todas as senhas do iLO em nosso chassi HP Blade sem precisar fazer login em cada uma delas por meio do site HTTPS. Como posso redefinir as senhas do root e do administrador do iLO por meio da linha de comando do SSH?

    
por Greg Bray 20.03.2013 / 23:52

3 respostas

4

Você pode definir tudo em um único local no HP Onboard Administrator.

Por meio da GUI, o HPOA tem acesso sem senha às interfaces individuais da ILO do servidor.

Por meio da CLI, você pode usar HPONCFG ALL HTTP://some.host.ip/iloconfig.xml para cuidar de todos os dispositivos usando um arquivo iloconfig.xml.

    
por 21.03.2013 / 00:19
4

Simplifiquei o script e alterei todas as nossas senhas do iLO com:

IPs='echo 10.0.0.{1..254}'

for ip in $IPs
do
    echo Starting $ip 
    sshpass -p 'PWOLD' ssh -o StrictHostKeyChecking=no -l Administrator $ip "set /map1/accounts1/Administrator password=PWNEW"
done

Funciona como um encanto! Muitas vezes para o exemplo inspirador! (Typo com IPs é corrigido!)

    
por 04.12.2014 / 23:03
3

Eu descobri que o caminho mais rápido era usar uma combinação de SSHPASS e a interface de linha de comando do iLO. O script bash abaixo cria dois aliases para usar o SSHPASS chamado oldlogin e newlogin e, em seguida, usa-os para efetuar login no iLO, redefinir a conta root, depois fazer login com a nova senha e redefinir a conta do administrador.

alias oldlogin="sshpass -p 'OldP@ssword' ssh -o StrictHostKeyChecking=no -l root "
alias newlogin="sshpass -p 'NewP@ssword' ssh -o StrictHostKeyChecking=no -l root "

IPs='echo 10.0.0.{100..125}' #$IPs is a list of IP addresses from 10.0.0.100-125

for ip in $IPs #Run command to update root login to new password
do
   echo Starting $ip
   oldlogin $ip "set /map1/accounts1/root password=NewP@ssword"
done

for ip in $IPs #Run command to login with new root password and update administrator account
do
   echo Starting $ip
   newlogin $ip "set /map1/accounts1/administrator password=NewP@ssword"
done

Eu vi uma referência a /map1/accounts/ em vez de /map1/accounts1/ , mas isso não funcionou nos meus sistemas. Você pode fazer o login via SSH e usar show map1 para ver uma lista de todos os destinos disponíveis. A saída deve ser algo como isto:

root@localhost /usr/bin
$ for ip in $IPs
> do
>    echo Starting $ip
>    oldlogin $ip "set /map1/accounts1/root password=NewP@ssword"
> done
Starting 10.0.0.100
set /map1/accounts1/root password=NewP@ssword
status=0
status_tag=COMMAND COMPLETED

... omitted ...

Starting 10.0.0.125
set /map1/accounts1/root password=NewP@ssword
status=0
status_tag=COMMAND COMPLETED



root@localhost /usr/bin
$ for ip in $IPs 
> do
>    echo Starting $ip
>    newlogin $ip "set /map1/accounts1/administrator password=NewP@ssword"
> done
Starting 10.0.0.100
set /map1/accounts1/administrator password=NewP@ssword
status=0
status_tag=COMMAND COMPLETED

... omitted ...

Starting 10.0.0.125
set /map1/accounts1/administrator password=NewP@ssword
status=0
status_tag=COMMAND COMPLETED
    
por 20.03.2013 / 23:52