Refining apache setup
We’ve installed apache, now let’s set up our virtualhost on our server.
Refining the playbook
We need just one virtualhost on our server, but we want to replace the default one with something more specific.
So we’ll have to remove the current (presumably default
) virtualhost, send our virtualhost, activate it and restart apache.
Let’s create a directory called files
, and add our virtualhost configuration for host1.example.org, which we’ll call awesome-app
:
<VirtualHost *:80>
DocumentRoot /var/www/awesome-app
Options -Indexes
ErrorLog /var/log/apache2/error.log
TransferLog /var/log/apache2/access.log
</VirtualHost>
Now, a quick update to our apache playbook and we’re set:
- hosts: web
tasks:
- name: Installs apache web server
apt:
pkg: apache2
state: present
update_cache: true
- name: Push default virtual host configuration
copy:
src: files/awesome-app
dest: /etc/apache2/sites-available/awesome-app
mode: 0640
- name: Disable the default virtualhost
file:
dest: /etc/apache2/sites-enabled/default
state: absent
notify:
- restart apache
- name: Disable the default ssl virtualhost
file:
dest: /etc/apache2/sites-enabled/default-ssl
state: absent
notify:
- restart apache
- name: Activates our virtualhost
file:
src: /etc/apache2/sites-available/awesome-app
dest: /etc/apache2/sites-enabled/awesome-app
state: link
notify:
- restart apache
handlers:
- name: restart apache
service:
name: apache2
state: restarted
Here we go:
$ ansible-playbook -i hosts -l host1.example.org apache.yml
PLAY [web] *********************
GATHERING FACTS *********************
ok: [host1.example.org]
TASK: [Installs apache web server] *********************
ok: [host1.example.org]
TASK: [Push default virtual host configuration] *********************
changed: [host1.example.org]
TASK: [Disable the default virtualhost] *********************
changed: [host1.example.org]
TASK: [Disable the default ssl virtualhost] *********************
changed: [host1.example.org]
TASK: [Activates our virtualhost] *********************
changed: [host1.example.org]
NOTIFIED: [restart apache] *********************
changed: [host1.example.org]
PLAY RECAP *********************
host1.example.org : ok=7 changed=5 unreachable=0 failed=0
Pretty cool! Well, thinking about it, we’re getting ahead of ourselves here. Shouldn’t we check that the config is ok before restarting apache? This way we won’t end up interrupting the service if our configuration file is incorrect.
Lets do that in example06.