--- # Copyright 2014, Rackspace US, Inc. # # 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 how kernel modules are implemented (statically builtin, dynamic, not set) slurp: src: "/boot/config-{{ ansible_kernel }}" register: modules when: openstack_host_specific_kernel_modules | length > 0 - name: fail if a specific kernel module is not set fail: msg: "{{ item.pattern }} is not set" with_items: "{{ openstack_host_specific_kernel_modules }}" when: - groups[item.group] is defined - inventory_hostname in groups[item.group] - (modules.content | b64decode).find(item.pattern + ' is not set') != -1 - name: fail if a specific pattern is not valid fail: msg: "{{ item.pattern }} is not a valid pattern" with_items: "{{ openstack_host_specific_kernel_modules }}" when: - groups[item.group] is defined - inventory_hostname in groups[item.group] - (modules.content | b64decode).find(item.pattern + '=y') == -1 - (modules.content | b64decode).find(item.pattern + '=m') == -1 - name: "Ensure kernel module(s)" modprobe: name: "{{ item }}" with_items: "{{ openstack_host_kernel_modules }}" when: - openstack_host_kernel_modules | length > 0 - item != '' - name: "Ensure dynamic specific kernel module(s) are loaded" modprobe: name: "{{ item.name }}" with_items: "{{ openstack_host_specific_kernel_modules }}" when: - groups[item.group] is defined - inventory_hostname in groups[item.group] - (modules.content | b64decode).find(item.pattern + '=m') != -1 - name: Write list of modules to load at boot template: src: modprobe.conf.j2 dest: "{{ openstask_host_module_file }}"