vi /etc/ansible/hosts
[webservers]
 srv221.d01.net
 srv222.d01.net
 srv223.d01.net
 srv224.d01.net
ansible-galaxy init /etc/ansible/roles/httpd --offline
vi /etc/ansible/roles/httpd/tasks/main.yml
---
- import_tasks: install.yml
- import_tasks: configure.yml
- import_tasks: service.yml
vi /etc/ansible/roles/httpd/tasks/install.yml
---
- name: install httpd package
  yum: name=httpd state=latest
vi /etc/ansible/roles/httpd/tasks/configure.yml
---
- name: copy index.html file
  copy: src=files/index.html dest=/var/www/html/
  notify:
  - restart httpd
vi /etc/ansible/roles/httpd/tasks/service.yml
---
- name: Start and Enable httpd service
  service: name=httpd state=restarted enabled=yes
vi /etc/ansible/roles/httpd/files/index.html
<h1>welcome</h1>
vi /etc/ansible/roles/httpd/handlers/main.yml
---
- name: restart httpd
  service : name=httpd state=restarted
vi /etc/ansible/mysetup.yml
---
- hosts: webservers
  roles:
  - httpd
ansible-playbook /etc/ansible/mysetup.yml --syntax-check
ansible-playbook /etc/ansible/mysetup.yml

PLAY [webservers]

TASK [Gathering Facts] * ok: [srv224.d01.net] ok: [srv223.d01.net] ok: [srv222.d01.net] ok: [srv221.d01.net]

TASK [httpd : Install httpd package] * changed: [srv223.d01.net] changed: [srv221.d01.net] changed: [srv224.d01.net] changed: [srv222.d01.net]

TASK [httpd : copy index.html file] changed: [srv224.d01.net] changed: [srv223.d01.net] changed: [srv222.d01.net] changed: [srv221.d01.net]

TASK [httpd : Start and Enable httpd service] ** changed: [srv223.d01.net] changed: [srv224.d01.net] changed: [srv222.d01.net] changed: [srv221.d01.net]

RUNNING HANDLER [httpd : restart httpd] ** changed: [srv224.d01.net] changed: [srv223.d01.net] changed: [srv222.d01.net] changed: [srv221.d01.net]

PLAY RECAP * srv221.d01.net : ok=5 changed=4 unreachable=0 failed=0 srv222.d01.net : ok=5 changed=4 unreachable=0 failed=0 srv223.d01.net : ok=5 changed=4 unreachable=0 failed=0 srv224.d01.net : ok=5 changed=4 unreachable=0 failed=0