ansible: add checks to ensure all ipmi dependancies are met 87/52887/4
authorGordon Kelly <gordon.kelly@intel.com>
Thu, 1 Mar 2018 01:36:20 +0000 (01:36 +0000)
committerGordon Kelly <gordon.kelly@intel.com>
Fri, 2 Mar 2018 16:07:07 +0000 (16:07 +0000)
Change-Id: I342016af10a1ed3a11364bda7bd7a563882fafbd
Signed-off-by: Gordon Kelly <gordon.kelly@intel.com>
docker/ansible/roles/config_files/tasks/default_read_import.yml
docker/ansible/roles/config_files/tasks/ipmi.yml [new file with mode: 0644]
docker/ansible/roles/config_files/tasks/main.yml
docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
docker/ansible/roles/config_files/templates/ipmi.conf.j2 [new file with mode: 0644]

index f11b8b8..589ace3 100644 (file)
   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 (file)
index 0000000..da3f42b
--- /dev/null
@@ -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
+
index 27362e3..7d3919a 100644 (file)
@@ -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 }}"
-
index e0c52ca..fd941a7 100644 (file)
@@ -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 (file)
index 0000000..54554d2
--- /dev/null
@@ -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>