Community post
pre-deployment using hpe scripting toolkit
OS설치 전 서버 설정 배포방법
A. 소개
- 목적
OS설치 전 단계에서 서버의 설정 값(BIOS, RAID, ILO등)을 배포하는 방법을 설명합니다.
- 준비사항
PXE 설치 환경이 구성된 서버 (pxe서버의 구성방법은 포함되어 있지 않습니다.)
NFS 서버 (PXE서버에 함께 구성 가능)
HP Scripting toolkit
Conrep(BIOS), hpssacli(RAID) 설정 파일
-
HP Scripting toolkit
HP scripting toolkit의 Booting이미지에는 대부분의 HP Utility가 포함되어 있습니다.
해당 이미지의 HP Utility를 이용하여 서버의 설정을 진행합니다. -
주로 사용되는 Utility
CONREP
HPSSACLI
HPSSASCRIPTING
HPONCFG
RBSURESET
REBOOT
SETBOOTORDER
외에 몇 가지 Utility들이 포함되어 있으며 자세한 내용은 HP Scripting toolkit의 매뉴얼을 참조하시기 바랍니다.
B. 사전 작업
- 부팅이미지 변경
Scripting Toolkit의 압축을 PXE서버의 임의의 디렉토리에 풀어 놓습니다.
필요한 경우 기존 PXE서버의 /tftpboot/의 디렉토리를 백업 합니다.
"Scripting Toolkit directory"/boot_files/내의 하기 파일들을 /tftpboot/디렉토리에 복사합니다.
(BOOTX64.efi, initrd.img, mboot.c32, menu.c32, pxelinux.0, /pxeboot.cfg/default)
백업해 놓은 기존 PXE서버의 부팅이미지(vmlinuz initrd.img) 와 “scripting toolkit”의 압축을 푼 디렉토리를 NFS서비스 할 수 있도록 준비 합니다.
- Default 파일 수정
PXE로 부팅 후 boot menu 수정 및 배포 시 필요한 변수를 설정합니다..
기본 label을 수정하거나 새로 추가하시면 됩니다.
label test
kernel vmlinuz
append initrd=initrd.img root=/dev/ram0 rw ramdisk_size=785116 single console=ttyS0,115200n8 console=tty0 ide=nodma ide=noraid pnpbios=off numa=off network=1 sstk_mount=192.168.1.15:/stk/ sstk_mount_type=nfs sstk_mount_options=ro,nolock sstk_conf=toolkit.conf sstk_script=custom.sh ssstk_mount=on
- 각 주요 변수 설명
sstk_mount= “nfs마운트 시 source 경로 입력”
sstk_mount_type= “마운트 타입 nfs”
sstk_mount_options=”마운트 시 사용될 옵션”
sstk_conf=”toolkit 환경 파일”
sstk_script=”부팅 후 자동으로 실행될 스크립트 파일명-custom.sh만을 사용”
ssstk_mount=”마운트 스크립트사용여부 체크- 마운트를 사용하지 않을 경우 변수삭제”
해당 매뉴얼은 raid설정부터 OS설치까지 한 번에 진행되도록 구성되어 있습니다.
하기 내용에 설명될 BIOS,RAID설정등을 캡쳐를 진행하려면, Default파일의 “bash” label을 이용하여 Prompt로 부팅 후 HP-Utility들을 사용하면 됩니다.
C. 배포 실시
- 부팅 순서.
POST
PXE (DHCP)
tftpboot 이미지 load
bootstrap.sh 실행
해당 스크립트는 부트이미지에 포함되어있어 수정할 수 없습니다.
주요역할은 환경변수 설정, nfs마운트 및 필요파일 복사, custom.sh파일 실행입니다.
- custom.sh 실행
nfs 디렉토리 마운트 설정
conrep을 이용한 BIOS설정 적용
hpssascripting 을 이용한 RAID설정 적용
기존 pxe 부팅을 위한 “pxe 부팅이미지” 적용.
Kickstart파일을 이용한 OS설치 시작
- custom.sh
custom.sh 샘플 스크립트
#!/bin/bash
##this script installs linux##SAMPLE. Change the mount points to match your environment
PROFILE_DIR=192.168.1.15:/stk
PROFILE_TYPE=nfs
test -n "sstk_mount_options"Internal Variables, do not modify
export TOOLKIT=/TOOLKIT
export PROFILE_MNT=/mnt/main
#export HWDISC_FILE=/TOOLKIT/hpdiscovery.xml
#export SERVERNAME=/DL380 Gen9
#export BOOTDEVNODE=/dev/sdaclear
echo "*** Performing linux installation ***"##nfs mount
echo "Mounting Storage ${PROFILE_DIR}"
#mkdir -p ${PROFILE_MNT}
mount -t {PROFILE_DIR} {PROFILE_OPTS}
if [ $? != 0 ]; then
echo "Unable to mount 0 script with the location of your server."
exec /bin/bash
fiecho "Configure server"
##specific config file
CONREPDAT=${PROFILE_MNT}/data_files/dl380g9_conrep.dat
HPACUDAT=${PROFILE_MNT}/data_files/hpssascripting.dat##CONTINUE COMMON INSTALL PROCESS
if [ -f "$CONREPDAT" ] ; then
echo "Apply System Configuration"
./conrep -l -f${CONREPDAT}
fiif [ -f "$HPACUDAT" ] ; then
echo "Applying Array Configuration"
hpssascripting -i ${HPACUDAT}
ficd ${TOOLKIT}
sleep 5echo "### Linux Unattended Install using Kickstart ###"
cd /root
#Next block of commands fetches the kernel and inital ramdisk from the installation media
#you can fetch it using a variety of methods, we are using wget in this exampleecho "Get the CentOS kernel and initrd image"
rm -f vmlinuz initrd.imgcp -a ${PROFILE_MNT}/centos_img/vmlinuz /root/
cp –a ${PROFILE_MNT}/centos_img/initrd.img /root/kexec -l vmlinuz --initrd=initrd.img --append="ksdevice=eth0 ide=nodma ide=noraid pnpbios=off ks=nfs:192.168.1.15:/ks/ks65.cfg"
sync
umount ${PROFILE_MNT}#unmount everything else
#umount -a#unload drivers to prevent potential problems
#lsmod | awk '{print $1}' | xargs rmmod#wait a few seconds for good measure
sleep 10echo "Calling kexec"
kexec -eecho "YOU SHOULD NEVER SEE THIS"
- 수정 값 상세 내용
PROFILE_DIR=192.168.1.15:/stk //nfs서버 마운트 소스 경로.
PROFILE_TYPE=nfs //마운트 타입 –nfs
CONREPDAT=${PROFILE_MNT}/data_files/dl380g9_conrep.dat
//BIOS설정 파일인 conrep 파일 지정 – 자세한 설정내용은 “conrep”섹션 참고
HPACUDAT=${PROFILE_MNT}/data_files/hpssascripting.dat
//RAID설정 파일인 hpssascripting 파일 지정 – 자세한 설정내용은 “hpssascripting”섹션 참고
cp –a ${PROFILE_MNT}/centos_img/initrd.img /root/
cp – a ${PROFILE_MNT}/centos_img/vmlinuz /root/
//준비된 기존 PXE서버의 부팅이미지를 mount된 nfs서버 디렉토리로 부터 /root 디렉토리로 복사합니다.
kexec -l vmlinuz --initrd=initrd.img --append="ksdevice=eth0 ide=nodma ide=noraid pnpbios=off ks=nfs:192.168.1.15:/ks/ks65.cfg"
//kexec를 사용하여 기존 pxe서버의 부팅이미지를 로드 합니다.
//”ksdevice=” 내용에 OS배포를 위한 network device를 선택합니다
//”ks=” 내용에 kicstart의 파일을 지정해 줍니다.
예제에는 없지만 hponcfg를 이용하여 ilo online 설정을 할 수 있습니다.
자세한 내용은 HP Scripting toolkit의 매뉴얼을 참조(57page)하시기 바랍니다.
- Conrep
Conrep은 BIOS의 설정내용을 캡쳐 또는 적용하는 유틸리티 입니다.
캡쳐방법
원하는 서버의BIOS설정을한 서버에서 실행(캡쳐) 합니다.
conrep –s –f ./DL360G7_VM_BIOS.dat
-s 옵션은 bios 설정을 저장하는 옵션입니다.
-f 옵션은 파일이 저장될 위치와 파일명을 정합니다. (예: ./DL360G7_BIOS.dat)
-s 옵션에서 -f옵션을 사용하지 않을 경우 기본 파일명은 conrep.dat 입니다.
또는 캡쳐된 설정파일(xml형식)의 수정도 가능합니다.
서버마다 BIOS값이 다르므로 각 서버별 BIOS설정파일이 필요합니다.
자세한 사용방법은 HP Scripting toolkit의 매뉴얼을 참조(31page)하시기 바랍니다.
- Hpssascripting
HP Smart Array의 RAID구성을 위한 유틸리티입니다.
RIAD가 구성되어있는 서버에서 설정내용을 캡쳐 하거나 직접 수정이 가능합니다
샘플파일 raid10_disk2
Action = Configure
Method = Custom
Controller = ALL;Array Specifications
Array = A
Drive = 1I:1:1,1I:1:2
LogicalDrive = 1
RAID = 1
Stripsize = 128
Arrayaccelerator = ENABLE;Array Specifications
Array = B
Drive = 1I:1:3,1I:1:4,1I:1:5,1I:1:6,1I:1:7,1I:1:8,1I:1:9,1I:1:10,1I:1:11,1I:1:12
LogicalDrive = 2
RAID = 1
Stripsize = 128
Arrayaccelerator = ENABLE
- 주요 옵션 상세 설명
Action = Configure //RAID설정을 위한 값입니다. Controller = Slot 0 //컨트롤러 슬롯을 지정합니다. Array = A //첫번째 Array명이며 A,B….순서대로 입력합니다. Drive = 1I:1:1,1I:1:2 //Array에 포함될 드라이브 포트명입니다.(1번,2번디스크) LogicalDrive = 1 //LogicalDrive명이며 1,2,3,4순서대로 입력합니다. RAID = 1 //RAID level을 선택합니다. Stripsize = 128 //stripsie를 지정합니다. Arrayaccelerator = ENABLE //Cache사용여부를 지정합니다.//LogicalDrive의 Size를 정하지 않으면 Array전체의 용량이 할당됩니다.
Array = B //두번째 Array명입니다. Drive = 1I:1:3,1I:1:4,1I:1:5,1I:1:6,1I:1:7,1I:1:8,1I:1:9,1I:1:10,1I:1:11,1I:1:12//Array에 포함될 드라이브 포트명입니다. (3~12번 디스크)
LogicalDrive = 2 //LogicalDrive명이며 두번째 드라이브입니다.
RAID = 5 //RAID level입니다.
자세한 사용방법은 HP Scripting toolkit의 매뉴얼을 참조(36page)하시기 바랍니다.
※ 설정완료 후 pxe서버로 대상서버를 네트워크 연결하면 custom.sh스크립트에서 서버설정(bios,raid)을 진행하게 되며, Kickstart파일을 이용하여 OS설치가 진행됩니다.

Replies (2)
Congratulations @cheory! You have received a personal award!
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Congratulations @cheory! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!