{"id":21915,"date":"2022-03-22T14:28:45","date_gmt":"2022-03-22T13:28:45","guid":{"rendered":"https:\/\/www.websupport.sk\/podpora\/?post_type=ht_kb&#038;p=21915"},"modified":"2022-03-22T14:32:41","modified_gmt":"2022-03-22T13:32:41","slug":"ansible-4-vault-bloky-a-role","status":"publish","type":"ht_kb","link":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/","title":{"rendered":"Ansible &#8211; 4. Vault, bloky a role"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-3-premenne-facts-variables-a-jinja\/\">V predo\u0161lej \u010dasti seri\u00e1lu o n\u00e1stroji Ansible<\/a> 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\n\n\n<p>V tejto \u010dasti predstav\u00edme \u0161ifrovanie citliv\u00fdch \u00fadajov pomocou n\u00e1stroja Ansible Vault. \u010ealej uk\u00e1\u017eeme, ako viacero \u00faloh spoji\u0165 do bloku a ako tak m\u00f4\u017eeme prisp\u00f4sobi\u0165 chybov\u00e9 hl\u00e1senia pre jednotliv\u00e9 \u00falohy. Nakoniec pomocou rol\u00ed preh\u013eadne rozdel\u00edme playbooky, premenn\u00e9, s\u00fabory a \u0161abl\u00f3ny do prie\u010dinkov, aby bolo mo\u017en\u00e9 jednoducho ich kedyko\u013evek opakovane pou\u017ei\u0165.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zabezpe\u010dujeme citliv\u00e9 \u00fadaje<\/h2>\n\n\n\n<p>Syst\u00e9m Ansible pon\u00faka hne\u010f po in\u0161tal\u00e1cii n\u00e1stroj Vault, v\u010faka ktor\u00e9mu m\u00f4\u017eeme za\u0161ifrova\u0165 citliv\u00e9 \u00fadaje. Najsk\u00f4r ale mus\u00edme vytvori\u0165 siln\u00e9 n\u00e1hodn\u00e9 heslo (<code>openssl rand -base64 128<\/code>) a ulo\u017ei\u0165 ho mimo prie\u010dinka s playbookmi do skryt\u00e9ho s\u00faboru <code>~\/.ansible_vault_key<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">openssl rand -base64 128 &gt; ~\/.ansible_vault_key<\/pre>\n\n\n\n<p>Presved\u010d\u00edme sa, \u010di sa heslo naozaj vytvorilo a \u00faspe\u0161ne ulo\u017eilo do s\u00faboru:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat ~\/.ansible_vault_key<\/pre>\n\n\n\n<p>Je ve\u013emi d\u00f4le\u017eit\u00e9, aby pr\u00edstup k obsahu s\u00faboru <code>~\/.ansible_vault_key<\/code> mal iba jeho autor, inak generovan\u00e9 heslo nebude bezpe\u010dn\u00e9 pou\u017ei\u0165. Z tohto d\u00f4vodu s\u00faboru nastav\u00edme pr\u00edstupov\u00e9 \u00fadaje tak, aby jedine vlastn\u00edk s\u00faboru mohol s\u00fabor \u010d\u00edta\u0165 a zapisova\u0165 do\u0148:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chmod 600 ~\/.ansible_vault_key<\/pre>\n\n\n\n<p>Do s\u00faboru s premenn\u00fdmi (tu <code>~\/ansible-test\/variables.yaml<\/code>) zap\u00ed\u0161eme heslo, ktor\u00e9 nesk\u00f4r pou\u017eijeme ako jeden s prihlasovac\u00edch \u00fadajov. Aby heslo neuniklo, za\u0161ifrujeme cel\u00fd s\u00fabor pomocou n\u00e1stroja Ansible Vault, pri\u010dom ako heslo ur\u010d\u00edme obsah s\u00faboru s heslom (<code>--vault-password-file ~\/.ansible_vault_key<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-vault encrypt --vault-password-file ~\/.ansible_vault_key ~\/ansible-test\/variables.yaml<\/pre>\n\n\n\n<p>Pri spusten\u00ed playbooku sta\u010d\u00ed op\u00e4\u0165 zada\u0165 cestu k s\u00faboru s heslom (<code>--vault-password-file ~\/.ansible_vault_key<\/code>), aby Ansible mohol za\u0161ifrovan\u00fd s\u00fabor s premenn\u00fdmi (<code>~\/ansible-test\/variables.yaml<\/code>) e\u0161te pred spusten\u00edm playbooku de\u0161ifrova\u0165 a na\u010d\u00edta\u0165 z neho hodnoty premenn\u00fdch:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-playbook --vault-password-file ~\/.ansible_vault_key ~\/ansible-test\/change_index.yaml<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Sp\u00e1jame \u00falohy do blokov<\/h2>\n\n\n\n<p>Ansible umo\u017e\u0148uje zoskupi\u0165 \u00falohy do blokov. M\u00f4\u017eeme tak na jednom mieste ur\u010di\u0165 nastavenia spolo\u010dn\u00e9 pre v\u0161etky zoskupen\u00e9 \u00falohy, a tie\u017e efekt\u00edvne o\u0161etri\u0165 chybov\u00e9 hl\u00e1senia jednotliv\u00fdch \u00faloh. Z predo\u0161lej \u010dasti si playbook <code>copy_facts_install_web_server.yaml<\/code> uprav\u00edme takto:<\/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    - variables.yaml\n  tasks:\n    - block:\n      - name: Vytvorenie prie\u010dinka pre extern\u00fd s\u00fabor s faktami\n        file:\n          path: \"{{ remote_dir }}\"\n          state: directory\n          recurse: yes\n      - name: Kop\u00edrovanie extern\u00e9ho s\u00faboru s faktami do vytvoren\u00e9ho prie\u010dinka\n        copy:\n          src: \"{{ facts_file }}\"\n          dest: \"{{ remote_dir }}\"\n      when: ansible_facts['distribution'] == 'Ubuntu'\n      ignore_errors: yes\n\n- hosts: all\n  become: True\n  vars_files:\n    - variables.yaml\n  tasks:\n    - name: In\u0161tal\u00e1cia webov\u00e9ho servera\n      package:\n        name: \"{{ ansible_local.custom.facts.web_server }}\"\n        state: 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>Prv\u00e9 dve \u00falohy sme zoskupili do bloku (<code>block<\/code>), pri\u010dom na konci bloku sme ur\u010dili, \u017ee sa \u00falohy vykonaj\u00fa iba vtedy, ke\u010f na managed nodes bude zisten\u00e1 linuxov\u00e1 distrib\u00facia Ubuntu (<code>when: ansible_facts['distribution'] == 'Ubuntu'<\/code>). No a \u00falohy v bloku sa vykonaj\u00fa v\u0161etky bez oh\u013eadu na to, \u010di nastane alebo nenastane chyba (<code>ignore_errors: yes<\/code>), inak by Ansible pri prvej chybe zastavil vykon\u00e1vanie \u010fal\u0161\u00edch \u00faloh.<\/p>\n\n\n\n<p>Playbook spust\u00edme a over\u00edme o\u010dak\u00e1van\u00fd v\u00fdpis so skuto\u010dnos\u0165ou:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-playbook --vault-password-file ~\/.ansible_vault_key ~\/ansible-test\/copy_facts_install_web_server.yaml<\/pre>\n\n\n\n<p>S\u00fa\u010das\u0165ou bloku s\u00fa aj <code>rescue<\/code> (\u00falohy spusten\u00e9 po chybnej \u00falohe v bloku) a <code>always<\/code> (\u00falohy sp\u00fa\u0161\u0165an\u00e9 po ka\u017edej \u00falohe v bloku). Playbook <code>copy_facts_install_web_server.yaml<\/code> uprav\u00edme takto:<\/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    - variables.yaml\n  tasks:\n    - block:\n      - name: Vytvorenie prie\u010dinka pre extern\u00fd s\u00fabor s faktami\n        file:\n          path: \"{{ remote_dir }}\"\n          state: directory\n          recurse: yes\n      - name: Kop\u00edrovanie extern\u00e9ho s\u00faboru s faktami do vytvoren\u00e9ho prie\u010dinka\n        copy:\n          src: \"{{ facts_file }}\"\n          dest: \"{{ remote_dir }}\"\n      when: ansible_facts['distribution'] == 'Ubuntu'\n      ignore_errors: yes\n    \n      rescue:\n        - name: Vyskytla sa chyba!\n          debug:\n            msg: \"Toto je spr\u00e1va, ktor\u00e1 sa zobraz\u00ed pri chybe \u00falohy v bloku.\"\n    \n      always:\n        - name: Po ka\u017edej \u00falohe bloku\n          debug:\n            msg: \"Toto je spr\u00e1va, ktor\u00e1 sa zobraz\u00ed po vykonan\u00ed ka\u017edej \u00falohy v bloku.\"\n\n- hosts: all\n  become: True\n  vars_files:\n    - variables.yaml\n  tasks:\n    - name: In\u0161tal\u00e1cia webov\u00e9ho servera\n      package:\n        name: \"{{ ansible_local.custom.facts.web_server }}\"\n        state: 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>Playbook spust\u00edme a over\u00edme o\u010dak\u00e1van\u00fd v\u00fdpis so skuto\u010dnos\u0165ou:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-playbook --vault-password-file ~\/.ansible_vault_key ~\/ansible-test\/copy_facts_install_web_server.yaml<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Triedime s\u00fabory do prie\u010dinkov<\/h2>\n\n\n\n<p>Aktu\u00e1lne sa v\u0161etky s\u00fabory, ktor\u00e9 sme doteraz v jednotliv\u00fdch \u010dastiach tohto seri\u00e1lu pou\u017eili, nach\u00e1dzaj\u00fa v jednom prie\u010dinku <code>~\/ansible-test\/<\/code>. V\u010faka rol\u00e1m (roles) si v t\u00fdchto s\u00faboroch m\u00f4\u017eeme vytvori\u0165 preh\u013eadnej\u0161\u00ed syst\u00e9m. Jednotliv\u00e9 playbooky, premenn\u00e9, s\u00fabory a \u0161abl\u00f3ny premiestnime do prie\u010dinkov. Vytvor\u00edme prie\u010dinok s n\u00e1zvom <code>roles<\/code> a premiestnime sa do\u0148 (prv\u00fd riadok). V prie\u010dinku <code>roles<\/code> pomocou n\u00e1stroja Ansible Galaxy vytvor\u00edme \u0161trukt\u00faru s\u00faborov a prie\u010dinkov pre rolu s n\u00e1zvom <code>web<\/code> (druh\u00fd riadok):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir ~\/ansible-test\/roles &amp;&amp; cd roles<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-galaxy role init web<\/pre>\n\n\n\n<p>N\u00e1zov roly <code>web<\/code> tvor\u00ed z\u00e1rove\u0148 n\u00e1zov prie\u010dinka, v ktorom bola vytvoren\u00e1 \u0161trukt\u00fara s\u00faborov a prie\u010dinkov. Po nain\u0161talovan\u00ed n\u00e1stroja <code>tree<\/code> (prv\u00fd riadok) \u0161trukt\u00faru s\u00faborov a prie\u010dinkov m\u00f4\u017eeme overi\u0165 (druh\u00fd riadok):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install tree<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">tree ~\/ansible-test\/roles\/web<\/pre>\n\n\n\n<p>S\u00fabor <code>README.md<\/code> obsahuje inform\u00e1cie o role a je p\u00edsan\u00fd vo form\u00e1te markdown, ako je to obvykl\u00e9 napr\u00edklad aj v r\u00e1mci slu\u017eby GitHub. Tento s\u00fabor pon\u00faka \u0161trukt\u00faru inform\u00e1ci\u00ed, v\u010faka ktorej nezabudnete zazna\u010di\u0165 d\u00f4le\u017eit\u00e9 inform\u00e1cie o pou\u017eit\u00fdch s\u00faboroch.<\/p>\n\n\n\n<p>Z prie\u010dinkov budeme pou\u017e\u00edva\u0165 <code>files<\/code>, <code>tasks<\/code>, <code>templates<\/code> a <code>vars<\/code>, do ktor\u00fdch postupne skop\u00edrujeme jednotliv\u00e9 s\u00fabory:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp ~\/ansible-test\/custom.fact ~\/ansible-test\/roles\/web\/files\/custom.fact<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">cp ~\/ansible-test\/copy_facts_install_web_server.yaml ~\/ansible-test\/roles\/web\/tasks\/main.yml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">cp ~\/ansible-test\/index.html.j2 ~\/ansible-test\/roles\/web\/templates\/index.html.j2<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">cp ~\/ansible-test\/variables.yaml ~\/ansible-test\/roles\/web\/vars\/main.yml<\/pre>\n\n\n\n<p>Playbook skop\u00edrovan\u00fd ako <code>~\/ansible-test\/roles\/web\/tasks\/main.yml<\/code> uprav\u00edme tak, aby obsahoval iba \u00falohy, ke\u010f\u017ee sa nach\u00e1dza v prie\u010dinku tasks:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/roles\/web\/tasks\/main.yml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">- name: Vytvorenie prie\u010dinka pre extern\u00fd s\u00fabor s faktami\n  file:\n    path: \"{{ remote_dir }}\"\n    state: directory\n    recurse: yes\n\n- name: Kop\u00edrovanie extern\u00e9ho s\u00faboru s faktami do vytvoren\u00e9ho prie\u010dinka\n  copy:\n    src: \"{{ facts_file }}\"\n    dest: \"{{ remote_dir }}\"\n\n- name: In\u0161tal\u00e1cia webov\u00e9ho servera\n  package:\n    name: \"{{ ansible_local.custom.facts.web_server }}\"\n    state: present\n\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>Servery, ku ktor\u00fdm sa prip\u00e1jame, teraz e\u0161te rozdel\u00edme v s\u00fabore <code>inventory<\/code> (prv\u00fd riadok) do dvoch skup\u00edn (ostatn\u00e9 riadky):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/inventory<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">[web_1]\n10.1.1.5\n\n[web_2]\n10.1.1.9<\/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>V prie\u010dinkoch roly <code>web<\/code> je v\u0161etko pripraven\u00e9. Ost\u00e1va e\u0161te vytvori\u0165 playbook <code>role-web.yaml<\/code> (prv\u00fd riadok), ktor\u00fd si \u00fadaje automaticky na\u010d\u00edta (ostatn\u00e9 riadky) s jednotliv\u00fdch prie\u010dinkov role <code>web<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/ansible-test\/role-web.yaml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">- hosts: web_1\n  become: true\n  roles:\n    - web<\/pre>\n\n\n\n<p>Vo vy\u0161\u0161ie vytvorenom playbooku chceme zasiahnu\u0165 iba servery zo skupiny, ktor\u00e1 je definovan\u00e1 v s\u00fabore <code>inventory<\/code> pod n\u00e1zvom <code>web_1<\/code> (\u010di\u017ee len IP adresa <code>10.1.1.5<\/code>). \u00dalohy sa bud\u00fa vykon\u00e1va\u0165 s pr\u00e1vami spr\u00e1vcu (<code>become: true<\/code>) a v\u0161etky potrebn\u00e9 \u00fadaje Ansible na\u010d\u00edta zo \u0161trukt\u00fary s\u00faborov a prie\u010dinkov roly <code>web<\/code> (<code>roles: web<\/code>). Teraz u\u017e len sta\u010d\u00ed spusti\u0165 playbook:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ansible-playbook --vault-password-file ~\/.ansible_vault_key ~\/ansible-test\/role-web.yaml<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Zhrnutie<\/h2>\n\n\n\n<p>V poslednej \u010dasti sme predstavili \u0161ifrovanie citliv\u00fdch \u00fadajov pomocou n\u00e1stroja Ansible Vault. \u010ealej sme uk\u00e1zali, ako viacero \u00faloh spoji\u0165 do bloku a ako tak prisp\u00f4sobi\u0165 chybov\u00e9 hl\u00e1senia pre jednotliv\u00e9 \u00falohy. Nakoniec sme pomocou rol\u00ed roztriedili \u00falohy, premenn\u00e9, s\u00fabory a \u0161abl\u00f3ny do prie\u010dinkov, aby ich bolo mo\u017en\u00e9 jednoducho kedyko\u013evek opakovane pou\u017ei\u0165.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>V predo\u0161lej \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. V tejto \u010dasti predstav\u00edme \u0161ifrovanie citliv\u00fdch&#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-21915","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 - 4. Vault, bloky a role - 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-4-vault-bloky-a-role\/\" \/>\n<meta property=\"og:locale\" content=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ansible - 4. Vault, bloky a role - Websupport centrum podpory\" \/>\n<meta property=\"og:description\" content=\"V predo\u0161lej \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. V tejto \u010dasti predstav\u00edme \u0161ifrovanie citliv\u00fdch...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/\" \/>\n<meta property=\"og:site_name\" content=\"Websupport centrum podpory\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-22T13:32:41+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-4-vault-bloky-a-role\\\/\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-4-vault-bloky-a-role\\\/\",\"name\":\"Ansible - 4. Vault, bloky a role - Websupport centrum podpory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\"},\"datePublished\":\"2022-03-22T13:28:45+00:00\",\"dateModified\":\"2022-03-22T13:32:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-4-vault-bloky-a-role\\\/#breadcrumb\"},\"inLanguage\":\"sk-SK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-4-vault-bloky-a-role\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/ansible-4-vault-bloky-a-role\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ansible &#8211; 4. Vault, bloky a role\"}]},{\"@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 - 4. Vault, bloky a role - 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-4-vault-bloky-a-role\/","og_locale":"sk_SK","og_type":"article","og_title":"Ansible - 4. Vault, bloky a role - Websupport centrum podpory","og_description":"V predo\u0161lej \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. V tejto \u010dasti predstav\u00edme \u0161ifrovanie citliv\u00fdch...","og_url":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/","og_site_name":"Websupport centrum podpory","article_modified_time":"2022-03-22T13:32:41+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-4-vault-bloky-a-role\/","url":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/","name":"Ansible - 4. Vault, bloky a role - Websupport centrum podpory","isPartOf":{"@id":"https:\/\/www.websupport.sk\/podpora\/#website"},"datePublished":"2022-03-22T13:28:45+00:00","dateModified":"2022-03-22T13:32:41+00:00","breadcrumb":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/#breadcrumb"},"inLanguage":"sk-SK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/ansible-4-vault-bloky-a-role\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.websupport.sk\/podpora\/"},{"@type":"ListItem","position":2,"name":"Ansible &#8211; 4. Vault, bloky a role"}]},{"@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\/21915","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\/21915\/revisions"}],"predecessor-version":[{"id":21927,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/21915\/revisions\/21927"}],"wp:attachment":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/media?parent=21915"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-category?post=21915"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-tag?post=21915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}