Getting Started with Ansible 15 – Host Variables

Ansible is an incredible configuration management and provisioning utility that enables you to automate all the things. In this series, you’ll learn everything you need to know in order to use Ansible for your day-to-day administration duties.

YouTube player

host_vars (ubuntu web server)

 apache_package_name: apache2
 apache_service: apache2
 php_package_name: libapache2-mod-php

host_vars (ubuntu web server)

 apache_package_name: httpd
 apache_service: httpd
 php_package_name: php

main.yml (web_servers role)

 - name: install web server packages
   tags: apache,apache2,centos,httpd,ubuntu
       - "Template:Apache package name"
       - "Template:Php package name"
     state: latest
   when: ansible_distribution == "CentOS"
 - name: start and enable apache
   tags: apache,centos,httpd
     name: "Template:Apache service"
     state: started
     enabled: yes
 - name: change e-mail address for admin
   tags: apache,centos,httpd
     path: /etc/httpd/conf/httpd.conf
     regexp: '^ServerAdmin'
     line: ServerAdmin
   when: ansible_distribution == "CentOS"
   notify: restart_apache
 - name: copy html file for site
   tags: apache,apache,apache2,httpd
     src: default_site.html
     dest: /var/www/html/index.html
     owner: root
     group: root
     mode: 0644

Handlers for the web_servers role

Create the handlers directory (within the role directory):

 mkdir handlers
 - name: restart_apache
   tags: apache,centos,httpd
     name: "Template:Apache service"
     state: restarted

Brand-New Course!

Discount Vouchers

Receive 5% off an LPI exam voucher!

Exclusive Member Features

Support the channel and receive exclusive perks!