[WIP] Multi-distro support for rsyslog-server role
This is intended to serve as an example of how we might be able to implement a single role for use in multiple distors. I have tested these changes with Ubuntu 14.04 as well as CentOS 7. I ran this role directly, outside of openstack-ansible, but I do not anticipate many changes to this role, only that openstack-ansible as a whole will fail when trying to configure a CentOS server at this time. Change-Id: I78c8c3be9d00fc505fabc83de36dfd43b8e85848
This commit is contained in:
parent
19dd1bdd91
commit
086785d96a
|
@ -16,10 +16,24 @@
|
|||
# rsyslog_server_apt_repos:
|
||||
# - { repo: "ppa:adiscon/v8-stable", state: "present" }
|
||||
|
||||
#We create a dictionary of distros in case there are name descrepancies.
|
||||
rsyslog_apt_distros:
|
||||
Ubuntu: "{{ rsyslog_server_apt_packages }}"
|
||||
Debian: "{{ rsyslog_server_apt_packages }}"
|
||||
|
||||
rsyslog_yum_distros:
|
||||
CentOS: "{{ rsyslog_server_yum_packages }}"
|
||||
RedHat: "{{ rsyslog_server_yum_packages }}"
|
||||
|
||||
|
||||
rsyslog_server_apt_packages:
|
||||
- rsyslog
|
||||
- logrotate
|
||||
|
||||
rsyslog_server_yum_packages:
|
||||
- rsyslog
|
||||
- logrotate
|
||||
|
||||
rsyslog_server_spool_directory: /var/spool/rsyslog
|
||||
rsyslog_server_storage_directory: /var/log/rsyslog
|
||||
|
||||
|
|
|
@ -13,12 +13,21 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Ensure a supported distro is found
|
||||
- assert:
|
||||
that:
|
||||
- (ansible_distribution in {{ rsyslog_apt_distros }} or
|
||||
ansible_distribution in {{ rsyslog_yum_distros }})
|
||||
|
||||
# apt-based distros
|
||||
- name: Rsyslog apt repository
|
||||
apt_repository:
|
||||
repo: "{{ item.repo }}"
|
||||
state: "{{ item.state }}"
|
||||
with_items: rsyslog_server_apt_repos
|
||||
when: rsyslog_server_apt_repos is defined
|
||||
when:
|
||||
- rsyslog_server_apt_repos is defined
|
||||
- ansible_distribution in {{ rsyslog_apt_distros }}
|
||||
register: add_repos
|
||||
until: add_repos|success
|
||||
retries: 5
|
||||
|
@ -30,6 +39,8 @@
|
|||
apt:
|
||||
update_cache: yes
|
||||
cache_valid_time: 600
|
||||
when:
|
||||
- ansible_distribution in {{ rsyslog_apt_distros }}
|
||||
register: apt_update
|
||||
until: apt_update|success
|
||||
retries: 5
|
||||
|
@ -37,14 +48,53 @@
|
|||
tags:
|
||||
- rsyslog-apt-packages
|
||||
|
||||
- name: Install rsyslog packages
|
||||
- name: Install rsyslog apt packages
|
||||
apt:
|
||||
pkg: "{{ item }}"
|
||||
state: latest
|
||||
register: install_packages
|
||||
until: install_packages|success
|
||||
when:
|
||||
- ansible_distribution in {{ rsyslog_apt_distros }}
|
||||
register: install_apt_packages
|
||||
until: install_apt_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: rsyslog_server_apt_packages
|
||||
with_items: "{{ rsyslog_apt_distros[ansible_distribution] | default([]) }}"
|
||||
tags:
|
||||
- rsyslog-apt-packages
|
||||
|
||||
# End apt-based distros
|
||||
|
||||
# yum-based distors
|
||||
- name: Rsyslog yum repository
|
||||
template:
|
||||
src: yumrepo.conf.j2
|
||||
dest: "/etc/yum.repos.d/{{ item.dest }}"
|
||||
owner: "root"
|
||||
group: "root"
|
||||
with_items: rsyslog_server_yum_repos
|
||||
when:
|
||||
- rsyslog_server_yum_repos is defined
|
||||
- ansible_distribution in {{ rsyslog_yum_distros }}
|
||||
tags:
|
||||
- rsyslog-config
|
||||
|
||||
- name: yum clean all
|
||||
command: "/usr/bin/yum clean all"
|
||||
when:
|
||||
- ansible_distribution in {{ rsyslog_yum_distros }}
|
||||
|
||||
- name: Install rsyslog yum packages
|
||||
when:
|
||||
- ansible_distribution in {{ rsyslog_yum_distros }}
|
||||
yum:
|
||||
pkg: "{{ item }}"
|
||||
state: latest
|
||||
register: install_rpm_packages
|
||||
until: install_rpm_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: "{{ rsyslog_yum_distros[ansible_distribution] | default([]) }}"
|
||||
tags:
|
||||
- rsyslog-yum-packages
|
||||
|
||||
# End yum-based distros
|
||||
|
|
|
@ -22,5 +22,7 @@
|
|||
with_items:
|
||||
- "{{ rsyslog_server_storage_directory }}"
|
||||
- "{{ rsyslog_server_spool_directory }}"
|
||||
when:
|
||||
- ansible_distribution in {{ rsyslog_apt_distros }}
|
||||
tags:
|
||||
- rsyslog-server-dirs
|
||||
|
|
Loading…
Reference in New Issue