diff --git a/roles/httpd/redirect/tasks/main.yml b/roles/httpd/redirect/tasks/main.yml new file mode 100644 index 0000000000..1541cdbf91 --- /dev/null +++ b/roles/httpd/redirect/tasks/main.yml @@ -0,0 +1,35 @@ +# This is a generic role for specifying redirects. When I ported this over from +# puppet, I looked first at trying to combine all of our redirects into one +# perhaps easier to manage master redirects file. The trouble I hit was that +# certain redirects need to apply in the context of certain VirtualHost entries +# while not in others. Consequently, we use this template to stuff the redirect +# role only into the {{website}}/ folder for each site. + +# Just do some sanity checking first +- fail: msg="Bailing out. 'name' must be passed to this role." + when: name is not defined +- fail: msg="Bailing out. 'website' must be passed to this role." + when: website is not defined +- fail: msg="Bailing out. 'target' must be passed to this role." + when: target is not defined + +# These two should never fail. We have defaults for them defined in +# roles/httpd/redirect/vars/main.yml -- They are checked here for completeness. +- fail: msg="Bailing out. 'path' must be passed to this role." + when: path is not defined +- fail: msg="Bailing out. 'status' must be passed to this role." + when: status is not defined + +# This is the only real work we do. +- name: Copy over httpd redirect file. + template: > + src=redirect.conf + dest=/etc/httpd/conf.d/{{website}}/{{name}}-redirect.conf + mode=0644 + owner=root + group=root + notify: + - restart httpd + tags: + - httpd + - httpd/redirects diff --git a/roles/httpd/redirect/templates/redirect.conf b/roles/httpd/redirect/templates/redirect.conf new file mode 100644 index 0000000000..719483b517 --- /dev/null +++ b/roles/httpd/redirect/templates/redirect.conf @@ -0,0 +1 @@ +Redirect {{ status }} {{ path }} {{ target }} diff --git a/roles/httpd/redirect/vars/main.yml b/roles/httpd/redirect/vars/main.yml new file mode 100644 index 0000000000..2d7d5c71ed --- /dev/null +++ b/roles/httpd/redirect/vars/main.yml @@ -0,0 +1,2 @@ +status: 301 +path: /