--- # 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: "Ensure kernel module(s)" modprobe: name: "{{ item }}" with_items: openstack_host_kernel_modules when: openstack_host_kernel_modules is defined and item != '' tags: - openstack-host-kernel-modules - name: "Ensure kernel module(s) loaded at boot" lineinfile: dest: /etc/modules line: "{{ item }}" with_items: openstack_host_kernel_modules when: openstack_host_kernel_modules is defined and item != '' tags: - openstack-host-kernel-modules - name: get kernel release command: "uname -r" register: uname tags: - openstack-host-specific-kernel-modules - name: check how kernel modules are implemented (statically builtin, dynamic, not set) shell: grep {{ item.pattern }} /boot/config-{{ uname.stdout}} register: modules with_items: openstack_host_specific_kernel_modules when: - openstack_host_specific_kernel_modules is defined - inventory_hostname in groups["{{ item.group }}"] ignore_errors: yes tags: - openstack-host-specific-kernel-modules - name: fail if a specific kernel module is not set fail: msg: "{{ item['stdout'] }}" when: - modules['changed'] | bool - "'is not set' in item['stdout']" with_items: modules["results"] tags: - openstack-host-specific-kernel-modules - name: fail if a specific pattern is not valid fail: msg: "'pattern:' {{ item['item']['pattern'] }} 'is not valid. Search results for pattern lead to:' {{ item['stdout'] }}" when: - modules['changed'] | bool - "'=y' not in item['stdout']" - "'=m' not in item['stdout']" with_items: modules["results"] tags: - openstack-host-specific-kernel-modules - name: "Ensure dynamic specific kernel module(s) are loaded" modprobe: name: "{{ item['item']['name'] }}" with_items: modules["results"] when: - modules['changed'] | bool - inventory_hostname in groups[item["item"]["group"]] - "'=m' in item['stdout']" tags: - openstack-host-specific-kernel-modules - name: "Ensure dynamic specific kernel module(s) loaded at boot" lineinfile: dest: /etc/modules line: "{{ item['item']['name'] }}" with_items: modules["results"] when: - modules['changed'] | bool - inventory_hostname in groups[item["item"]["group"]] - "'=m' in item['stdout']" tags: - openstack-host-specific-kernel-modules