Skip to content

Commit 2eeab40

Browse files
Add NVMe role
1 parent f7e44d0 commit 2eeab40

File tree

5 files changed

+80
-0
lines changed

5 files changed

+80
-0
lines changed

ansible/roles/linux-common/tasks/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
- include_role:
2020
name: linux-volumes-by-tag
2121

22+
- include_role:
23+
name: linux-nvme
24+
2225
- name: Load relevant kernel modules
2326
template:
2427
src: modules.conf.j2
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
3+
- name: Set LVM configuration
4+
set_fact:
5+
lvm_groups:
6+
- vgname: lvm-nvme
7+
disks: "{{ devices | map('regex_replace', '^', '/dev/') }}"
8+
create: true
9+
lvnames:
10+
- lvname: primary
11+
size: 100%FREE
12+
opts: --type raid0
13+
create: true
14+
filesystem: ext4
15+
mount: true
16+
mntp: /mnt/nvme
17+
18+
- name: Ensure LVM configuration is applied
19+
vars:
20+
manage_lvm: True
21+
include_role:
22+
name: mrlesmithjr.manage_lvm
23+
apply:
24+
become: True
25+
when:
26+
- lvm_groups is defined
27+
- lvm_groups | length > 0
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
3+
- hosts: localhost
4+
gather_facts: true
5+
become: true
6+
vars:
7+
openstack_metadata: "{{ (lookup('url', 'http://169.254.169.254/openstack/latest/meta_data.json') | from_json).get('meta', {}) }}"
8+
tasks:
9+
- name: Process openstack metadata
10+
set_fact:
11+
devices: "{{ openstack_metadata.lvm_disk_nvme | split(',') | map('trim') | list }}"
12+
when: openstack_metadata.lvm_disk_nvme is defined
13+
14+
- name: Check if devices exist
15+
assert:
16+
that: "item in ansible_devices"
17+
register: device_list
18+
failed_when: false
19+
with_items: "{{ devices }}"
20+
when: openstack_metadata.lvm_disk_nvme is defined
21+
22+
- name: Configure LVM filesystem
23+
include_tasks: /etc/ansible-init/includes/nvme-configure-lvm.yml
24+
when:
25+
- openstack_metadata.lvm_disk_nvme is defined
26+
- "'Assertion failed' not in device_list.results | map(attribute='msg')"
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
3+
- name: Ensure ansible-init directories exist
4+
file:
5+
path: "/etc/ansible-init/{{ item }}"
6+
state: directory
7+
loop:
8+
- includes
9+
- playbooks
10+
11+
- name: Install task includes
12+
copy:
13+
src: "{{ item }}"
14+
dest: /etc/ansible-init/includes/{{ item }}
15+
loop:
16+
- nvme-configure-lvm.yml
17+
18+
- name: Install ansible-init playbook
19+
copy:
20+
src: nvme-playbook.yml
21+
# Leave some numbers for playbooks to execute before
22+
dest: /etc/ansible-init/playbooks/10-nvme.yml

requirements.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ roles:
2222
- src: https://github.com/stackhpc/ansible-role-os-manila-mount.git
2323
name: stackhpc.os-manila-mount
2424
version: v24.5.0
25+
- src: mrlesmithjr.manage_lvm
26+
version: v0.2.8

0 commit comments

Comments
 (0)