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.
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
package:
name:
- "Template:Apache package name"
- "Template:Php package name"
state: latest
when: ansible_distribution == "CentOS"
- name: start and enable apache
tags: apache,centos,httpd
service:
name: "Template:Apache service"
state: started
enabled: yes
- name: change e-mail address for admin
tags: apache,centos,httpd
lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: '^ServerAdmin'
line: ServerAdmin somebody@somewhere.net
when: ansible_distribution == "CentOS"
notify: restart_apache
- name: copy html file for site
tags: apache,apache,apache2,httpd
copy:
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
service:
name: "Template:Apache service"
state: restarted