mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2026-09-06 07:28:24 +03:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b7c3cf9f75 | |||
| e423ebd56b | |||
| 9eca9e391b | |||
| 881d5d77fa | |||
| 89360e3ffe | |||
| 5267237c5e | |||
| eda544042a | |||
| c6a7034e4b | |||
| 816d44a6a1 | |||
| 883055c33f | |||
| 4697b37377 | |||
| 325c2d6240 | |||
| db21878de4 | |||
| d3256a3a5a | |||
| 6c13d12494 | |||
| dc1ad5a6f8 | |||
| 1a648317c7 | |||
| c3fea6e456 | |||
| 12c4dad6e0 |
@@ -34,67 +34,8 @@ jobs:
|
|||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt -y install python3-setuptools python3 python3-pip docker vagrant
|
sudo apt -y install python3-setuptools python3 python3-pip docker vagrant
|
||||||
sudo pip3 install wheel
|
sudo pip3 install wheel
|
||||||
sudo pip3 install docker molecule testinfra yamllint ansible-lint flake8 molecule-vagrant
|
sudo pip3 install molecule testinfra yamllint ansible-lint flake8 molecule-vagrant
|
||||||
|
|
||||||
- name: molecule lint
|
- name: molecule lint
|
||||||
run: |
|
run: |
|
||||||
molecule lint
|
molecule lint
|
||||||
|
|
||||||
molecule:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: "false"
|
|
||||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: configure keyboard layout
|
|
||||||
run: |
|
|
||||||
echo XKBLAYOUT='us' > /etc/default/keyboard
|
|
||||||
|
|
||||||
- name: install virtualization stack
|
|
||||||
env:
|
|
||||||
DEBIAN_FRONTEND: noninteractive
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt -y install cpu-checker
|
|
||||||
kvm-ok
|
|
||||||
# shit happens here, containerization sucks... that was worth the try
|
|
||||||
|
|
||||||
- name: install virtualization stack
|
|
||||||
env:
|
|
||||||
DEBIAN_FRONTEND: noninteractive
|
|
||||||
run: |
|
|
||||||
sudo apt -y install policycoreutils-python-utils qemu-kvm qemu-utils libvirt-clients libvirt-daemon-system bridge-utils python3-libvirt libnss-libvirt libguestfs-tools virtinst virt-top genisoimage libvirt-dev libvirt-bin
|
|
||||||
|
|
||||||
- name: install vagrant
|
|
||||||
env:
|
|
||||||
VAGRANT_DISABLE_STRICT_DEPENDENCY_ENFORCEMENT: 1
|
|
||||||
run: |
|
|
||||||
wget https://releases.hashicorp.com/vagrant/2.2.7/vagrant_2.2.7_x86_64.deb
|
|
||||||
sudo apt -y install ./vagrant_2.2.7_x86_64.deb
|
|
||||||
vagrant plugin install vagrant-persistent-storage
|
|
||||||
vagrant plugin install vagrant-libvirt
|
|
||||||
sudo groupadd --system libvirt
|
|
||||||
sudo usermod -a -G libvirt $(whoami)
|
|
||||||
sudo /etc/init.d/libvirtd restart
|
|
||||||
|
|
||||||
- name: Install molecule
|
|
||||||
run: |
|
|
||||||
sudo apt -y install python3-setuptools
|
|
||||||
pip3 install molecule-vagrant wheel
|
|
||||||
|
|
||||||
- name: create molecule vm
|
|
||||||
env:
|
|
||||||
LC_ALL: C.UTF-8
|
|
||||||
LANG: C.UTF-8
|
|
||||||
run: |
|
|
||||||
molecule create --scenario-name kvm
|
|
||||||
|
|
||||||
- name: verify
|
|
||||||
run: |
|
|
||||||
molecule verify
|
|
||||||
|
|
||||||
- name: teardown
|
|
||||||
run: |
|
|
||||||
molecule destroy
|
|
||||||
|
|||||||
+24
-9
@@ -1,15 +1,30 @@
|
|||||||
---
|
---
|
||||||
sudo: required
|
dist: bionic
|
||||||
|
|
||||||
language: python
|
language: python
|
||||||
services:
|
python:
|
||||||
- docker
|
- "3.8"
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- sudo apt-get -qq update
|
- |
|
||||||
install:
|
sudo apt -y install bridge-utils dnsmasq-base ebtables libvirt-bin libvirt-dev qemu-kvm qemu-utils ruby-dev
|
||||||
- pip3 install -r requirements.txt
|
|
||||||
- ansible --version
|
- |
|
||||||
- molecule --version
|
wget https://releases.hashicorp.com/vagrant/2.2.7/vagrant_2.2.7_x86_64.deb
|
||||||
|
sudo apt -y install ./vagrant_2.2.7_x86_64.deb
|
||||||
|
sudo vagrant plugin install vagrant-libvirt
|
||||||
|
|
||||||
|
- |
|
||||||
|
sudo apt-get -y purge python3-openssl && sudo apt-get -y autoremove
|
||||||
|
sudo apt-get update && sudo apt-get install -y ca-certificates curl gcc iproute2 python3 python3-dev sudo
|
||||||
|
curl -skL https://bootstrap.pypa.io/get-pip.py | sudo -H python3
|
||||||
|
sudo pip3 install wheel
|
||||||
|
sudo pip3 install netaddr python-vagrant yamllint testinfra flake8
|
||||||
|
sudo pip3 install ansible ansible-lint
|
||||||
|
sudo pip3 install -I molecule molecule-vagrant
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- molecule lint
|
- |
|
||||||
|
sudo molecule test --scenario-name kvm
|
||||||
notifications:
|
notifications:
|
||||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||||
|
|||||||
@@ -1,3 +1,47 @@
|
|||||||
|
commit 881d5d77fa435ccaa026c3341d0d2ac1fb537b98
|
||||||
|
Author: Larry Smith Jr <mrlesmithjr@gmail.com>
|
||||||
|
Date: Mon Apr 27 11:26:18 2020 -0400
|
||||||
|
|
||||||
|
Fixing syntax issue for wantlist
|
||||||
|
|
||||||
|
commit 89360e3ffef9ff1dbbb5ad525a7ee1d77e6b8895
|
||||||
|
Author: Larry Smith Jr <mrlesmithjr@gmail.com>
|
||||||
|
Date: Mon Apr 27 11:16:02 2020 -0400
|
||||||
|
|
||||||
|
Trying to fix the subelements lookup for a single element
|
||||||
|
|
||||||
|
This addresses #42. Will need to do some validation testing, etc.
|
||||||
|
|
||||||
|
commit c6a7034e4b0b381c5c5b44a15ce7baad7eab9c1b
|
||||||
|
Author: Charlie Mordant <cmordant1@gmail.com>
|
||||||
|
Date: Fri Apr 24 17:22:07 2020 +0200
|
||||||
|
|
||||||
|
remove unused molecule env property
|
||||||
|
|
||||||
|
commit 883055c33f2d6b4c0df8e61ce49771c451905334
|
||||||
|
Author: Charlie Mordant <cmordant1@gmail.com>
|
||||||
|
Date: Thu Apr 23 19:38:35 2020 +0200
|
||||||
|
|
||||||
|
lint
|
||||||
|
|
||||||
|
commit 325c2d6240022fe17abf40dffee842ccf79543f1
|
||||||
|
Author: Charlie Mordant <cmordant1@gmail.com>
|
||||||
|
Date: Thu Apr 23 19:25:09 2020 +0200
|
||||||
|
|
||||||
|
install xfs
|
||||||
|
|
||||||
|
commit 4a1177e420fd9632f77d07ce0a19f89a1515f8eb
|
||||||
|
Author: Charlie Mordant <cmordant1@gmail.com>
|
||||||
|
Date: Tue Apr 21 19:01:29 2020 +0200
|
||||||
|
|
||||||
|
use xfs_info on mountpoint instead of lvm
|
||||||
|
|
||||||
|
commit 7fd5a8eec9f4b5110929862056ab88c4db3f14de
|
||||||
|
Author: Larry Smith Jr <mrlesmithjr@gmail.com>
|
||||||
|
Date: Sun Apr 19 01:59:29 2020 -0400
|
||||||
|
|
||||||
|
Only doing a Molecule lint at this time
|
||||||
|
|
||||||
commit 7e2a076b0a8155015fd21502db860fa89a2114b3
|
commit 7e2a076b0a8155015fd21502db860fa89a2114b3
|
||||||
Author: Larry Smith Jr <mrlesmithjr@gmail.com>
|
Author: Larry Smith Jr <mrlesmithjr@gmail.com>
|
||||||
Date: Sun Apr 19 01:44:38 2020 -0400
|
Date: Sun Apr 19 01:44:38 2020 -0400
|
||||||
|
|||||||
@@ -6,6 +6,10 @@ galaxy_info:
|
|||||||
license: MIT
|
license: MIT
|
||||||
min_ansible_version: 1.2
|
min_ansible_version: 1.2
|
||||||
platforms:
|
platforms:
|
||||||
|
- name: fedora
|
||||||
|
versions:
|
||||||
|
- 31
|
||||||
|
|
||||||
- name: EL
|
- name: EL
|
||||||
versions:
|
versions:
|
||||||
- 6
|
- 6
|
||||||
@@ -21,4 +25,5 @@ galaxy_info:
|
|||||||
|
|
||||||
galaxy_tags:
|
galaxy_tags:
|
||||||
- system
|
- system
|
||||||
|
- lvm
|
||||||
dependencies: []
|
dependencies: []
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
filesystem: xfs
|
filesystem: xfs
|
||||||
mntp: "/var/lib/mountpoint2"
|
mntp: "/var/lib/mountpoint2"
|
||||||
manage_lvm: true
|
manage_lvm: true
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: "Include lvm"
|
- name: "Include lvm"
|
||||||
include_role:
|
include_role:
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ driver:
|
|||||||
name: vagrant
|
name: vagrant
|
||||||
provider:
|
provider:
|
||||||
name: virtualbox
|
name: virtualbox
|
||||||
lint: yamllint . && flake8 && ansible-lint --exclude=meta
|
lint: yamllint . && flake8 && ansible-lint
|
||||||
platforms:
|
platforms:
|
||||||
- name: Fedora-Molecule-LVM
|
- name: Fedora-Molecule-LVM
|
||||||
box: bento/fedora-31
|
box: fedora/31-cloud-base
|
||||||
# box-url: ${platform_root}/packer/bento/builds/fedora-31-x86_64.virtualbox.box
|
cpu: 2
|
||||||
|
memory: 2048
|
||||||
provider_override_args:
|
provider_override_args:
|
||||||
- "persistent_storage.enabled = true"
|
- "persistent_storage.enabled = true"
|
||||||
- "persistent_storage.location = 'molecule-lvm.vdi'"
|
- "persistent_storage.location = 'molecule-lvm.vdi'"
|
||||||
@@ -16,9 +17,6 @@ platforms:
|
|||||||
- "persistent_storage.diskdevice = '/dev/sdb'"
|
- "persistent_storage.diskdevice = '/dev/sdb'"
|
||||||
provisioner:
|
provisioner:
|
||||||
name: ansible
|
name: ansible
|
||||||
inventory:
|
|
||||||
group_vars:
|
|
||||||
lvm:
|
|
||||||
verifier:
|
verifier:
|
||||||
name: testinfra
|
name: testinfra
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
- 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"
|
||||||
|
- lvname: my_lv2
|
||||||
|
size: 20%VG
|
||||||
|
opts: "--wipesignatures y"
|
||||||
|
mount: true
|
||||||
|
create: true
|
||||||
|
filesystem: xfs
|
||||||
|
mntp: "/var/lib/mountpoint2"
|
||||||
|
manage_lvm: true
|
||||||
|
tasks:
|
||||||
|
- name: "Include lvm"
|
||||||
|
include_role:
|
||||||
|
name: "ansible-manage-lvm"
|
||||||
@@ -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: kvm
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../default/tests
|
||||||
+21
-17
@@ -11,33 +11,37 @@
|
|||||||
state: "present"
|
state: "present"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
- name: centos | debug lvg
|
||||||
|
debug:
|
||||||
|
var: lv
|
||||||
|
verbosity: 3
|
||||||
|
loop: "{{ lookup('subelements', lvm_groups, 'lvnames', {'skip_missing': True}, wantlist=True) }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: lv
|
||||||
|
|
||||||
- name: centos | install xfs tools
|
- name: centos | install xfs tools
|
||||||
package:
|
package:
|
||||||
name: "xfsprogs"
|
name: "xfsprogs"
|
||||||
state: "present"
|
state: "present"
|
||||||
become: yes
|
become: true
|
||||||
loop: "{{ lvm_groups|subelements('lvnames') }}"
|
loop: "{{ lookup('subelements', lvm_groups, 'lvnames', {'skip_missing': True}, wantlist=True) }}"
|
||||||
when: >
|
loop_control:
|
||||||
(
|
loop_var: lv
|
||||||
(item.1 is defined and item.1 != 'None') and
|
when:
|
||||||
(
|
- lv.1 is defined
|
||||||
item.1.filesystem is defined and
|
- lv.1 != "None"
|
||||||
item.1.filesystem == "xfs"
|
- lv.1.filesystem is defined
|
||||||
)
|
- lv.1.filesystem == "xfs"
|
||||||
and
|
- lv.1.create is defined
|
||||||
(
|
- lv.1.create|bool
|
||||||
item.1.create is defined and
|
|
||||||
item.1.create
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
- name: centos | checking for scsi devices
|
- name: centos | checking for scsi devices
|
||||||
command: "sg_scan"
|
command: "sg_scan"
|
||||||
become: true
|
become: true
|
||||||
register: "scsi_devices"
|
register: "scsi_devices"
|
||||||
changed_when: False
|
changed_when: false
|
||||||
|
|
||||||
- name: centos | rescanning for new disks
|
- name: centos | rescanning for new disks
|
||||||
command: "/usr/bin/rescan-scsi-bus.sh"
|
command: "/usr/bin/rescan-scsi-bus.sh"
|
||||||
become: true
|
become: true
|
||||||
changed_when: False
|
changed_when: false
|
||||||
|
|||||||
+1
-1
@@ -50,7 +50,7 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: lv
|
loop_var: lv
|
||||||
register: mountedxfs
|
register: mountedxfs
|
||||||
ignore_errors: True
|
ignore_errors: true
|
||||||
changed_when: no
|
changed_when: no
|
||||||
when: >
|
when: >
|
||||||
(
|
(
|
||||||
|
|||||||
+7
-2
@@ -1,9 +1,14 @@
|
|||||||
---
|
---
|
||||||
- debug: var=vg
|
- name: "debug vg"
|
||||||
|
debug:
|
||||||
|
var: vg
|
||||||
|
verbosity: 2
|
||||||
|
|
||||||
- name: "debug lvm"
|
- name: "debug lvm"
|
||||||
loop: "{{ vg.lvnames }}"
|
loop: "{{ vg.lvnames }}"
|
||||||
debug: var=lv
|
debug:
|
||||||
|
var: lv
|
||||||
|
verbosity: 1
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: lv
|
loop_var: lv
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user