summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGordon Kelly <gordon.kelly@intel.com>2018-03-01 01:36:20 +0000
committerGordon Kelly <gordon.kelly@intel.com>2018-03-02 16:07:07 +0000
commit589167ce4710aad5cc1def2e84eb135b2619ce16 (patch)
treede24b176d87a23f3aa7936c163bbc773bb3ca647
parent34a8da211410331108fe0d7f9f4dbc2fdb51e99a (diff)
ansible: add checks to ensure all ipmi dependancies are met
Change-Id: I342016af10a1ed3a11364bda7bd7a563882fafbd Signed-off-by: Gordon Kelly <gordon.kelly@intel.com>
-rw-r--r--docker/ansible/roles/config_files/tasks/default_read_import.yml8
-rw-r--r--docker/ansible/roles/config_files/tasks/ipmi.yml45
-rw-r--r--docker/ansible/roles/config_files/tasks/main.yml4
-rw-r--r--docker/ansible/roles/config_files/templates/default_read_plugins.conf.j21
-rw-r--r--docker/ansible/roles/config_files/templates/ipmi.conf.j245
5 files changed, 93 insertions, 10 deletions
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
+
+#<Plugin ipmi>
+# <Instance "local">
+# Sensor "some_sensor"
+# Sensor "another_one"
+# IgnoreSelected false
+# NotifySensorAdd false
+# NotifySensorRemove true
+# NotifySensorNotPresent false
+# NotifyIPMIConnectionState false
+# SELEnabled false
+# SELClearEvent false
+# </Instance>
+# <Instance "remote">
+# 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
+# </Instance>
+#</Plugin>