Red Hat Training

A Red Hat training course is available for Red Hat Satellite

8.6. Cobbler 템플릿

RHN Satellite 웹 인터페이스에는 킥스타트 배포판 및 프로파일과 함께 사용하기 위한 변수를 생성하는 기능이 있습니다. 예를 들어, 킥스타트 프로파일 변수를 만들려면, 4.4.9.3.3절. “킥스타트 정보 ⇒ 변수”에서 참조하십시오.
킥스타트 변수는 킥스타트 파일에서 templating을 지원하는 Satellite 인프라 변경의 일부입니다. 킥스타트 파일의 문맥에서 템플릿은 특정 킥스타트를 만드는 것이 아니라 실제 킥스타트 파일을 작성하기 위해 사용되는 설명을 보유하고 있는 파일입니다.
이러한 템플릿은 변수 및 해당 값을 갖는 여러 프로파일 및 시스템에 의해 공유됩니다. 이러한 변수는 템플릿을 수정하고 template engine라는 소프트웨어는 템플릿 및 변수 데이터를 사용 가능한 킥스타트 파일로 구문 분석합니다. Cobbler는 Cheetah라는 고급 템플릿 엔진을 사용하여 템플릿, 변수, snippets에 대한 지원을 제공합니다.
템플릿을 사용하는 장점은 다음과 같습니다:
  • 관리자가 모든 특수한 환경에 대해 킥스타트를 수동으로 생성하거나 이중으로 작성하지 않고 대량의 프로파일 또는 시스템을 생성 및 관리하게 하는 강력한 기능
  • 템플릿은 복잡하고, 루프, 조건 미치 기타 확장 기능 및 구문을 포함시킬 수 있지만, 이러한 복잡성 없이 간단하게 킥스타트 파일을 생성하기 위해 사용될 수 있습니다.

8.6.1. 템플릿 사용

킥스타트 템플릿은 PXE 이미지 파일 이름, 서브넷 주소와 같은 일반적인 항목과 /etc/sysconfig/network-scripts/와 같은 일반적인 경로에 대해 정적 값을 갖습니다. 하지만, 표준 킥스타트 파일과 다른 템플릿 부분은 변수를 사용합니다.
예를 들면, 표준 킥스타트 파일은 다음과 유사한 네트워크 통로를 가질 수 있습니다:
network --device=eth0 --bootproto=static --ip=192.168.100.24 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=192.168.100.2
하지만, 킥스타트 템플릿 파일에는 네트워킹 통로는 다음과 같이 보일 수 있습니다:
network --device=$net_dev --bootproto=static --ip=$ip_addr --netmask=255.255.255.0 --gateway=$my_gateway --nameserver=$my_nameserver
이러한 변수는 킥스타트 프로파일 변수나 또는 시스템 정보 변수에 설정된 값으로 교체됩니다. 이러한 프로파일 및 시스템 정보 모두에 동일한 변수가 지정되어 있을 경우, 시스템 이 변수를 사용하는 킥스타트 프로파일 변수, 시스템 정보 변수에 설정되는 값으로 교체됩니다. 프로필과 시스템 정보를 모두 동일한 변수가 정의되어있는 경우, 시스템 변수가 우선합니다.
킥스타트 템플릿에 관한 보다 자세한 내용은 다음의 URL에 있는 Cobbler 프로젝트 페이지에서 참조하십시오:

8.6.2. Kickstart Snippets

모든 킥스타트 템플릿과 프로파일에 걸쳐 동일한 설정을 갖는 경우, Cobbler의 Snippets 기능을 사용하여 코드를 재사용하는 장점을 취할 수 있습니다.
Kickstart snippets은 킥스타트 코드의 부분으로 Cobbler가 구문 분석하여 함수 호출을 snippet 컨텐츠와 교체하는 $SNIPPET() 함수에 의해 호출 될 수 있습니다.
예를 들면, 다음과 같이 전체 서버에 대해 일반적인 하드 드라이브 파티션 설정이 있는 경우:
clearpart --all
part /boot --fstype ext3 --size=150 --asprimary
part / --fstype ext3 --size=40000 --asprimary
part swap --recommended

part pv.00 --size=1 --grow

volgroup vg00 pv.00
logvol /var --name=var vgname=vg00 --fstype ext3 --size=5000
snippet을 가지고 가서 my_partition과 같은 파일에 저장하여 파일을 /var/lib/cobbler/snippets/에 배치하면 Cobbler가 이에 액세스할 수 있습니다.
킥스타트 템플릿에서 $SNIPPET() 함수를 사용하여 snippet을 사용할 수 있습니다. 예:
$SNIPPET('my_partition')
함수를 호출할 때 마다, Cheetah parser는 함수를 my_partition 파일에 포함된 snippet 코드로 교체합니다.
kickstart snippets에 대한 자세한 내용은 다음 URL에서 Cobbler 프로젝트 페이지를 참조하십시오: