mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2025-12-15 06:14:31 +03:00
Merge pull request #45 from OsgiliathEnterprise/master
Allow to define only volume groups
This commit is contained in:
@@ -26,5 +26,7 @@ before_install:
|
|||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
sudo molecule test --scenario-name kvm
|
sudo molecule test --scenario-name kvm
|
||||||
|
sudo molecule test --scenario-name kvmsinglelv
|
||||||
|
sudo molecule test --scenario-name kvmonlyvg
|
||||||
notifications:
|
notifications:
|
||||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
filesystem: ext4
|
filesystem: ext4
|
||||||
mount: true
|
mount: true
|
||||||
mntp: "/var/lib/mountpoint"
|
mntp: "/var/lib/mountpoint"
|
||||||
- lvname: my_lv2
|
- lvname: my_lw
|
||||||
size: 20%VG
|
size: 20%VG
|
||||||
opts: "--wipesignatures y"
|
opts: "--wipesignatures y"
|
||||||
mount: true
|
mount: true
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ def test_mylv_logical_volume_is_created(host):
|
|||||||
assert int(cmd.stdout.rstrip()) >= 1
|
assert int(cmd.stdout.rstrip()) >= 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_mylv_logical_volume2_is_created(host):
|
||||||
|
command = """sudo lvs -o lv_name my_vg --separator='|' --noheadings \
|
||||||
|
| grep -c 'my_lw'"""
|
||||||
|
cmd = host.run(command)
|
||||||
|
assert int(cmd.stdout.rstrip()) >= 1
|
||||||
|
|
||||||
|
|
||||||
def test_volume_is_mounted(host):
|
def test_volume_is_mounted(host):
|
||||||
host.file("/var/lib/mountpoint").mode == 0o731
|
host.file("/var/lib/mountpoint").mode == 0o731
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
filesystem: ext4
|
filesystem: ext4
|
||||||
mount: true
|
mount: true
|
||||||
mntp: "/var/lib/mountpoint"
|
mntp: "/var/lib/mountpoint"
|
||||||
- lvname: my_lv2
|
- lvname: my_lw
|
||||||
size: 20%VG
|
size: 20%VG
|
||||||
opts: "--wipesignatures y"
|
opts: "--wipesignatures y"
|
||||||
mount: true
|
mount: true
|
||||||
|
|||||||
14
molecule/kvmonlyvg/converge.yml
Normal file
14
molecule/kvmonlyvg/converge.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
vars:
|
||||||
|
lvm_groups:
|
||||||
|
- vgname: my_vg
|
||||||
|
disks:
|
||||||
|
- /dev/vdb
|
||||||
|
create: true
|
||||||
|
manage_lvm: true
|
||||||
|
tasks:
|
||||||
|
- name: "Include lvm"
|
||||||
|
include_role:
|
||||||
|
name: "ansible-manage-lvm"
|
||||||
29
molecule/kvmonlyvg/molecule.yml
Normal file
29
molecule/kvmonlyvg/molecule.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: vagrant
|
||||||
|
provider:
|
||||||
|
name: libvirt
|
||||||
|
lint: yamllint . && flake8 && ansible-lint
|
||||||
|
platforms:
|
||||||
|
- name: Fedora-Molecule-Volumes-KVM
|
||||||
|
box: fedora/31-cloud-base
|
||||||
|
cpu: 2
|
||||||
|
memory: 2048
|
||||||
|
provider_raw_config_args:
|
||||||
|
- "storage :file, :size => '1G', :device => 'vdb'"
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
forks: 20
|
||||||
|
ssh_connection:
|
||||||
|
pipelining: true
|
||||||
|
ssh_args: -o ControlMaster=auto -o ControlPersist=600s
|
||||||
|
verifier:
|
||||||
|
name: testinfra
|
||||||
|
env:
|
||||||
|
PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning"
|
||||||
|
options:
|
||||||
|
v: 1
|
||||||
|
scenario:
|
||||||
|
name: kvmonlyvg
|
||||||
1
molecule/kvmonlyvg/tests/conftest.py
Symbolic link
1
molecule/kvmonlyvg/tests/conftest.py
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../default/tests/conftest.py
|
||||||
11
molecule/kvmonlyvg/tests/test_default.py
Normal file
11
molecule/kvmonlyvg/tests/test_default.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
"""Role testing files using testinfra."""
|
||||||
|
|
||||||
|
|
||||||
|
def test_lvm_package_shall_be_installed(host):
|
||||||
|
assert host.package("lvm2").is_installed
|
||||||
|
|
||||||
|
|
||||||
|
def test_non_persistent_volume_group_is_created(host):
|
||||||
|
command = """sudo vgdisplay | grep -c 'my_vg'"""
|
||||||
|
cmd = host.run(command)
|
||||||
|
assert '1' in cmd.stdout
|
||||||
22
molecule/kvmsinglelv/converge.yml
Normal file
22
molecule/kvmsinglelv/converge.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
vars:
|
||||||
|
lvm_groups:
|
||||||
|
- vgname: my_vg
|
||||||
|
disks:
|
||||||
|
- /dev/vdb
|
||||||
|
create: true
|
||||||
|
lvnames:
|
||||||
|
- lvname: my_lv
|
||||||
|
size: 40%VG
|
||||||
|
opts: "--wipesignatures y"
|
||||||
|
create: true
|
||||||
|
filesystem: ext4
|
||||||
|
mount: true
|
||||||
|
mntp: "/var/lib/mountpoint"
|
||||||
|
manage_lvm: true
|
||||||
|
tasks:
|
||||||
|
- name: "Include lvm"
|
||||||
|
include_role:
|
||||||
|
name: "ansible-manage-lvm"
|
||||||
29
molecule/kvmsinglelv/molecule.yml
Normal file
29
molecule/kvmsinglelv/molecule.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: vagrant
|
||||||
|
provider:
|
||||||
|
name: libvirt
|
||||||
|
lint: yamllint . && flake8 && ansible-lint
|
||||||
|
platforms:
|
||||||
|
- name: Fedora-Molecule-Volumes-KVM
|
||||||
|
box: fedora/31-cloud-base
|
||||||
|
cpu: 2
|
||||||
|
memory: 2048
|
||||||
|
provider_raw_config_args:
|
||||||
|
- "storage :file, :size => '1G', :device => 'vdb'"
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
forks: 20
|
||||||
|
ssh_connection:
|
||||||
|
pipelining: true
|
||||||
|
ssh_args: -o ControlMaster=auto -o ControlPersist=600s
|
||||||
|
verifier:
|
||||||
|
name: testinfra
|
||||||
|
env:
|
||||||
|
PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning"
|
||||||
|
options:
|
||||||
|
v: 1
|
||||||
|
scenario:
|
||||||
|
name: kvmsinglelv
|
||||||
1
molecule/kvmsinglelv/tests/conftest.py
Symbolic link
1
molecule/kvmsinglelv/tests/conftest.py
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../default/tests/conftest.py
|
||||||
22
molecule/kvmsinglelv/tests/test_default.py
Normal file
22
molecule/kvmsinglelv/tests/test_default.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
"""Role testing files using testinfra."""
|
||||||
|
|
||||||
|
|
||||||
|
def test_lvm_package_shall_be_installed(host):
|
||||||
|
assert host.package("lvm2").is_installed
|
||||||
|
|
||||||
|
|
||||||
|
def test_non_persistent_volume_group_is_created(host):
|
||||||
|
command = """sudo vgdisplay | grep -c 'my_vg'"""
|
||||||
|
cmd = host.run(command)
|
||||||
|
assert '1' in cmd.stdout
|
||||||
|
|
||||||
|
|
||||||
|
def test_mylv_logical_volume_is_created(host):
|
||||||
|
command = """sudo lvs -o lv_name my_vg --separator='|' --noheadings \
|
||||||
|
| grep -c 'my_lv'"""
|
||||||
|
cmd = host.run(command)
|
||||||
|
assert int(cmd.stdout.rstrip()) >= 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_volume_is_mounted(host):
|
||||||
|
host.file("/var/lib/mountpoint").mode == 0o731
|
||||||
@@ -88,6 +88,7 @@
|
|||||||
when:
|
when:
|
||||||
- vg.create is defined
|
- vg.create is defined
|
||||||
- vg.create|bool
|
- vg.create|bool
|
||||||
|
- lv is defined
|
||||||
- lv != 'None'
|
- lv != 'None'
|
||||||
- lv.create is defined
|
- lv.create is defined
|
||||||
- lv.create|bool
|
- lv.create|bool
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
verbosity: 2
|
verbosity: 2
|
||||||
|
|
||||||
- name: create_lv | debug lvm
|
- name: create_lv | debug lvm
|
||||||
loop: "{{ vg.lvnames }}"
|
loop: "{{ vg.lvnames | default([]) }}"
|
||||||
debug:
|
debug:
|
||||||
var: lv
|
var: lv
|
||||||
verbosity: 1
|
verbosity: 1
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
shrink: false
|
shrink: false
|
||||||
opts: "{{ lv.opts | default('') }}"
|
opts: "{{ lv.opts | default('') }}"
|
||||||
state: present
|
state: present
|
||||||
loop: "{{ vg.lvnames }}"
|
loop: "{{ vg.lvnames | default([]) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: lv
|
loop_var: lv
|
||||||
become: true
|
become: true
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
become: true
|
become: true
|
||||||
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
loop: "{{ lvm_groups|subelements('lvnames', {'skip_missing': true}) }}"
|
||||||
when:
|
when:
|
||||||
- item.1 is defined
|
- item.1 is defined
|
||||||
- item.1 != 'None'
|
- item.1 != 'None'
|
||||||
|
|||||||
Reference in New Issue
Block a user