---
|
- name: Install a webserver and start the service
|
hosts: server
|
become: true
|
remote_user: devops
|
force_handlers: true
|
vars:
|
- installstate: present
|
tasks:
|
- name: Prepare Webserver
|
block:
|
- name: Install httpd
|
package:
|
name: httpd
|
state: '{{ installstate }}'
|
- name: create index.html
|
copy:
|
dest: /var/www/html/index.html
|
content: 'Welcome to {{ ansible_fqdn }}!'
|
mode: 0644
|
- name: start httpd
|
service:
|
name: httpd
|
state: started
|
enabled: true
|
- name: 'retrieve content from port 80'
|
uri:
|
url: "http://localhost:80/index.html"
|
return_content: false
|
ignore_errors: true
|
- name: Change Webserver config to 8080
|
block:
|
- name: change listen port to 8080
|
lineinfile:
|
dest: /etc/httpd/conf/httpd.conf
|
regexp: '^Listen 80$'
|
line: 'Listen 8080'
|
state: present
|
- name: retrieve content from port 8080
|
uri:
|
url: "http://localhost:8080/index.html"
|
return_content: false
|
rescue:
|
- name: restart webserver
|
service:
|
name: httpd
|
state: restarted
|
always:
|
- name: retrieve content from port 8080
|
uri:
|
url: "http://localhost:8080/index.html"
|
return_content: false
|