diff --git a/handlers/restart_services.yml b/handlers/restart_services.yml index ce7cc0f827..5398d47f0c 100644 --- a/handlers/restart_services.yml +++ b/handlers/restart_services.yml @@ -147,3 +147,6 @@ - name: restart varnish service: name=varnish state=restarted + +- name: restart keepalived + service: name=keepalived state=restarted diff --git a/roles/keepalived/tasks/main.yml b/roles/keepalived/tasks/main.yml new file mode 100644 index 0000000000..7fb3572bc8 --- /dev/null +++ b/roles/keepalived/tasks/main.yml @@ -0,0 +1,27 @@ +# +# role for keepalived +# This role needs several variables defined: +# +# keepalived_interface - interface to listen on +# keepalived_priority - priority of this host +# keepalived_ipaddress - virtual ip address on master host +# + +- name: Install keepalived package + yum: state=present name=keepalived + tags: + - packages + - keepalived + +- name: Install keepalived template + template: src=keepalived.conf.j2 dest=/etc/keepalived.conf + tags: + - config + - keepalived + notify: + - restart keepalived + +- name: Make sure keepalived is set to start and is running + service: state=running enabled=true name=keepalived + - service + - keepalived diff --git a/roles/keepalived/templates/keepalived.conf.j2 b/roles/keepalived/templates/keepalived.conf.j2 new file mode 100644 index 0000000000..f757766577 --- /dev/null +++ b/roles/keepalived/templates/keepalived.conf.j2 @@ -0,0 +1,22 @@ +global_defs { + notification_email { + admin@fedoraproject.org + } + notification_email_from keepalived + smtp_server 10.5.126.12 + smtp_connect_timeout 30 +} + +vrrp_instance VI_1 { + # initial state + state BACKUP + interface {{ keepalived_interface }} + # arbitary unique number 0..255 + # used to differentiate multiple instances of vrrpd + virtual_router_id 17 + # for electing MASTER, highest priority wins. + # to be MASTER, make 50 more than other machines. + priority {{ keepalived_priority }} + virtual_ipaddress { + {{ keepalived_ipaddress }} +}