{"id":21802,"date":"2023-08-14T04:18:01","date_gmt":"2023-08-14T04:18:01","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=21802"},"modified":"2023-08-14T04:28:28","modified_gmt":"2023-08-14T04:28:28","slug":"example-code-of-ansible-variable-with-playbook","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/example-code-of-ansible-variable-with-playbook\/","title":{"rendered":"Ansible Tutorials: Ansible Variables in Playbook"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"751\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-358.png\" alt=\"\" class=\"wp-image-38215\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-358.png 982w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-358-300x229.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-358-768x587.png 768w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Inventories:<\/strong> You can define variables in your inventory files, either globally for all hosts or specific to particular groups or hosts.<\/li>\n\n\n\n<li><strong>Host or Group Variables:<\/strong> Create separate files for host or group variables inside the <code>host_vars<\/code> and <code>group_vars<\/code> directories within your Ansible project.<\/li>\n\n\n\n<li><strong>Playbook-level Variables:<\/strong> Declare variables at the top level of your playbook using the <code>vars<\/code> keyword.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Ansible Variable in Playbook with following ways:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use variables in playbook directly<\/li>\n\n\n\n<li>Use variables using external var files in playbook<\/li>\n\n\n\n<li>Use variables using include_vars into task in playbook<\/li>\n\n\n\n<li>Use variables using User Prompt in playbook<\/li>\n\n\n\n<li>Use variables using outout of task using register<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">List of Way to declare variables in Playbook<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"587\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-361-1024x587.png\" alt=\"\" class=\"wp-image-38221\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-361-1024x587.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-361-300x172.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-361-768x440.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-361.png 1188w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Playbook-level Variables: <\/strong>Declare variables at the top level of your playbook using the vars keyword.<\/li>\n\n\n\n<li><strong>Task-level Variables: <\/strong>You can also define variables within specific tasks.<\/li>\n\n\n\n<li>Register Variables: You can capture the output of a task into a variable using the register keyword.<\/li>\n\n\n\n<li><strong>Environment Variables:<\/strong> You can use environment variables by accessing them using Ansible&#8217;s ansible_env dictionary.<\/li>\n\n\n\n<li><strong>Using Facts:<\/strong> Ansible gathers facts about managed hosts, and you can use these facts as variables in your playbooks.<\/li>\n\n\n\n<li><strong>Prompting for User Input:<\/strong> You can use the vars_prompt keyword to prompt the user for input during playbook execution.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Declare variables at the top level of your playbook using the <code>vars<\/code> keyword.<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">- name: Example playbook\n  hosts: all\n  vars:\n    variable_name: value\n  tasks:\n    <span class=\"hljs-comment\"># Your tasks here<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>Task-level Variables:<\/strong><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Example playbook\n  <span class=\"hljs-attr\">hosts<\/span>: all\n  <span class=\"hljs-attr\">tasks<\/span>:\n    - name: Task <span class=\"hljs-keyword\">with<\/span> variables\n      <span class=\"hljs-attr\">debug<\/span>:\n        msg: <span class=\"hljs-string\">\"My variable: {{ variable_name }}\"<\/span>\n      <span class=\"hljs-attr\">vars<\/span>:\n        variable_name: value\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>Register Variables:<\/strong><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Example playbook\n  <span class=\"hljs-attr\">hosts<\/span>: all\n  <span class=\"hljs-attr\">tasks<\/span>:\n    - name: Task <span class=\"hljs-keyword\">with<\/span> register\n      <span class=\"hljs-attr\">shell<\/span>: echo <span class=\"hljs-string\">\"Hello, world!\"<\/span>\n      <span class=\"hljs-attr\">register<\/span>: output\n    - name: Display registered variable\n      <span class=\"hljs-attr\">debug<\/span>:\n        <span class=\"hljs-keyword\">var<\/span>: output.stdout\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Environment Variables:<\/strong><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Example playbook\n  <span class=\"hljs-attr\">hosts<\/span>: all\n  <span class=\"hljs-attr\">tasks<\/span>:\n    - name: Display environment variable\n      <span class=\"hljs-attr\">debug<\/span>:\n        <span class=\"hljs-keyword\">var<\/span>: ansible_env.VARIABLE_NAME\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using Facts:<\/strong><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Example playbook\n  <span class=\"hljs-attr\">hosts<\/span>: all\n  <span class=\"hljs-attr\">tasks<\/span>:\n    - name: Display fact\n      <span class=\"hljs-attr\">debug<\/span>:\n        <span class=\"hljs-keyword\">var<\/span>: ansible_facts&#91;<span class=\"hljs-string\">'ansible_os_family'<\/span>]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Prompting for User Input:<\/strong><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Example playbook\n  <span class=\"hljs-attr\">hosts<\/span>: all\n  <span class=\"hljs-attr\">vars_prompt<\/span>:\n    - name: variable_name\n      <span class=\"hljs-attr\">prompt<\/span>: <span class=\"hljs-string\">\"Enter a value for the variable:\"<\/span>\n  <span class=\"hljs-attr\">tasks<\/span>:\n    - name: Display input variable\n      <span class=\"hljs-attr\">debug<\/span>:\n        <span class=\"hljs-keyword\">var<\/span>: variable_name\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ansible Playbook with Variable for Centos\/RHEL<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">---\n- name: Update web servers\n  hosts: web\n  vars:\n    myname: <span class=\"hljs-string\">\"Rajeshkumar\"<\/span>\n    age: <span class=\"hljs-string\">\"18\"<\/span>\n    packagename: <span class=\"hljs-string\">\"httpd\"<\/span>\n    servicename: <span class=\"hljs-string\">\"httpd\"<\/span>\n  vars_files:\n    - <span class=\"hljs-string\">\"vars.yaml\"<\/span>\n  vars_prompt:\n    - name: <span class=\"hljs-string\">\"version\"<\/span>\n      prompt: <span class=\"hljs-string\">\"Which version Do you want to install?\"<\/span>\n      <span class=\"hljs-keyword\">private<\/span>: no\n\n  tasks:\n  - name: Install Apache in centos7\n    ansible.builtin.yum:\n      name: <span class=\"hljs-string\">\"{{ packagename }}\"<\/span>\n      state: latest\n  - name: Copy index.html\n    ansible.builtin.copy:\n      src: index.html\n      dest: \/<span class=\"hljs-keyword\">var<\/span>\/www\/html\/index.html\n  - name: Starting a Apache Server\n    ansible.builtin.service:\n      name: <span class=\"hljs-string\">\"{{ servicename }}\"<\/span>\n      state: started\n  - name: <span class=\"hljs-keyword\">Print<\/span> <span class=\"hljs-keyword\">return<\/span> information from the previous task\n    ansible.builtin.debug:\n      <span class=\"hljs-keyword\">var<\/span>: myname\n  - name: <span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-keyword\">default<\/span> step variables\n    include_vars: tasks_var.yaml\n  - name: <span class=\"hljs-keyword\">Print<\/span> <span class=\"hljs-keyword\">return<\/span> information from the previous task\n    ansible.builtin.debug:\n      msg: <span class=\"hljs-string\">\"My Name is {{ myname }} and My age is {{ age }}\"<\/span>\n  - name: <span class=\"hljs-keyword\">Print<\/span> <span class=\"hljs-keyword\">return<\/span> information from the previous task\n    ansible.builtin.debug:\n      <span class=\"hljs-keyword\">var<\/span>: version\n  - name: Ansible register variable basic example\n    shell: <span class=\"hljs-string\">\"find *.txt\"<\/span>\n    args:\n      chdir: <span class=\"hljs-string\">\"\/home\/azureuser\/rajesh\"<\/span>\n    register: find_output\n  - debug:\n      <span class=\"hljs-keyword\">var<\/span>: find_output\n  - debug:\n      <span class=\"hljs-keyword\">var<\/span>: find_output.stdout_lines\n  - debug:\n      <span class=\"hljs-keyword\">var<\/span>: find_output.stdout_lines&#91;<span class=\"hljs-number\">0<\/span>]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ansible Playbook with Variable for Ubuntu<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">---\n- name: Update web servers\n  hosts: web\n  vars:\n    myname: <span class=\"hljs-string\">\"Rajeshkumar\"<\/span>\n    age: <span class=\"hljs-string\">\"18\"<\/span>\n    packagename: <span class=\"hljs-string\">\"apache2\"<\/span>\n    servicename: <span class=\"hljs-string\">\"apache2\"<\/span>\n  vars_files:\n    - <span class=\"hljs-string\">\"vars.yaml\"<\/span>\n  vars_prompt:\n    - name: <span class=\"hljs-string\">\"version\"<\/span>\n      prompt: <span class=\"hljs-string\">\"Which version Do you want to install?\"<\/span>\n      <span class=\"hljs-keyword\">private<\/span>: no\n\n  tasks:\n  - name: Install Apache in ubuntu\n    ansible.builtin.apt:\n      name: <span class=\"hljs-string\">\"{{ packagename }}\"<\/span>\n      state: latest\n  - name: Copy index.html\n    ansible.builtin.copy:\n      src: index.html\n      dest: \/<span class=\"hljs-keyword\">var<\/span>\/www\/html\/index.html\n  - name: Starting a Apache Server\n    ansible.builtin.service:\n      name: <span class=\"hljs-string\">\"{{ servicename }}\"<\/span>\n      state: started\n  - name: <span class=\"hljs-keyword\">Print<\/span> <span class=\"hljs-keyword\">return<\/span> information from the previous task\n    ansible.builtin.debug:\n      <span class=\"hljs-keyword\">var<\/span>: myname\n  - name: <span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-keyword\">default<\/span> step variables\n    include_vars: tasks_var.yaml\n  - name: <span class=\"hljs-keyword\">Print<\/span> <span class=\"hljs-keyword\">return<\/span> information from the previous task\n    ansible.builtin.debug:\n      msg: <span class=\"hljs-string\">\"My Name is {{ myname }} and My age is {{ age }}\"<\/span>\n  - name: <span class=\"hljs-keyword\">Print<\/span> <span class=\"hljs-keyword\">return<\/span> information from the previous task\n    ansible.builtin.debug:\n      <span class=\"hljs-keyword\">var<\/span>: version\n  - name: Ansible register variable basic example\n    shell: <span class=\"hljs-string\">\"find *.txt\"<\/span>\n    args:\n      chdir: <span class=\"hljs-string\">\"\/root\/ansible\"<\/span>\n    register: find_output\n  - debug:\n      <span class=\"hljs-keyword\">var<\/span>: find_output\n  - debug:\n      <span class=\"hljs-keyword\">var<\/span>: find_output.stdout_lines\n  - debug:\n      <span class=\"hljs-keyword\">var<\/span>: find_output.stdout_lines&#91;<span class=\"hljs-number\">0<\/span>]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ansible Varialble Precedence<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-360-1024x530.png\" alt=\"\" class=\"wp-image-38219\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-360-1024x530.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-360-300x155.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-360-768x397.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/08\/image-360.png 1486w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_76586\"><figure class=\"wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure\"><div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_81421\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_76586\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div><\/figure><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Ansible Variable in Playbook with following ways: List of Way to declare variables in Playbook Declare variables at the top level of your playbook using the vars keyword. Task-level Variables: Register Variables: Environment Variables: Using Facts: Prompting for User Input: Ansible Playbook with Variable for Centos\/RHEL Ansible Playbook with Variable for Ubuntu Ansible Varialble Precedence<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-21802","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/21802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=21802"}],"version-history":[{"count":12,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/21802\/revisions"}],"predecessor-version":[{"id":38222,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/21802\/revisions\/38222"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=21802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=21802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=21802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}