Итак, я использую Systemimager для предоставления новых хостов CentOS 5.3 через PXE. У нас есть пара серверов, которые являются всего лишь тестовыми объектами, которые мы будем преобразовывать пару десятков раз в день, и, как правило, получить для них PXE-загрузку так же просто, как войти в их интерфейсы iLO, перезагрузить и нажать F12 в соответствующем месте. время. У меня вопрос: можно ли указать серверу через командную строку Linux выполнить «однократную загрузку PXE» во время следующей перезагрузки? Каждый цикл повторного создания образа это сэкономит мне много минут на нажатие, ввод, ожидание, пока Java загрузит консоль ilo и т. Д. Я знаю, что у Dell есть эта возможность через OpenIPMI, но мне было интересно, есть ли у HP аналогичная функциональность.
Большое спасибо! - Ли
Это должно быть возможно с помощью ipmitool. Просто беги:
ipmitool chassis bootdev pxe
И ваша следующая загрузка должна быть PXE-загрузкой.
редактировать: Похоже, это не работает для HP iLO2. Однако вы можете подключиться к интерфейсу iLO2 по SSH и перенастроить его там, выполнив
set /system1/bootconfig1/bootsource5 bootorder=1
В системах, которые не поддерживают загрузку с USB-ключа, это будет bootsource4
вместо. Для получения полной информации см. Справочник по скриптам iLO2
Вы можете использовать эту команду в качестве аргумента для ssh
и это тоже должно работать.
Я понял это с помощью коллеги. Это грязный, грязный прием, но он работает! HP Proliants (по крайней мере, сейчас, в конце 2009 года) попытается загрузиться с CDROM, затем попробует жесткий диск, затем попробует USB-накопитель, а затем выполнит загрузку PXE. Так как я все равно переименовываю серверы, я понял, что если мы все равно заблокируем загрузочный сектор и сразу же перезагрузимся, HP boxen выполнит процесс загрузки, обойдет жесткий диск, потому что нет MBR, и сразу же загрузится PXE. Я написал сценарий, который выдает команды dd следующим образом:
#!/bin/bash
# This is meant to assist in re-imaging a server. This will blow away the
# main partition of a given box, forcing it to pxe-boot next boot.
# Naturally, don't be an idiot and run this on a machine you DON'T want nuked
# from orbit
echo "Nuking from orbit will commence in 5 seconds. Ctrl-C if this NOT what you want."
echo "You have been warned!"
sleep 8
dd if=/dev/urandom of=/dev/cciss/c0d0 bs=512 count=2
dd if=/dev/urandom of=/dev/cciss/c0d0p1 bs=512 count=2
dd if=/dev/urandom of=/dev/cciss/c0d1p1 bs=512 count=2
dd if=/dev/urandom of=/dev/cciss/c0d2p1 bs=512 count=2
sync
echo "Nuke complete! Rebooting in 5..."
sleep 5
reboot
HTH! - Ли
В качестве альтернативы используйте инструменты из пакета поддержки HP Proliant (rpm с именем hp-health) ... есть программа CLI под названием 'hpbootcfg', которая будет делать именно то, что вы хотите: ИСПОЛЬЗОВАНИЕ: bootcfg [-F -C -H -T] [-S -Q -R -P] [-r -d -n -b] -D Установить значения по умолчанию везде
-F Floppy first
-C CD ROM first
-H Harddrive first
-T Tape first
-S one time boot to system configuration utility
-Q one time boot to quick configuration utility
-R one time boot to RBSU
-P one time boot to PXE
-r one time remote
-d one time remote dial out
-n one time remote network
-b bypass F1/F2
Вы можете использовать Ansible для загрузки ваших машин по сети через их интерфейсы HP iLO, используя модуль «python-hpilo».
Для этого вы можете использовать некоторые роли Ansible, такие как:
- name: boot from netwrok through HP iLO interface only if the system is an HP server
hpilo_boot:
force: yes #make sure what you are doing, it will reboot a running machine
host: YOUR_ILO_ADDRESS
login: YOUR_ILO_LOGIN
password: YOUR_ILO_PASSWORD
media: network
state: boot_once #default behaviour
when: cmdb_hwmodel.startswith('HP ')
delegate_to: localhost
Для получения дополнительной информации проверьте: https://docs.ansible.com/ansible/latest/modules/hpilo_boot_module.html
Вы также можете загрузить множество машин из сети, используя файл инвентаризации. Для получения дополнительной информации о ролях и задачах Ansible посетите https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html и https://docs.ansible.com/ansible/latest/user_guide/basic_concepts.html