From 589167ce4710aad5cc1def2e84eb135b2619ce16 Mon Sep 17 00:00:00 2001 From: Gordon Kelly Date: Thu, 1 Mar 2018 01:36:20 +0000 Subject: ansible: add checks to ensure all ipmi dependancies are met Change-Id: I342016af10a1ed3a11364bda7bd7a563882fafbd Signed-off-by: Gordon Kelly --- .../config_files/tasks/default_read_import.yml | 8 ---- docker/ansible/roles/config_files/tasks/ipmi.yml | 45 ++++++++++++++++++++++ docker/ansible/roles/config_files/tasks/main.yml | 4 +- .../templates/default_read_plugins.conf.j2 | 1 - .../roles/config_files/templates/ipmi.conf.j2 | 45 ++++++++++++++++++++++ 5 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 docker/ansible/roles/config_files/tasks/ipmi.yml create mode 100644 docker/ansible/roles/config_files/templates/ipmi.conf.j2 (limited to 'docker/ansible/roles/config_files') diff --git a/docker/ansible/roles/config_files/tasks/default_read_import.yml b/docker/ansible/roles/config_files/tasks/default_read_import.yml index f11b8b80..589ace34 100644 --- a/docker/ansible/roles/config_files/tasks/default_read_import.yml +++ b/docker/ansible/roles/config_files/tasks/default_read_import.yml @@ -101,14 +101,6 @@ tags: - ipc -- name: enable ipmi plugin - replace: - path: "{{ config_file_dir }}/default_read_plugins.conf" - regexp: '(\s+)#LoadPlugin ipmi(\s+.*)?$' - replace: '\1LoadPlugin ipmi\2' - tags: - - ipmi - - name: enable df plugin replace: path: "{{ config_file_dir }}/default_read_plugins.conf" diff --git a/docker/ansible/roles/config_files/tasks/ipmi.yml b/docker/ansible/roles/config_files/tasks/ipmi.yml new file mode 100644 index 00000000..da3f42bd --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/ipmi.yml @@ -0,0 +1,45 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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: Check if /dev/ipmi0 exists + stat: + path: /dev/ipmi0 + register: ipmi0_exists + ignore_errors: True + tags: + - ipmi + +- name: check ipmi_devintf is loaded + shell: "lsmod | cut -d' ' -f1 | grep ipmi_devintf" + register: ipmi_devintf + ignore_errors: true + tags: + - ipmi + +- name: check ipmi_si is loaded + shell: "lsmod | cut -d' ' -f1 | grep ipmi_si" + register: ipmi_devsi + ignore_errors: true + tags: + - ipmi + +- name: enable ipmi plugin + template: + src: ipmi.conf.j2 + dest: "{{ config_file_dir }}/ipmi.conf" + when: ipmi0_exists|succeeded and ipmi_devintf|succeeded and ipmi_devsi|succeeded + tags: + - ipmi + diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml index 27362e3b..7d3919a1 100644 --- a/docker/ansible/roles/config_files/tasks/main.yml +++ b/docker/ansible/roles/config_files/tasks/main.yml @@ -71,6 +71,9 @@ - name: enable virt plugin import_tasks: virt.yml +- name: enable ipmi plugin + include: ipmi.yml + - name: copy additional configuration files to target system template: src: "{{ item }}" @@ -80,4 +83,3 @@ - copy_additional_configs with_fileglob: - "{{ additional_configs_path }}" - diff --git a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 index e0c52ca0..fd941a76 100644 --- a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 +++ b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 @@ -23,7 +23,6 @@ Interval "{{ interval_value }}" #LoadPlugin disk #LoadPlugin ethstat #LoadPlugin ipc -#LoadPlugin ipmi #LoadPlugin irq #LoadPlugin load #LoadPlugin memory diff --git a/docker/ansible/roles/config_files/templates/ipmi.conf.j2 b/docker/ansible/roles/config_files/templates/ipmi.conf.j2 new file mode 100644 index 00000000..54554d23 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/ipmi.conf.j2 @@ -0,0 +1,45 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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. + +LoadPlugin ipmi + +# +# +# Sensor "some_sensor" +# Sensor "another_one" +# IgnoreSelected false +# NotifySensorAdd false +# NotifySensorRemove true +# NotifySensorNotPresent false +# NotifyIPMIConnectionState false +# SELEnabled false +# SELClearEvent false +# +# +# Host "server.example.com" +# Address "1.2.3.4" +# Username "user" +# Password "secret" +# #AuthType "md5" +# Sensor "some_sensor" +# Sensor "another_one" +# IgnoreSelected false +# NotifySensorAdd false +# NotifySensorRemove true +# NotifySensorNotPresent false +# NotifyIPMIConnectionState false +# SELEnabled false +# SELClearEvent false +# +# -- cgit 1.2.3-korg