Ансибле

Како се користи модул одговорног предлошка

Како се користи модул одговорног предлошка
Тхе Ансибле шаблон модул се углавном користи за копирање датотека са клијента Ансибле (где је инсталиран Ансибле) на хостове Ансибле (управља Ансибле). Предност употребе шаблон модул, а не копија модул, да ли је то Ансибле шаблон модул може да користи Јиња2 језик за шаблонирање. Јиња2 је моћан Питхон језик за шаблонирање помоћу којег можете да генеришете конфигурационе датотеке, веб странице итд. Такође можете да користите променљиве, петље и услове одговорних чињеница у својим Јиња2 предлошцима.

Овај чланак ће вам показати како се користи Ансибле шаблон модул и неке основе језика шаблона Јиња2. Па, кренимо!

Предуслови


Ако желите да испробате примере у овом чланку:

1) На рачунару морате имати инсталиран Ансибле.

2) Морате имати најмање Убунту / Дебиан хост или ЦентОС / РХЕЛ 8 хост конфигурисан за Ансибле аутоматизацију.

На ЛинукХинту постоји много чланака посвећених Инсталирању Ансибле-а и конфигурисању хостова за Ансибле аутоматизацију. Можете их погледати и ако је потребно.

Постављање директног директоријума пројеката

Пре него што наставимо даље, добра је идеја створити структуру директорија пројекта, само да би ствари биле мало организоване.

Да бисте креирали директоријум пројекта темплате-демо / и све потребне поддиректоријуме (у вашем тренутном радном директоријуму), покрените следећу наредбу:

$ мкдир -пв темплате-демо / плаибоокс / темплатес

Када се креира директоријум пројекта, дођите до директорија пројекта, како следи:

$ цд темплате-демо /

Створити домаћини списак инвентара, како следи:

$ нано домаћини

Затим додајте ИП или ДНС име хоста (вм1.нодеките.цом и вм2.нодеките.цом) у инвентарском спису.

Када завршите са овим кораком, сачувајте датотеку притиском на + Икс, затим И и .

Направите датотеку за конфигурацију Ансибле у директоријуму пројекта, како следи:

$ нано ансибле.цфг

Затим укуцајте следеће редове у ансибле.цфг датотека.

Када завршите овај корак, сачувајте датотеку притиском на + Икс, затим И и .

У овом тренутку, директоријум пројекта треба да изгледа овако:

$ дрво

Као што видите, Ансибле домаћини су такође доступни. Дакле, можемо прећи на следећи одељак овог чланка.

$ ансибле алл -у ансибле -м пинг

Основе модула са одговорним предлошком

Тхе шаблон модул Ансибле прихвата исте опције као и копија модул Ансибле.

Цоммон Ансибле шаблон опције модула:

срц - Путања датотеке шаблона Јиња2 на вашем рачунару, која ће бити рашчлањена језиком за шаблонирање Јиња2 и копирана на удаљене хостове.
дест - Одредишна путања на удаљеним хостовима на коју ће се датотека копирати.
власник - Власник датотеке на удаљеним хостовима.
група - Група датотеке на удаљеним хостовима.
моду - Режим дозволе за датотеке на удаљеним хостовима.

Погледајмо пример.

Прво створите нову књигу одговора Ансибле цопи_филе_темплате1.иамл у плаибоокс / директоријум, како следи:

$ нано плаибоокс / цопи_филе_темплате1.иамл

Затим укуцајте следеће редове у цопи_филе_темплате1.иамл плаибоок.

- домаћини: сви
корисник: ансибле
задаци:
- назив: Копирај индекс.хтмл датотеку на сервер
предложак:
срц: индекс.јиња2
дест: / хоме / ансибле / индек.хтмл
власник: ансибле
група: ансибле
мод: 0644

Ова књига ће копирати индекс.јиња2 датотека из књиге за употребу / предлошци / директоријум (у односу на директоријум вашег пројекта) на удаљене хостове користећи Ансибле шаблон модул.

Када завршите са овим кораком, сачувајте датотеку притиском на + Икс, затим И и .

Направите индекс.јиња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 датотека шаблона:

% иф ансибле_дистрибутион == "Дебиан"%

Покрећете Дебиан Линук


% елсе%

Не користите Дебиан Линук


% ендиф%

Ево, проверио сам да ли ансибле_дистрибутион је Дебиан. Ако јесте, одштампајте низ

Покрећете Дебиан Линук

. У супротном, одштампајте

Не користите Дебиан Линук

.

Коначно, индекс.јиња2 Датотека шаблона треба да изгледа као што је приказано на снимку екрана испод.

Након што сте уредили датотеку, сачувајте је притиском на + Икс, затим И и .

Покрените књигу са играма цопи_филе_темплате1.иамл као што следи:

$ ансибле-плаибоок плаибоокс / цопи_филе_темплате1.иамл

Као што видите, на мом удаљеном хосту за Дебиан, индекс.хтмл датотека има линију

Покрећете Дебиан Линук

. Али на мом ЦентОС удаљеном хосту, индекс.хтмл датотека има линију

Не користите Дебиан Линук

. Дакле, Јиња2 ако друго стање ради.

Условно: иф-елиф изјава у Јиња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.

Како развити игру на Линуку
Пре деценију, није много корисника Линука предвидело да ће њихов омиљени оперативни систем једног дана бити популарна платформа за играње комерцијални...
Портови комерцијалних игара отвореног кода
Бесплатне рекреације покретачких игара са отвореним кодом и више платформи могу се користити за играње старих, као и неких прилично недавних наслова и...
Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...