diff --git a/defaults/main.yml b/defaults/main.yml index 8966039..4a7e28d 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -36,6 +36,7 @@ haproxy_pre_apt_packages: haproxy_apt_packages: - haproxy - hatop + - rsyslog # Used for local logging - vim-haproxy ## Haproxy Configuration diff --git a/files/haproxy-logging.cfg b/files/haproxy-logging.cfg new file mode 100644 index 0000000..0d38670 --- /dev/null +++ b/files/haproxy-logging.cfg @@ -0,0 +1,6 @@ +$ModLoad imudp +$UDPServerRun 514 +$template Haproxy,"%msg%\n" +local0.=info -/var/log/haproxy/haproxy.log +local1.notice -/var/log/haproxy/haproxy-status.log +local0.* ~ diff --git a/handlers/main.yml b/handlers/main.yml index 765b4d3..56aca1b 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -24,3 +24,10 @@ state: "restarted" pattern: "haproxy" enabled: "yes" + +- name: Restart rsyslog + service: + name: "rsyslog" + state: "restarted" + pattern: "rsyslog" + enabled: "yes" diff --git a/tasks/haproxy_post_install.yml b/tasks/haproxy_post_install.yml index 5105021..d5d740a 100644 --- a/tasks/haproxy_post_install.yml +++ b/tasks/haproxy_post_install.yml @@ -31,4 +31,14 @@ tags: - haproxy-base-config +- name: Drop haproxy logging config + copy: + src: "{{ item }}" + dest: "/etc/rsyslog.d/99-haproxy-local-logging.conf" + with_items: + - haproxy-logging.cfg + notify: Restart rsyslog + tags: + - haproxy-base-config + - include: haproxy_service_config.yml diff --git a/tasks/haproxy_pre_install.yml b/tasks/haproxy_pre_install.yml new file mode 100644 index 0000000..adea927 --- /dev/null +++ b/tasks/haproxy_pre_install.yml @@ -0,0 +1,41 @@ +--- +# Copyright 2015, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Test for log directory or link + shell: | + if [ -h "/var/log/haproxy" ]; then + chown -h syslog:adm "/var/log/haproxy" + chown -R syslog:adm "$(readlink /var/log/haproxy)" + else + exit 1 + fi + register: log_dir + failed_when: false + changed_when: log_dir.rc != 0 + tags: + - haproxy-dirs + - haproxy-logs + +- name: Create haproxy log dir + file: + path: "{{ item.path }}" + state: directory + mode: "{{ item.mode|default('0755') }}" + with_items: + - { path: "/var/log/haproxy" } + when: log_dir.rc != 0 + tags: + - haproxy-dirs + - haproxy-logs diff --git a/tasks/main.yml b/tasks/main.yml index e019fe7..3b00de4 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +- include: haproxy_pre_install.yml + - include: haproxy_add_ppa_repo.yml when: haproxy_ssl | bool