From 0b88e70ef90d7771c3872c40836f9e2e80700bc0 Mon Sep 17 00:00:00 2001 From: "Alessio Cassibba (x-drum)" Date: Wed, 15 Mar 2017 15:58:48 +0100 Subject: [PATCH] Add support for adiscon official package repository --- README.md | 2 ++ defaults/main.yml | 2 ++ tasks/arch_packages.yml | 8 -------- tasks/deb_packages.yml | 8 -------- tasks/main_arch.yml | 10 +++++++++- tasks/main_deb.yml | 24 +++++++++++++++++++++++- tasks/main_rh.yml | 29 ++++++++++++++++++++++++++++- tasks/rh_packages.yml | 8 -------- templates/rsyslog.yum.repo.j2 | 13 +++++++++++++ test.yml | 2 ++ 10 files changed, 79 insertions(+), 27 deletions(-) delete mode 100644 tasks/arch_packages.yml delete mode 100644 tasks/deb_packages.yml delete mode 100644 tasks/rh_packages.yml create mode 100644 templates/rsyslog.yum.repo.j2 diff --git a/README.md b/README.md index 2215969..575520a 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ and configuration can be overridden, for additional informations please have a l **rsyslog_default_config**: Setup a default basic configuration stanza (default: "True") **purge_config**: Purge existing config snippets (default: "False") +**use_repo**: Use Adiscon rsyslog official package repository (default: "False") +**repo_releasever**: Default rsyslog major release repository version to use (default: 8) Dependencies diff --git a/defaults/main.yml b/defaults/main.yml index 0bc7a8d..13ddca0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -12,6 +12,8 @@ rsyslog_action_file_default_template: RSYSLOG_TraditionalFileFormat #rsyslog_priv_drop_to_user: syslog #rsyslog_priv_drop_to_group: syslog purge_config: False +use_repo: False +repo_releasever: 8 items: [] rsyslog_default_config: "True" rsyslog_os_supported: no diff --git a/tasks/arch_packages.yml b/tasks/arch_packages.yml deleted file mode 100644 index 73ad829..0000000 --- a/tasks/arch_packages.yml +++ /dev/null @@ -1,8 +0,0 @@ -# Install packages for Archlinux ---- -- name: install packages for Archlinux - tags: - - rsyslog - - packages - pacman: pkg={{item}} state=installed - with_items: '{{ rsyslog_package_names }}' diff --git a/tasks/deb_packages.yml b/tasks/deb_packages.yml deleted file mode 100644 index 146b57b..0000000 --- a/tasks/deb_packages.yml +++ /dev/null @@ -1,8 +0,0 @@ -# Install packages for Debian ---- -- name: install packages for Debian - tags: - - rsyslog - - packages - apt: pkg={{item}} state=installed - with_items: '{{ rsyslog_package_names }}' diff --git a/tasks/main_arch.yml b/tasks/main_arch.yml index 1419701..fcb6b62 100644 --- a/tasks/main_arch.yml +++ b/tasks/main_arch.yml @@ -1,3 +1,11 @@ # Archlinux related tasks --- -- include: arch_packages.yml \ No newline at end of file + +## TODO maybe?: no official upstream packages/repo for Archlinux + +- name: install packages for Archlinux + tags: + - rsyslog + - packages + pacman: pkg={{item}} state=installed + with_items: '{{ rsyslog_package_names }}' \ No newline at end of file diff --git a/tasks/main_deb.yml b/tasks/main_deb.yml index 1ea8a12..b399214 100644 --- a/tasks/main_deb.yml +++ b/tasks/main_deb.yml @@ -1,3 +1,25 @@ # Debian related tasks --- -- include: deb_packages.yml \ No newline at end of file + +- name: Import Adiscon rsyslog Key for apt + apt_key: keyserver=keys.gnupg.net id=AEF0CF8E state=present + when: use_repo == True and ansible_distribution == 'Debian' + +## TODO: v8-stable for debian wheezy only available at this time, sanitize selection +## http://www.rsyslog.com/debian-repository/ +- name: Enable Adiscon rsyslog apt repo + apt_repository: repo='deb http://debian.adiscon.com/v8-stable wheezy/' state=present filename='rsyslog' update_cache='yes' + when: use_repo == True and ansible_distribution == 'Debian' + +## TODO: v8-stable/v7-stable available, for "ubuntu versions not yet reached end of life".. sanitize selection +## http://www.rsyslog.com/ubuntu-repository/ +- name: Enable Adiscon rsyslog apt repo + apt_repository: repo='ppa:adiscon/v{{ repo_releasever }}-stable' + when: use_repo == True and ansible_distribution == 'Ubuntu' + +- name: install packages for Debian + tags: + - rsyslog + - packages + apt: pkg={{item}} state=installed update_cache=yes + with_items: '{{ rsyslog_package_names }}' \ No newline at end of file diff --git a/tasks/main_rh.yml b/tasks/main_rh.yml index e8b79f6..7023d28 100644 --- a/tasks/main_rh.yml +++ b/tasks/main_rh.yml @@ -1,3 +1,30 @@ # RHEL related tasks --- -- include: rh_packages.yml \ No newline at end of file + +- name: Check Adiscon rsyslog GPG Key presence + tags: + - rsyslog + - packages + stat: path=/etc/pki/rpm-gpg/RPM-GPG-KEY-Adiscon + register: adiscon_gpg_key + +- name: Import Adiscon rsyslog GPG Key for RHEL + tags: + - rsyslog + - packages + rpm_key: key=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon state=present + when: adiscon_gpg_key.stat.exists == False and use_repo == True + +- name: Enable Adiscon rsyslog yum repo + tags: + - rsyslog + - packages + template: src=rsyslog.yum.repo.j2 dest=/etc/yum.repos.d/rsyslog.repo + when: use_repo == True + +- name: install packages for RHEL + tags: + - rsyslog + - packages + yum: pkg={{item}} state=latest + with_items: '{{ rsyslog_package_names }}' diff --git a/tasks/rh_packages.yml b/tasks/rh_packages.yml deleted file mode 100644 index 8e28b58..0000000 --- a/tasks/rh_packages.yml +++ /dev/null @@ -1,8 +0,0 @@ -# Install packages for RHEL ---- -- name: install packages for RHEL - tags: - - rsyslog - - packages - yum: pkg={{item}} state=installed - with_items: '{{ rsyslog_package_names }}' diff --git a/templates/rsyslog.yum.repo.j2 b/templates/rsyslog.yum.repo.j2 new file mode 100644 index 0000000..2f5fb17 --- /dev/null +++ b/templates/rsyslog.yum.repo.j2 @@ -0,0 +1,13 @@ +## {{ ansible_managed }} + +[rsyslog_{{ repo_releasever }}] +name=Adiscon CentOS-{{ ansible_distribution_major_version }} - local packages for {{ ansible_architecture }} +baseurl=http://rpms.adiscon.com/v7-stable/epel-{{ ansible_distribution_major_version }}/{{ ansible_architecture }} +enabled=1 +{% if ansible_distribution_major_version == 5 %} +gpgcheck=0 +{% else %} +gpgcheck=1 +{% endif %} +gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon +protect=1 diff --git a/test.yml b/test.yml index 7d8cc24..2710f0f 100644 --- a/test.yml +++ b/test.yml @@ -10,6 +10,8 @@ - role: ../../xdrum.rsyslog rsyslog_default_config: True purge_config: True + use_repo: False + repo_releasever: 7 items: - name: "20-iptables" lines: