From 10f0aab8f14fc618a9b2737ad6e632dc80833f70 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Fri, 27 Mar 2020 22:33:48 -0500 Subject: [PATCH] Ensure logrotate is installed and enabled --- .travis.yml | 29 +++++++++++++++++++++ defaults/main.yml | 2 ++ handlers/main.yml | 7 ++++++ meta/main.yml | 53 +++++++++++++++++++++++++++++++++++++++ tasks/main.yml | 46 +++++++++++++++++++++++++++++++++ tests/inventory | 2 ++ tests/test.yml | 5 ++++ vars/Fedora-29-x86_64.yml | 8 ++++++ vars/Fedora-30-x86_64.yml | 8 ++++++ vars/Fedora-31-x86_64.yml | 8 ++++++ vars/RedHat-6-i386.yml | 7 ++++++ vars/RedHat-6-x86_64.yml | 7 ++++++ vars/RedHat-7-x86_64.yml | 8 ++++++ vars/RedHat-8-x86_64.yml | 8 ++++++ vars/default.yml | 2 ++ vars/main.yml | 2 ++ 16 files changed, 202 insertions(+) create mode 100644 .travis.yml create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 tests/inventory create mode 100644 tests/test.yml create mode 100644 vars/Fedora-29-x86_64.yml create mode 100644 vars/Fedora-30-x86_64.yml create mode 100644 vars/Fedora-31-x86_64.yml create mode 100644 vars/RedHat-6-i386.yml create mode 100644 vars/RedHat-6-x86_64.yml create mode 100644 vars/RedHat-7-x86_64.yml create mode 100644 vars/RedHat-8-x86_64.yml create mode 100644 vars/default.yml create mode 100644 vars/main.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,29 @@ +--- +language: python +python: "2.7" + +# Use the new container infrastructure +sudo: false + +# Install ansible +addons: + apt: + packages: + - python-pip + +install: + # Install ansible + - pip install ansible + + # Check ansible version + - ansible --version + + # Create ansible.cfg with correct roles_path + - printf '[defaults]\nroles_path=../' >ansible.cfg + +script: + # Basic role syntax check + - ansible-playbook tests/test.yml -i tests/inventory --syntax-check + +notifications: + webhooks: https://galaxy.ansible.com/api/v1/notifications/ \ No newline at end of file diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..c78583b --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for ensure_log_rotation \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..1361333 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for ensure_log_rotation +- name: 'ensure_log_rotation.package_facts' + package_facts: +- name: 'ensure_log_rotation.service_facts' + service_facts: + diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..227ad9c --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,53 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.9 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. + \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..01082a3 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,46 @@ +--- +# tasks file for ensure_log_rotation +- name: 'include variables' + when: + - ansible_system == 'Linux' + include_vars: + file: '{{ lookup("first_found", findme ) }}' + name: 'ensure_log_rotation' + vars: + findme: + files: + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}.yml' + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-default.yml' + - '{{ ansible_distribution }}-default.yml' + - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}.yml' + - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}-default.yml' + - '{{ ansible_os_family }}-default.yml' + - 'default.yml' + paths: + - '../vars/' + errors: 'ignore' +- name: 'package discovery' + when: + - ansible_system == 'Linux' + - packages is not defined + package_facts: +- name: 'ensure services' + when: + - ansible_system == 'Linux' + - ensure_log_rotation is defined + - ensure_log_rotation.package_list is defined + - ensure_log_rotation.package_list is iterable + - services[item.name] is defined + service: + enabled: '{{ item.enabled }}' + name: '{{ item.name }}' + state: '{{ item.state }}' + loop: '{{ ensure_log_rotation.service_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' + notify: + - 'ensure_log_rotation.package_facts' + - 'ensure_log_rotation.service_facts' +- name: 'flush handlers' + meta: 'flush_handlers' + diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..2509be1 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - ensure_log_rotation \ No newline at end of file diff --git a/vars/Fedora-29-x86_64.yml b/vars/Fedora-29-x86_64.yml new file mode 100644 index 0000000..84b77a0 --- /dev/null +++ b/vars/Fedora-29-x86_64.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate.service', state: 'started', enabled: 'yes' } + - { name: 'logrotate.timer', state: 'started', enabled: 'yes' } + diff --git a/vars/Fedora-30-x86_64.yml b/vars/Fedora-30-x86_64.yml new file mode 100644 index 0000000..84b77a0 --- /dev/null +++ b/vars/Fedora-30-x86_64.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate.service', state: 'started', enabled: 'yes' } + - { name: 'logrotate.timer', state: 'started', enabled: 'yes' } + diff --git a/vars/Fedora-31-x86_64.yml b/vars/Fedora-31-x86_64.yml new file mode 100644 index 0000000..84b77a0 --- /dev/null +++ b/vars/Fedora-31-x86_64.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate.service', state: 'started', enabled: 'yes' } + - { name: 'logrotate.timer', state: 'started', enabled: 'yes' } + diff --git a/vars/RedHat-6-i386.yml b/vars/RedHat-6-i386.yml new file mode 100644 index 0000000..74b2daf --- /dev/null +++ b/vars/RedHat-6-i386.yml @@ -0,0 +1,7 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate', state: 'started', enabled: 'yes' } + diff --git a/vars/RedHat-6-x86_64.yml b/vars/RedHat-6-x86_64.yml new file mode 100644 index 0000000..74b2daf --- /dev/null +++ b/vars/RedHat-6-x86_64.yml @@ -0,0 +1,7 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate', state: 'started', enabled: 'yes' } + diff --git a/vars/RedHat-7-x86_64.yml b/vars/RedHat-7-x86_64.yml new file mode 100644 index 0000000..84b77a0 --- /dev/null +++ b/vars/RedHat-7-x86_64.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate.service', state: 'started', enabled: 'yes' } + - { name: 'logrotate.timer', state: 'started', enabled: 'yes' } + diff --git a/vars/RedHat-8-x86_64.yml b/vars/RedHat-8-x86_64.yml new file mode 100644 index 0000000..84b77a0 --- /dev/null +++ b/vars/RedHat-8-x86_64.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_log_rotation +package_list: + - { name: 'logrotate', state: 'present' } +service_list: + - { name: 'logrotate.service', state: 'started', enabled: 'yes' } + - { name: 'logrotate.timer', state: 'started', enabled: 'yes' } + diff --git a/vars/default.yml b/vars/default.yml new file mode 100644 index 0000000..ad37505 --- /dev/null +++ b/vars/default.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_log_rotation \ No newline at end of file diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..ad37505 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for ensure_log_rotation \ No newline at end of file