Овај чланак ће вам показати како се користи Ансибле шаблон модул и неке основе језика шаблона Јиња2. Па, кренимо!
Предуслови
Ако желите да испробате примере у овом чланку:
1) На рачунару морате имати инсталиран Ансибле.
2) Морате имати најмање Убунту / Дебиан хост или ЦентОС / РХЕЛ 8 хост конфигурисан за Ансибле аутоматизацију.
На ЛинукХинту постоји много чланака посвећених Инсталирању Ансибле-а и конфигурисању хостова за Ансибле аутоматизацију. Можете их погледати и ако је потребно.
Постављање директног директоријума пројеката
Пре него што наставимо даље, добра је идеја створити структуру директорија пројекта, само да би ствари биле мало организоване.
Да бисте креирали директоријум пројекта темплате-демо / и све потребне поддиректоријуме (у вашем тренутном радном директоријуму), покрените следећу наредбу:
$ мкдир -пв темплате-демо / плаибоокс / темплатес
Када се креира директоријум пројекта, дођите до директорија пројекта, како следи:
$ цд темплате-демо /
Створити домаћини списак инвентара, како следи:
$ нано домаћини
Затим додајте ИП или ДНС име хоста (вм1.нодеките.цом и вм2.нодеките.цом) у инвентарском спису.
Када завршите са овим кораком, сачувајте датотеку притиском на
Направите датотеку за конфигурацију Ансибле у директоријуму пројекта, како следи:
$ нано ансибле.цфг
Затим укуцајте следеће редове у ансибле.цфг датотека.
Када завршите овај корак, сачувајте датотеку притиском на
У овом тренутку, директоријум пројекта треба да изгледа овако:
$ дрво
Као што видите, Ансибле домаћини су такође доступни. Дакле, можемо прећи на следећи одељак овог чланка.
$ ансибле алл -у ансибле -м пинг
Основе модула са одговорним предлошком
Тхе шаблон модул Ансибле прихвата исте опције као и копија модул Ансибле.
Цоммон Ансибле шаблон опције модула:
срц - Путања датотеке шаблона Јиња2 на вашем рачунару, која ће бити рашчлањена језиком за шаблонирање Јиња2 и копирана на удаљене хостове.
дест - Одредишна путања на удаљеним хостовима на коју ће се датотека копирати.
власник - Власник датотеке на удаљеним хостовима.
група - Група датотеке на удаљеним хостовима.
моду - Режим дозволе за датотеке на удаљеним хостовима.
Погледајмо пример.
Прво створите нову књигу одговора Ансибле цопи_филе_темплате1.иамл у плаибоокс / директоријум, како следи:
$ нано плаибоокс / цопи_филе_темплате1.иамл
Затим укуцајте следеће редове у цопи_филе_темплате1.иамл плаибоок.
- домаћини: свикорисник: ансибле
задаци:
- назив: Копирај индекс.хтмл датотеку на сервер
предложак:
срц: индекс.јиња2
дест: / хоме / ансибле / индек.хтмл
власник: ансибле
група: ансибле
мод: 0644
Ова књига ће копирати индекс.јиња2 датотека из књиге за употребу / предлошци / директоријум (у односу на директоријум вашег пројекта) на удаљене хостове користећи Ансибле шаблон модул.
Када завршите са овим кораком, сачувајте датотеку притиском на
Направите индекс.јиња2 датотека предлошка у књиге за игру / предлошци директоријум, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Унесите следеће редове у индекс.јиња2 датотека шаблона:
Добродошли у Линукхинт!
Ово је само обична ХТМЛ датотека. Овде нисам користио никакву отмену синтаксу Јиња2.
Када завршите са овим кораком, сачувајте датотеку притиском на
Покрените књигу са играма цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Књига са играма би требало да се успешно покреће.
Као што видите, индекс.јиња2 шаблон је приказан коришћењем језика за предлошке Јиња2. Приказани садржај треба копирати у индекс.хтмл датотека удаљених хостова.
Штампање променљивих у Јиња2 предлошку
У својим Јиња2 предлошцима можете користити одговорне чињенице, променљиве и кориснички дефинисане променљиве.
На предлошку Јиња2 можете да одштампате вредност променљиве помоћу променљивоИме синтакса. Ако је променљива објекат, можете да одштампате појединачна својства објекта помоћу објецтВариабле.пропертиНаме синтакса.
У примеру који следи, одштампаћемо датум својство ансибле_дате_тиме објект у нашем индекс.јиња2 шаблон.
$ ансибле алл -у ансибле -м сетуп | егреп --боја 'датум | време'
Прво отворите индекс.јиња2 датотека предлошка са нано уређивачем текста, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Додајте следећи ред у индекс.јиња2 датотека шаблона:
Страница је генерисана ансибле_дате_тиме.датум
Финале индекс.јиња2 датотека треба да изгледа као што је приказано на снимку заслона испод.
Када завршите са овим кораком, сачувајте датотеку притиском на
Покрените књигу са играма цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Као што видите, индекс.јиња2 образац је обрађен језиком за шаблонирање Јиња2 и замењен је ансибле_дате_тиме.датум променљива са датумом у ГГГГ-ММ-ДД формат. Излаз је затим копиран у индекс.хтмл датотека на удаљеном хосту.
Условна изјава иф у Јиња2 предлошку
Јиња2 језик шаблона подржава условни ако изјаве. Можете проверити одређене променљиве пре него што штампате помоћу ако изјава.
Тхе Јиња2 ако синтакса је следећа:
% иф цондитион%Урадите нешто ако је услов тачан
% ендиф%
Погледајмо пример Јиње2 ако изјава.
У овом одељку ћу показати Јиња2 ако изјава помоћу ансибле_дистрибутион чињенице променљиве.
$ ансибле алл -у ансибле -м сетуп | егреп --боја 'дист'
Прво отворите индекс.јиња2 Јиња2 шаблон са нано уређивачем текста, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Затим додајте следеће редове у индекс.јиња2 датотека шаблона:
% иф ансибле_дистрибутион == "Дебиан"%Покрећете Дебиан Линук
% ендиф%
Ево, проверио сам да ли ансибле_дистрибутион је Дебиан. Ако јесте, одштампајте низ Покрећете Дебиан Линук
Коначно, индекс.јиња2 Датотека шаблона треба да изгледа као што је приказано на снимку екрана испод.
Након што сте уредили датотеку, сачувајте је притиском на
Сада покрените књигу приручника цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Као што видите, на мом удаљеном хосту за Дебиан, индекс.хтмл датотека има линију Покрећете Дебиан Линук
Условно: иф-елсе изјава у Јиња2 предлошку
Јиња2 језик шаблона подржава условни ако друго изјаве. Можете да одштампате једну ствар ако се услов подудара, а ако је не користи, одштампајте нешто друго ако друго изјава.
Тхе Јиња2 ако друго синтакса је следећа:
% иф цондитион%Урадите нешто ако је услов тачан
% елсе%
Урадите нешто ако је стање нетачно
% ендиф%
Погледајмо пример Јиње2 ако друго изјава.
Прво отворите индекс.јиња2 Шаблон Јиња2 са нано уређивачем текста, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Затим додајте следеће редове у индекс.јиња2 датотека шаблона:
% иф ансибле_дистрибутион == "Дебиан"%Покрећете Дебиан Линук
% елсе%
Не користите Дебиан Линук
% ендиф%
Ево, проверио сам да ли ансибле_дистрибутион је Дебиан. Ако јесте, одштампајте низ Покрећете Дебиан Линук Не користите Дебиан Линук
Коначно, индекс.јиња2 Датотека шаблона треба да изгледа као што је приказано на снимку екрана испод.
Након што сте уредили датотеку, сачувајте је притиском на
Покрените књигу са играма цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Као што видите, на мом удаљеном хосту за Дебиан, индекс.хтмл датотека има линију Покрећете Дебиан Линук Не користите Дебиан Линук
Условно: иф-елиф изјава у Јиња2 предлошку
Јиња2 језик шаблона подржава условни иф-елиф изјаве.
Тхе Јиња2 иф-елиф синтакса је следећа:
% иф цондитион1%Урадите нешто ако је услов1 тачан
% елиф цондитион2%
Урадите нешто ако је услов2 тачан
% елиф цондитион3%
Урадите нешто ако је услов3 тачан
…
% елиф цондитионН%
Урадите нешто ако је условН тачан
% елсе%
Урадите нешто ако ниједан од услова није тачан
% ендиф%
Ево, % елсе% одељак није обавезан, али постоји ако вам затреба.
Погледајмо пример Јиње2 иф-елиф изјава.
Прво отворите индекс.јиња2 Шаблон Јиња2 са нано уређивачем текста, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Затим додајте следеће редове у индекс.јиња2 датотека шаблона:
% иф ансибле_дистрибутион == "Дебиан"%Покрећете Дебиан Линук
% елиф ансибле_дистрибутион == "ЦентОС"%
Користите ЦентОС Линук
% елсе%
Ваш оперативни систем није подржан
% ендиф%
Ево, проверио сам да ли ансибле_дистрибутион је Дебиан. Ако јесте, одштампајте низ Покрећете Дебиан Линук
Такође сам проверио да ли ансибле_дистрибутион је ЦентОС. Ако јесте, одштампајте низ Користите ЦентОС Линук
У супротном, одштампајте Ваш оперативни систем није подржан
Коначно, индекс.јиња2 Датотека шаблона треба да изгледа као што је приказано на снимку екрана испод.
Након што сте уредили датотеку, сачувајте је притиском на
Покрените књигу са играма цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Као што видите, на мом удаљеном хосту за Дебиан, индекс.хтмл датотека има линију Покрећете Дебиан Линук
На мом ЦентОС удаљеном хосту, индекс.хтмл датотека има линију Користите ЦентОС Линук
Да имам други удаљени хост који покреће ОС који није Дебиан или ЦентОС, имао би линију Ваш оперативни систем није подржан
Дакле, Јиња2 иф-елиф стање ради.
Петље у Јиња2 предлошку
Такође можете да штампате низове и објекте помоћу петљи у Јиња2.
Тхе Јиња2 за Синтакса петље је следећа:
Урадите нешто са вариаблеНаме
% ендфор%
Овде, у свакој итерацији низа арраиНаме, један од елемената низа (почев од почетка низа) додељује се вариаблеНаме променљива. Са овом променљивом можете учинити нешто унутар петље.
Погледајмо како можете да штампате елементе низа у вашем Јиња2 предлошку у следећем примеру.
Прво отворите цопи_филе_темплате1.иамл Одговарајући приручник са нано уређивачем текста, како следи:
$ нано плаибоокс / цопи_филе_темплате1.иамл
Затим додајте следеће редове у цопи_филе_темплате1.иамл датотека плаибоок-а:
варс:менији:
- Кућа
- Производи
- О нама
- Контактирајте нас
Ево, додао сам а менији низ у цопи_филе_темплате1.иамл плаибоок. Даље ћу исписати елементе низа користећи петљу у свом индекс.јиња2 Датотека шаблона Јиња2.
Коначно, цопи_филе_темплате1.иамл датотека плаибоок би требало да изгледа као што је приказано на снимку екрана испод.
Након што сте уредили датотеку, сачувајте је притиском на
Сада отворите индекс.јиња2 Шаблон Јиња2 са нано уређивачем текста, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Додајте следеће редове у индекс.јиња2 датотека шаблона:
Овде генеришем једноставну ХТМЛ траку за навигацију помоћу Јиња2 за петља. Петља се понавља кроз менији низ (који сам дефинисао у цопи_филе_темплате1.иамл плаибоок) елементе и генерише а мени ставка у свакој итерацији.
Коначно, индекс.јиња2 Датотека шаблона треба да изгледа као што је приказано на снимку екрана испод.
Након што сте уредили датотеку, сачувајте је притиском на
Покрените књигу са играма цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Као што видите, Јиња2 за петља је генерисала ХТМЛ траку за навигацију (у индекс.хтмл датотека).
Такође можете приступити низу објеката у вашем Јиња2 предлошку.
Погледајмо још један пример.
Прво отворите цопи_филе_темплате1.иамл Одговарајући приручник са нано уређивачем текста, како следи:
$ нано плаибоокс / цопи_филе_темплате1.иамл
Затим додајте следеће редове у цопи_филе_темплате1.иамл датотека плаибоок-а:
варс:менији:
- име: Почетна
веза: / хоме
- назив: Производи
веза: / производи
- име: О нама
веза: / о-нама
- име: Контактирајте нас
линк: / контактирајте нас
Ево, додао сам а менији низ објеката у цопи_филе_темплате1.иамл плаибоок. Сваки од ових предмета има два својства, а име имовина и а линк имовина.
Коначно, цопи_филе_темплате1.иамл датотека плаибоок би требало да изгледа као што је приказано на снимку заслона испод.
Након што сте уредили датотеку, сачувајте је притиском на
Отвори индекс.јиња2 Шаблон Јиња2 са нано уређивачем текста, како следи:
$ нано књиге за игру / предлошци / индекс.јиња2
Затим додајте следеће редове у индекс.јиња2 датотека шаблона:
Све што овде видите је исто као у претходном примеру. Једина разлика је у томе што штампам својства објекта име (Користећи мени.име) и линк (Користећи мени.линк) у мом индекс.јиња2 Шаблон Јиња2.
Коначно, индекс.јиња2 Датотека шаблона треба да изгледа као што је приказано на снимку екрана испод.
Након што сте уредили датотеку, сачувајте је притиском на
Сада покрените књигу приручника цопи_филе_темплате1.иамл као што следи:
$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл
Као што видите, Јиња2 за петља је генерисала ХТМЛ траку за навигацију (у индекс.хтмл датотека) из низа објеката.
Шта је следеће?
У овом чланку сам вам показао како се користи Ансибле шаблон модул и описао неке од основа језика за предлошке Јиња2. Посетите званичну веб страницу Јиња2 да бисте сазнали више о језику шаблона Јиња2.