Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Config 템플릿의 Jinja2 지원

Config 템플릿에서 Jinja2 사용

Config 템플릿은 Jinja 템플릿 구문의 사용을 지원합니다. Jinja 구문 및 사용에 대한 사실상의 참조는 Jinja 템플릿 디자이너 설명서입니다. 현재 지원되는 Jinja 버전은 2.10.x입니다.

Jinja2 템플릿 언어는 디바이스 컨텍스트 및 속성 집합과 옵션으로 상호 작용할 수 있습니다. 이를 통해 높은 수준의 자동 템플릿 평가와 최종 장비 구성 렌더링이 가능합니다. Jinja 구문과 디바이스 컨텍스트 속성을 사용하면 기본적으로 Apstra SSOT(Single Source of Truth) 데이터베이스를 기반으로 Config 템플릿에 대한 값을 동적으로 구축하는 역할을 합니다.

이 기능은 매개 변수가 지정된 값을 가진 많은 스위치 또는 인터페이스에 Config 템플릿을 적용하거나, 청사진의 동적 데이터(예: 스위치의 자체 호스트 이름)를 포함하려는 사용 사례에 유용합니다.

Apstra 디바이스 컨텍스트에서 값 액세스

Apstra는 각 디바이스에 대한 모든 키 값을 저장합니다. 몇 가지 다양한 방식으로 볼 수 있습니다.

Staged 또는 Active 토폴로지 뷰에서 내부 노드 및 디바이스 세부 정보를 탐색한 다음 Device Context를 선택할 수 있습니다.

또는 디바이스 컨텍스트를 대화형으로 보면서 Config 템플릿을 만들 수도 있습니다.

API를 통한 디바이스 컨텍스트

마지막으로, API를 통해 디바이스 컨텍스트에 액세스할 수도 있습니다.

<apstra-ip>/api/blueprints/<bp-id>/nodes/<stem-node-id>/config-context

API 호출에 필요한 데이터를 얻을 수 있는 한 가지 방법은 Blueprint UI에서 디바이스를 선택하고 URL의 Node ID와 Blueprint ID를 기록합니다.

Config 템플릿에서 Jinja2를 사용하는 예

호스트

다음은 단일 Jinja 템플릿이 Apstra 그래프 데이터베이스에 저장된 값으로 대체되는 장비의 호스트네임 변수를 참조하는 Junos Config 템플릿의 비교적 단순한 정적 섹션의 예입니다. 템플릿이 렌더링되면 값이 전달됩니다. Jinja와 변수를 사용하면 Apstra에서 동적 데이터를 생성하는 데 도움이 됩니다.

Jinja2를 통한 구성 템플릿 구축 및 테스트

Freeform을 도입하여 개선된 또 다른 혁신 제품은 멀티 창 Config Template 편집기입니다. 이 기능은 Config 템플릿 구축을 위한 IDE(Integrated Development Environment)와 유사하게 작동합니다.

멀티 창 구성 템플릿 편집기

템플릿 텍스트 창

Config 템플릿을 만들고 편집할 때 함께 작업할 여러 개의 창이 있습니다. 첫 번째는 Config 템플릿을 빌드하는 템플릿 텍스트 영역입니다. 이 템플릿 텍스트 영역에는 구문 강조 표시, 자동 구성, 오류 통보에 대한 지원이 포함됩니다.

미리 보기 창

두 번째는 포함된 Jinja 구문을 처리하고 최종 Config 템플릿 컴파일을 렌더링하는 미리 보기 창입니다. 이를 통해 최종 처리된 구성이 무엇인지를 실시간으로 확인할 수 있습니다. 전체 구성 또는 증분 보기를 선택할 수 있습니다.

디바이스 컨텍스트 창

세 번째는 Apstra가 선택한 디바이스에 대해 사용 가능하고 저장한 모든 그래프 속성을 제공하는 디바이스 컨텍스트 창입니다. 이를 통해 동적 변수 대체를 위해 Config Template에서 사용할 수 있는 값을 빠르게 확인하고 검색할 수 있습니다.