Я хотел бы выполнить пакетный сброс всех паролей iLO на нашем шасси HP Blade без необходимости входить в каждый из них через веб-сайт HTTPS. Как я могу сбросить пароли root и администратора iLO через командную строку SSH?
Я упростил сценарий и изменил все наши пароли iLO на:
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
Работает как шарм! Большое спасибо за вдохновляющий пример! (Исправлена опечатка с IP!)
Вы можете настроить все в одном месте с помощью HP Onboard Administrator.
Через графический интерфейс HPOA имеет беспарольный доступ к отдельным интерфейсам ILO сервера.
Через интерфейс командной строки вы можете HPONCFG ALL HTTP://some.host.ip/iloconfig.xml
для обслуживания всех устройств с помощью одного файла iloconfig.xml.
Я обнаружил, что самый быстрый способ - использовать комбинацию SSHPASS и интерфейс командной строки iLO. Приведенный ниже сценарий bash создает два псевдонима для использования SSHPASS, называемых oldlogin
и newlogin
а затем использует их для входа в iLO, сброса учетной записи root, затем входа в систему с новым паролем и сброса учетной записи администратора.
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
Я видел ссылку на /map1/accounts/
вместо того /map1/accounts1/
но это не сработало в моих системах. Вы можете войти через SSH и использовать show map1
чтобы увидеть список всех доступных целей. Результат должен выглядеть примерно так:
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