{"id":21885,"date":"2022-03-22T14:03:29","date_gmt":"2022-03-22T13:03:29","guid":{"rendered":"https:\/\/www.websupport.sk\/podpora\/?post_type=ht_kb&#038;p=21885"},"modified":"2022-03-22T14:18:33","modified_gmt":"2022-03-22T13:18:33","slug":"ansible-3-premenne-facts-variables-a-jinja","status":"publish","type":"ht_kb","link":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/","title":{"rendered":"Ansible &#8211; 3. Premenn\u00e9 (facts, variables a Jinja)"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-2-konfiguracny-subor-inventory-a-playbook\/\">V predo\u0161lej \u010dasti<\/a> sme definovan\u00edm obsahu konfigura\u010dn\u00e9ho s\u00faboru, zoznamu IP adries managed nodes a vytvoren\u00edm jednoduch\u00e9ho playbooku dosiahli stav, v ktorom dok\u00e1\u017eeme automatizovanie v n\u00e1stroji Ansible ovl\u00e1da\u0165 efekt\u00edvne a r\u00fdchlo. Na\u010drtli sme tak skuto\u010dn\u00fa silu automatiza\u010dn\u00e9ho n\u00e1stroja Ansible, na ktorej budeme stava\u0165 v \u010fal\u0161\u00edch \u010dastiach tohto seri\u00e1lu.<\/p>\n\n\n\n<p>V tejto \u010dasti predstav\u00edme premenn\u00e9, ktor\u00e9 vytv\u00e1rame pomocou r\u00f4znych funkcional\u00edt n\u00e1stroja Ansible. Premenn\u00e9 m\u00f4\u017eeme vytv\u00e1ra\u0165 na viacer\u00fdch miestach, ale v tomto n\u00e1vode si predstav\u00edme iba vytv\u00e1ranie premenn\u00fdch v extern\u00fdch s\u00faboroch. Oddel\u00edme tak premenn\u00e9 od playbooku, aby sme v nich mohli uklada\u0165 aj citliv\u00e9 \u00fadaje ako hesl\u00e1, pri\u010dom playbook st\u00e1le m\u00f4\u017eeme bezpe\u010dne zdie\u013ea\u0165.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kop\u00edrujeme facts pomocou variables<\/h2>\n\n\n\n<p>V r\u00e1mci n\u00e1stroja Ansible je mo\u017en\u00e9 nastavil premenn\u00e9 na \u00farovni cel\u00e9ho syst\u00e9mu (facts), a tie\u017e na lok\u00e1lnej \u00farovni iba pre control node (variables). Facts je potrebn\u00e9 z control node skop\u00edrova\u0165 na vybran\u00e9 managed nodes, aby ich bolo mo\u017en\u00e9 pou\u017e\u00edva\u0165 v playbooku pre vybran\u00e9 managed nodes.<\/p>\n\n\n\n<p>Najsk\u00f4r v prie\u010dinku <code>~\/ansible-test<\/code> vytvor\u00edme s\u00fabor <code>variables.yaml<\/code> (prv\u00fd riadok), do ktor\u00e9ho vo form\u00e1te YAML zap\u00ed\u0161eme hodnoty premenn\u00fdm <code>remote_dir<\/code> a <code>facts_file<\/code> (ostatn\u00e9 riadky):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/variables.yaml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">remote_dir: \/etc\/ansible\/facts.d\nfacts_file: custom.fact<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>\u010ealej v prie\u010dinku <code>~\/ansible-test<\/code> vytvor\u00edme s\u00fabor <code>custom.fact<\/code> (prv\u00fd riadok), do ktor\u00e9ho vo form\u00e1te INI (sekcia <code>facts<\/code>) zap\u00ed\u0161eme hodnotu premennej s n\u00e1zvom <code>web_server<\/code> (druh\u00fd riadok):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/custom.fact<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">[facts]\nweb_server = apache2<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>Teraz potrebujeme vytvoren\u00fd s\u00fabor <code>~\/ansible-test\/custom.fact<\/code> dosta\u0165 do vybran\u00fdch managed nodes (v na\u0161om pr\u00edpade na v\u0161etky 2 managed nodes, \u010di\u017ee <code>hosts: all<\/code>). Vytvor\u00edme teda playbook (prv\u00fd riadok) s troma \u00falohami (ostatn\u00e9 riadky). V prvej vytvor\u00edme prie\u010dinok (<code>path: \"{{ remote_dir }}\"<\/code>), v druhej do\u0148 skop\u00edrujeme s\u00fabor s faktami (<code>facts_file: custom.fact<\/code>) do oboch managed nodes (<code>remote_dir: \/etc\/ansible\/facts.d<\/code>) a v tretej op\u00e4\u0165 do oboch managed nodes nain\u0161talujeme webov\u00fd server (<code>web_server = apache2<\/code>). Nastavenie <code>state: present<\/code> ur\u010duje, \u017ee sa m\u00e1 bal\u00edk nain\u0161talova\u0165, <code>state: absent<\/code> zase znamen\u00e1 odin\u0161talovanie. Vytvor\u00edme si teda s\u00fabor playbooku <code>copy_facts_install_web_server.yaml<\/code> (prv\u00fd riadok) a vlo\u017e\u00edme do\u0148 obsah (ostatn\u00e9 riadky):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/copy_facts_install_web_server.yaml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">- hosts: all\n  become: True\n  vars_files:\n\u00a0\u00a0\u00a0\u00a0- variables.yaml\n\u00a0\u00a0tasks:\n\u00a0\u00a0- name: Vytvorenie prie\u010dinka pre extern\u00fd s\u00fabor s faktami\n\u00a0\u00a0\u00a0\u00a0file:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0path: \"{{ remote_dir }}\"\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: directory\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0recurse: yes\n\u00a0\u00a0- name: Kop\u00edrovanie extern\u00e9ho s\u00faboru s faktami do vytvoren\u00e9ho prie\u010dinka\n\u00a0\u00a0\u00a0\u00a0copy:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0src: \"{{ facts_file }}\"\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dest: \"{{ remote_dir }}\"\n\n- hosts: all\n\u00a0\u00a0become: True\n\u00a0\u00a0vars_files:\n\u00a0\u00a0\u00a0\u00a0- variables.yaml\n\u00a0\u00a0tasks:\n\u00a0\u00a0- name: In\u0161tal\u00e1cia webov\u00e9ho servera\n\u00a0\u00a0\u00a0\u00a0package:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: \"{{ ansible_local.custom.facts.web_server }}\"\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>Rozoberme si obsah playbooku. V\u0161etky \u00falohy budeme vykon\u00e1va\u0165 s pr\u00e1vami spr\u00e1vcu (<code>become: True<\/code>). Zo s\u00faboru s premenn\u00fdmi (<code>vars_files: variables.yaml<\/code>) sa v priebehu vykon\u00e1vania \u00faloh na\u010d\u00edta hodnota premenn\u00fdch (<code>\"{{ remote_dir }}\"<\/code> a <code>\"{{ facts_file }}\"<\/code>). V poslednej \u00falohe sa lok\u00e1lne (<code>ansible_local<\/code>) na\u010d\u00edta hodnota premennej u\u017e zo s\u00faboru <code>custom.fact<\/code>, ktor\u00fd bude skop\u00edrovan\u00fd na ka\u017edom managed node. Za \u010das\u0165ou <code>ansible_local<\/code> nasleduje n\u00e1zov s\u00faboru s faktami bez koncovky (<code>custom<\/code>), potom n\u00e1zov sekcie (<code>facts<\/code>) a nakoniec n\u00e1zov samotnej premennej (<code>web_server<\/code>). Oproti jednoduch\u00e9mu playbooku, ktor\u00fd sme si vytvorili v predo\u0161lej \u010dasti tohto seri\u00e1lu, sa v tomto playbooku nach\u00e1dza aj popis ka\u017edej \u00falohy (<code>tasks: name<\/code>). Pri spusten\u00ed playbooku budeme teda v\u017edy presne vedie\u0165, ktor\u00e1 \u00faloha sa pr\u00e1ve vykon\u00e1va.<\/p>\n\n\n\n<p>Teraz u\u017e len playbook spust\u00edme a nech\u00e1me vykona\u0165 v\u0161etky tri \u00falohy na v\u0161etk\u00fdch managed nodes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-playbook ~\/ansible-test\/copy_facts_install_web_server.yaml<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Vysvetlenie zhr\u0148uj\u00facich inform\u00e1ci\u00ed Play Recap<\/h2>\n\n\n\n<p>Po dokon\u010den\u00ed v\u0161etk\u00fdch \u00faloh Ansible nakoniec vyp\u00ed\u0161e inform\u00e1cie o tom, ako sa \u00falohy podarilo vykona\u0165. \u010co tieto inform\u00e1cie znamenaj\u00fa, popisujeme ni\u017e\u0161ie:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>ok<\/strong> &#8211; ak zmeny navrhovan\u00e9 v playbooku u\u017e s\u00fa realizovan\u00e9, Ansible iba zap\u00ed\u0161e stav ok a ukon\u010d\u00ed vykon\u00e1vanie \u00falohy, preto\u017ee po\u017eadovan\u00fd stav u\u017e je dosiahnut\u00fd, a teda nie je \u010do meni\u0165.<\/li><li><strong>changed<\/strong> &#8211; ak navrhovan\u00e9 zmeny v playbooku e\u0161te nie s\u00fa realizovan\u00e9, Ansible ich zrealizuje a zap\u00ed\u0161e stav changed.<\/li><li><strong>unreachable<\/strong> &#8211; ak je managed node nedostupn\u00fd, Ansible zap\u00ed\u0161e stav unreachable.<\/li><li><strong>failed<\/strong> &#8211; ak sa z nejak\u00e9ho d\u00f4vodu nepodarilo vykona\u0165 \u00falohu (napr. kv\u00f4li neexistuj\u00facemu s\u00faboru na strane managed node), Ansible zap\u00ed\u0161e stav failed a ukon\u010d\u00ed vykon\u00e1vanie nasleduj\u00facich \u00faloh. V pr\u00edpade povolenia <em>ignore_errors<\/em> (viac v \u010fal\u0161ej \u010dasti tohto seri\u00e1lu) Ansible nasleduj\u00face \u00falohy napriek stavu failed vykon\u00e1.<\/li><li><strong>skipped<\/strong> &#8211; ak v playbooku bola ur\u010den\u00e1 podmienka <em>when<\/em> (viac v \u010fal\u0161ej \u010dasti tohto seri\u00e1lu), ktor\u00e1 v r\u00e1mci \u00falohy nebola splnen\u00e1, Ansible tak\u00fato \u00falohu presko\u010d\u00ed a zap\u00ed\u0161e stav skipped.<\/li><li><strong>rescued<\/strong> &#8211; ak bol spolu s block pou\u017eit\u00fd aj rescue (viac v \u010fal\u0161ej \u010dasti tohto seri\u00e1lu) a do\u0161lo k chybe pri vykon\u00e1van\u00ed \u00falohy.<\/li><li><strong>ignored<\/strong> &#8211; ak je zap\u00edsan\u00fd stav failed, no Ansible aj napriek chybe pokra\u010duje vo vykon\u00e1van\u00ed \u010fal\u0161\u00edch \u00faloh, preto\u017ee bol povolen\u00fd <em>ignore_errors<\/em> (viac v \u010fal\u0161ej \u010dasti tohto seri\u00e1lu).<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Pou\u017e\u00edvame premenn\u00e9 pri nasaden\u00ed \u0161abl\u00f3ny Jinja2<\/h2>\n\n\n\n<p>N\u00e1stroj Ansible pou\u017e\u00edva textov\u00fd \u0161abl\u00f3novac\u00ed syst\u00e9m jazyka Python, ktor\u00fd sa naz\u00fdva Jinja2. Pomocou tohto \u0161abl\u00f3novacie syst\u00e9mu zmen\u00edme HTML s\u00fabor <code>index.html<\/code>, ktor\u00fd webov\u00fd server Apache zobrazuje hne\u010f po in\u0161tal\u00e1cii a spusten\u00ed. Vytvor\u00edme teda nov\u00fd s\u00fabor <code>index.html.j2<\/code> (prv\u00fd riadok), do ktor\u00e9ho zap\u00ed\u0161eme obsah s premenn\u00fdmi (ostatn\u00e9 riadky):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/index.html.j2<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;html>\n\t&lt;head>\n\t\t&lt;title>index.html skop\u00edrovan\u00fd pomocou Ansible&lt;\/title>\n\t&lt;\/head>\n\t\n\t&lt;body>\n\t\t&lt;h1>Tento obsah bol zmenen\u00fd pomocou n\u00e1stroja Ansible&lt;\/h1>\n\t\t&lt;p>Hostname: {{ ansible_hostname }}&lt;\/p>\n\t\t&lt;p>Package: {{ ansible_local.custom.facts.web_server }}&lt;\/p>\n\t\t&lt;p>Facts file: {{ facts_file }}&lt;\/p>\n\t&lt;\/body>\n&lt;\/html>\n<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>Premenn\u00e1 <code>{{ ansible_hostname }}<\/code> je fact, ktor\u00fd poskytuje priamo syst\u00e9m Ansible v r\u00e1mci svojej z\u00e1kladnej v\u00fdbavy hne\u010f po nain\u0161talovan\u00ed. Mno\u017estvo tak\u00fdchto factov je mo\u017en\u00e9 zisti\u0165 t\u00fdmto pr\u00edkazom:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible localhost -m setup<\/pre>\n\n\n\n<p>Na zmenu s\u00faboru <code>index.html<\/code> vytvor\u00edme playbook (prv\u00fd riadok), do ktor\u00e9ho zap\u00ed\u0161eme \u00falohu na zavedenie \u0161abl\u00f3ny (<code>src: index.html.j2<\/code>). S\u00fabor <code>index.html<\/code> sa tak prep\u00ed\u0161e na ka\u017edom managed node (<code>dest: \/var\/www\/html\/index.html<\/code>). Opr\u00e1vnenia s\u00faboru nastav\u00edme tak, aby webov\u00fd server s\u00fabor <code>index.html<\/code> mohol zobrazi\u0165 (<code>mode: 0775<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/change_index.yaml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">- hosts: all\n  become: True\n  vars_files:\n    - variables.yaml\n  tasks:\n  - name: Prep\u00edsanie s\u00faboru index.html\n    template:\n      src: index.html.j2\n      dest: \/var\/www\/html\/index.html\n      mode: 0775<\/pre>\n\n\n\n<p>Vlo\u017e\u00edme skop\u00edrovan\u00fd obsah, ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom <code>Enter<\/code>.<\/p>\n\n\n\n<p>Playbook spust\u00edme a nech\u00e1me vykona\u0165 \u00falohu na v\u0161etk\u00fdch managed nodes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-playbook ~\/ansible-test\/change_index.yaml<\/pre>\n\n\n\n<p>Skontrolujeme, \u010di sa s\u00fabor <code>index.html<\/code> naozaj prep\u00edsal a webov\u00fd server zobrazuje jeho obsah (va\u0161e IP adresy sa m\u00f4\u017eu l\u00ed\u0161i\u0165):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl 10.1.1.5\ncurl 10.1.1.9<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Zhrnutie<\/h2>\n\n\n\n<p>V tejto \u010dasti seri\u00e1lu o n\u00e1stroji Ansible sme vysvetlili, \u010do s\u00fa to premenn\u00e9 a ako sa m\u00f4\u017eu pou\u017ei\u0165. Ansible rozozn\u00e1va glob\u00e1lne premenn\u00e9 (facts) a lok\u00e1lne premenn\u00e9 (variables). Facts alebo aj variables tvoria z\u00e1rove\u0148 z\u00e1kladn\u00fa s\u00fa\u010das\u0165 \u0161abl\u00f3novacieho syst\u00e9mu Jinja2, ktor\u00fd Ansible v\u010faka Pythonu tie\u017e pou\u017e\u00edva.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>V predo\u0161lej \u010dasti sme definovan\u00edm obsahu konfigura\u010dn\u00e9ho s\u00faboru, zoznamu IP adries managed nodes a vytvoren\u00edm jednoduch\u00e9ho playbooku dosiahli stav, v ktorom dok\u00e1\u017eeme automatizovanie v n\u00e1stroji Ansible ovl\u00e1da\u0165 efekt\u00edvne a r\u00fdchlo. Na\u010drtli sme tak skuto\u010dn\u00fa silu automatiza\u010dn\u00e9ho n\u00e1stroja Ansible, na ktorej budeme stava\u0165 v \u010fal\u0161\u00edch \u010dastiach tohto seri\u00e1lu. V tejto \u010dasti&#8230;<\/p>\n","protected":false},"author":28,"template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[438],"ht-kb-tag":[450,336,456,330,237,339,381],"class_list":["post-21885","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-ansible","ht_kb_tag-ansible","ht_kb_tag-cli","ht_kb_tag-infrastructure-as-code","ht_kb_tag-linux","ht_kb_tag-manazment","ht_kb_tag-open-source","ht_kb_tag-server"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ansible - 3. Premenn\u00e9 (facts, variables a Jinja) - Websupport centrum podpory<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/\" \/>\n<meta property=\"og:locale\" content=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ansible - 3. Premenn\u00e9 (facts, variables a Jinja) - Websupport centrum podpory\" \/>\n<meta property=\"og:description\" content=\"V predo\u0161lej \u010dasti sme definovan\u00edm obsahu konfigura\u010dn\u00e9ho s\u00faboru, zoznamu IP adries managed nodes a vytvoren\u00edm jednoduch\u00e9ho playbooku dosiahli stav, v ktorom dok\u00e1\u017eeme automatizovanie v n\u00e1stroji Ansible ovl\u00e1da\u0165 efekt\u00edvne a r\u00fdchlo. Na\u010drtli sme tak skuto\u010dn\u00fa silu automatiza\u010dn\u00e9ho n\u00e1stroja Ansible, na ktorej budeme stava\u0165 v \u010fal\u0161\u00edch \u010dastiach tohto seri\u00e1lu. V tejto \u010dasti...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/\" \/>\n<meta property=\"og:site_name\" content=\"Websupport centrum podpory\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-22T13:18:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Predpokladan\u00fd \u010das \u010d\u00edtania\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 min\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-3-premenne-facts-variables-a-jinja\\\/\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-3-premenne-facts-variables-a-jinja\\\/\",\"name\":\"Ansible - 3. Premenn\u00e9 (facts, variables a Jinja) - Websupport centrum podpory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\"},\"datePublished\":\"2022-03-22T13:03:29+00:00\",\"dateModified\":\"2022-03-22T13:18:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-3-premenne-facts-variables-a-jinja\\\/#breadcrumb\"},\"inLanguage\":\"sk-SK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-3-premenne-facts-variables-a-jinja\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-3-premenne-facts-variables-a-jinja\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ansible &#8211; 3. Premenn\u00e9 (facts, variables a Jinja)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\",\"name\":\"Websupport centrum podpory\",\"description\":\"Radi v\u00e1m pom\u00f4\u017eeme s va\u0161im probl\u00e9mom\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sk-SK\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ansible - 3. Premenn\u00e9 (facts, variables a Jinja) - Websupport centrum podpory","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/","og_locale":"sk_SK","og_type":"article","og_title":"Ansible - 3. Premenn\u00e9 (facts, variables a Jinja) - Websupport centrum podpory","og_description":"V predo\u0161lej \u010dasti sme definovan\u00edm obsahu konfigura\u010dn\u00e9ho s\u00faboru, zoznamu IP adries managed nodes a vytvoren\u00edm jednoduch\u00e9ho playbooku dosiahli stav, v ktorom dok\u00e1\u017eeme automatizovanie v n\u00e1stroji Ansible ovl\u00e1da\u0165 efekt\u00edvne a r\u00fdchlo. Na\u010drtli sme tak skuto\u010dn\u00fa silu automatiza\u010dn\u00e9ho n\u00e1stroja Ansible, na ktorej budeme stava\u0165 v \u010fal\u0161\u00edch \u010dastiach tohto seri\u00e1lu. V tejto \u010dasti...","og_url":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/","og_site_name":"Websupport centrum podpory","article_modified_time":"2022-03-22T13:18:33+00:00","twitter_card":"summary_large_image","twitter_misc":{"Predpokladan\u00fd \u010das \u010d\u00edtania":"6 min\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/","url":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/","name":"Ansible - 3. Premenn\u00e9 (facts, variables a Jinja) - Websupport centrum podpory","isPartOf":{"@id":"https:\/\/www.websupport.sk\/podpora\/#website"},"datePublished":"2022-03-22T13:03:29+00:00","dateModified":"2022-03-22T13:18:33+00:00","breadcrumb":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/#breadcrumb"},"inLanguage":"sk-SK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.websupport.sk\/podpora\/"},{"@type":"ListItem","position":2,"name":"Ansible &#8211; 3. Premenn\u00e9 (facts, variables a Jinja)"}]},{"@type":"WebSite","@id":"https:\/\/www.websupport.sk\/podpora\/#website","url":"https:\/\/www.websupport.sk\/podpora\/","name":"Websupport centrum podpory","description":"Radi v\u00e1m pom\u00f4\u017eeme s va\u0161im probl\u00e9mom","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.websupport.sk\/podpora\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sk-SK"}]}},"_links":{"self":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/users\/28"}],"version-history":[{"count":2,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21885\/revisions"}],"predecessor-version":[{"id":21912,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21885\/revisions\/21912"}],"wp:attachment":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/media?parent=21885"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-category?post=21885"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-tag?post=21885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}