From 003b0a7d4495be5bfa96ba541b002902f7446b32 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 3 Jan 2021 01:53:53 +0100 Subject: [PATCH 01/42] resync --- .ansible-lint | 5 +++ .github/workflows/molecule.yml | 51 +++++++++++++++++++++++++++ .gitignore | 1 + .travis.yml | 58 +++++++++++++++++-------------- .yamllint | 33 ++++++++++++++++++ README.md | 14 ++++---- molecule/kvm/Vagrantfile | 1 + molecule/kvm/converge.yml | 63 ++++++++++++++++++++++++++++++++++ molecule/kvm/molecule.yml | 38 ++++++++++++++++++++ molecule/kvm/tests | 1 + requirements.yml | 6 ++++ tasks/pools.yml | 23 +++++++++---- tasks/rbd.yml | 2 -- 13 files changed, 257 insertions(+), 39 deletions(-) create mode 100644 .ansible-lint create mode 100644 .github/workflows/molecule.yml create mode 100644 .gitignore create mode 100644 .yamllint create mode 120000 molecule/kvm/Vagrantfile create mode 100644 molecule/kvm/converge.yml create mode 100644 molecule/kvm/molecule.yml create mode 120000 molecule/kvm/tests create mode 100644 requirements.yml diff --git a/.ansible-lint b/.ansible-lint new file mode 100644 index 0000000..9040bdc --- /dev/null +++ b/.ansible-lint @@ -0,0 +1,5 @@ +warn_list: + - '208' + - '301' +skip_list: + - '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern \ No newline at end of file diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml new file mode 100644 index 0000000..a95f5dd --- /dev/null +++ b/.github/workflows/molecule.yml @@ -0,0 +1,51 @@ +--- +# This is a basic workflow to help you get started with Actions +name: Molecule + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + pull_request: + branches: + - master + - tags/* + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + lint: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: install lint prerequisite + run: | + sudo apt-get update + sudo apt -y install python3-setuptools ansible-lint vagrant + + - name: Install molecule + run: | + sudo apt update + sudo apt -y install python3-setuptools python3 python3-pip + sudo pip3 install wheel + sudo pip3 install molecule testinfra yamllint ansible-lint flake8 molecule-vagrant + + - name: molecule lint + run: | + molecule lint + + requirements: + # The type of runner that the job will run on + runs-on: ubuntu-latest + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - name: install prereq + run: | + ansible-galaxy role install -r requirements.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..81dc40e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/__pychache__ diff --git a/.travis.yml b/.travis.yml index dcafe13..4352aad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,35 +1,43 @@ --- -language: python -python: "2.7" -# Use the new container infrastructure -sudo: false +dist: bionic -# Install ansible +language: python addons: apt: + sources: + - sourceline: 'deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main' + key_url: 'https://apt.releases.hashicorp.com/gpg' + update: true packages: - - python-pip + - bridge-utils + - dnsmasq-base + - ebtables + - libvirt-bin + - libvirt-dev + - qemu-kvm + - qemu-utils + - ruby-dev + - ca-certificates + - curl + - gcc + - iproute2 + - sudo + - vagrant +python: + - "3.8" install: - # Install ansible +# - wget https://releases.hashicorp.com/vagrant/$VAGRANT_VER/vagrant_"$VAGRANT_VER"_x86_64.deb +# - sudo apt -y install ./vagrant_"$VAGRANT_VER"_x86_64.deb + - vagrant plugin install vagrant-libvirt + - pip install wheel pyopenssl + - pip install netaddr python-vagrant yamllint testinfra flake8 - pip install ansible ansible-lint + - pip install molecule molecule-vagrant python-vagrant + - sudo chmod o+rwx /var/run/libvirt/libvirt-sock - # Check ansible version - - ansible --version - - # Create ansible.cfg with correct roles_path - - printf '[defaults]\nroles_path=../' >ansible.cfg - - # Compensate for repo name being different to the role - - ln -s $(pwd) ../stackhpc.libvirt-host - -script: - # Run Ansible lint against the role - - ansible-lint tasks/main.yml - - # Basic role syntax check - - ansible-playbook tests/test.yml -i tests/inventory --syntax-check - -notifications: - webhooks: https://galaxy.ansible.com/api/v1/notifications/ +script: travis_wait 30 molecule test --scenario-name kvm +branches: + only: + - master diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..8827676 --- /dev/null +++ b/.yamllint @@ -0,0 +1,33 @@ +--- +# Based on ansible-lint config +extends: default + +rules: + braces: + max-spaces-inside: 1 + level: error + brackets: + max-spaces-inside: 1 + level: error + colons: + max-spaces-after: -1 + level: error + commas: + max-spaces-after: -1 + level: error + comments: disable + comments-indentation: disable + document-start: disable + empty-lines: + max: 3 + level: error + hyphens: + level: error + indentation: disable + key-duplicates: enable + line-length: disable + new-line-at-end-of-file: disable + new-lines: + type: unix + trailing-spaces: disable + truthy: disable diff --git a/README.md b/README.md index 67ebbf5..ae030f0 100644 --- a/README.md +++ b/README.md @@ -193,7 +193,7 @@ storage pools. Dependencies ------------ -None +* [The LVM role](https://github.com/mrlesmithjr/ansible-manage-lvm) You can install it using `ansible-galaxy install -r requirements.yml --roles-p ../community` Example Playbook ---------------- @@ -203,6 +203,11 @@ Example Playbook hosts: all roles: - role: stackhpc.libvirt-host + lvm_groups: # see according properties on [The LVM role](https://github.com/mrlesmithjr/ansible-manage-lvm) + - vgname: libvirtvg + disks: + - /dev/sdb1 + create: true libvirt_host_pools: - name: my-pool type: dir @@ -212,11 +217,8 @@ Example Playbook owner: my-user group: my-group - name: lvm_pool - type: logical - source: vg1 - target: /dev/vg1 - pvs: - - /dev/sda3 + type: lvm2 + source: libvirtvg - name: rbd-pool type: rbd source: rbd diff --git a/molecule/kvm/Vagrantfile b/molecule/kvm/Vagrantfile new file mode 120000 index 0000000..f4eecde --- /dev/null +++ b/molecule/kvm/Vagrantfile @@ -0,0 +1 @@ +../default/Vagrantfile \ No newline at end of file diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml new file mode 100644 index 0000000..3cb70b3 --- /dev/null +++ b/molecule/kvm/converge.yml @@ -0,0 +1,63 @@ +--- +- name: Converge + hosts: all + vars: + manage_lvm: true + lvm_groups: + - vgname: libvirt_vg + disks: + - /dev/vdb + create: true + users_group_list: + - name: libvirt + systemusers_user_list: + - name: libvirt + group: libvirt + groups: wheel + libvirt_host_pools: + - name: libvirtpool + type: lvm2 + source: libvirt_vg + libvirt_host_networks: + - name: ansible-virtualization-bridge + mode: bridge + bridge: bridge0 + tasks: + - name: "Include ansible-role-libvirt-host" + include_role: + name: "ansible-role-libvirt-host" + + - name: "Post converge - Install vagrant" + package: + name: + - qemu + - ruby-devel + - gcc + - qemu-kvm + - libxml2-devel + - libxslt-devel + - libguestfs-tools-c + - vagrant + - daemonize + state: present + become: true + + - name: Copy vagrant file + copy: + src: Vagrantfile + dest: /home/vagrant/Vagrantfile + owner: vagrant + group: vagrant + mode: '0644' + + - name: Execute Vagrant as daemon + command: + cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant /usr/bin/vagrant up --provider=libvirt" + chdir: /home/vagrant + creates: /home/vagrant/myvm.log + + - name: Wait until the string "auth" is in the vagrant log + wait_for: + path: /home/vagrant/myvmerr.log + search_regex: SSH\sis\sready + timeout: 1000 \ No newline at end of file diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml new file mode 100644 index 0000000..c309db3 --- /dev/null +++ b/molecule/kvm/molecule.yml @@ -0,0 +1,38 @@ +--- +dependency: + name: galaxy + options: + role-file: requirements.yml + roles-path: ../community +driver: + name: vagrant + provider: + name: libvirt +lint: yamllint . && flake8 && ansible-lint --exclude=meta +platforms: + - name: Fedora-Molecule-libvirt-host + box: fedora/33-cloud-base + provider_options: + driver: '"kvm"' + cpus: 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 + env: + ANSIBLE_ROLES_PATH: ../../..:../../../community +verifier: + name: testinfra + env: + PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning" + options: + v: 1 +scenario: + name: kvm diff --git a/molecule/kvm/tests b/molecule/kvm/tests new file mode 120000 index 0000000..5456f39 --- /dev/null +++ b/molecule/kvm/tests @@ -0,0 +1 @@ +../default/tests \ No newline at end of file diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..bb31ec7 --- /dev/null +++ b/requirements.yml @@ -0,0 +1,6 @@ +--- +roles: + # Install a role from Ansible Galaxy. + - name: tcharl.ansible_manage_lvm + source: https://galaxy.ansible.com + path: ../community diff --git a/tasks/pools.yml b/tasks/pools.yml index da5badf..5c244a8 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -1,11 +1,22 @@ --- -- name: Ensure libvirt LVM storage pool directories exist - lvg: - vg: "{{ item.source }}" - pvs: "{{ item.pvs }}" - when: item.type in ["lvm2", "logical"] +- name: Include lvm role to create VG + include_role: + name: tcharl.ansible_manage_lvm + when: + - manage_lvm is defined + - manage_lvm + - libvirt_host_pools | map(attribute='type') | select('match', '^lvm2$') | join(',') | length > 0 + +- name: Ensure libvirt dir storage pool directories exist + file: + path: "{{ item.path }}" + owner: "{{ item.owner }}" + group: "{{ item.group }}" + mode: "{{ item.mode|int(base=8) }}" + state: directory + when: item.type == "dir" loop: "{{ libvirt_host_pools | flatten(levels=1) }}" - become: True + become: true - name: include rbd.yml include_tasks: diff --git a/tasks/rbd.yml b/tasks/rbd.yml index f14fbca..3d7b9d2 100644 --- a/tasks/rbd.yml +++ b/tasks/rbd.yml @@ -30,5 +30,3 @@ - name: Flush handlers meta: flush_handlers - - From 0fa616e51dde8b3f857706895f21df62a3e20ade Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 3 Jan 2021 01:54:44 +0100 Subject: [PATCH 02/42] resync --- molecule/default/Vagrantfile | 18 ++++++++ molecule/default/converge.yml | 63 ++++++++++++++++++++++++++ molecule/default/molecule.yml | 35 ++++++++++++++ molecule/default/tests/conftest.py | 21 +++++++++ molecule/default/tests/test_default.py | 41 +++++++++++++++++ 5 files changed, 178 insertions(+) create mode 100644 molecule/default/Vagrantfile create mode 100644 molecule/default/converge.yml create mode 100644 molecule/default/molecule.yml create mode 100644 molecule/default/tests/conftest.py create mode 100644 molecule/default/tests/test_default.py diff --git a/molecule/default/Vagrantfile b/molecule/default/Vagrantfile new file mode 100644 index 0000000..c64c8b5 --- /dev/null +++ b/molecule/default/Vagrantfile @@ -0,0 +1,18 @@ +Vagrant.configure(2) do |config| + config.vm.provider :libvirt do |libvirt| + libvirt.memory = "512" + libvirt.cpus = 1 + libvirt.driver = "kvm" + libvirt.graphics_type = 'none' + end + config.ssh.insert_key = false + config.vm.box = "fedora/33-cloud-base" + config.vm.synced_folder ".", "/vagrant", disabled: true + + config.vm.define "myvm" do |myvm| +# myvm.vm.network :public_network, +# :dev => "virbr0", +# :mode => "bridge", +# :type => "bridge" + end +end \ No newline at end of file diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml new file mode 100644 index 0000000..ae24a56 --- /dev/null +++ b/molecule/default/converge.yml @@ -0,0 +1,63 @@ +--- +- name: Converge + hosts: all + vars: + manage_lvm: true + lvm_groups: + - vgname: libvirt_vg + disks: + - /dev/sdb1 + create: true + users_group_list: + - name: libvirt + systemusers_user_list: + - name: libvirt + group: libvirt + groups: wheel + libvirt_host_pools: + - name: libvirtpool + type: lvm2 + source: libvirt_vg + libvirt_host_networks: + - name: ansible-virtualization-bridge + mode: bridge + bridge: bridge0 + tasks: + - name: "Include ansible-role-libvirt-host" + include_role: + name: "ansible-role-libvirt-host" + + - name: "Post converge - Install vagrant" + package: + name: + - qemu + - ruby-devel + - gcc + - qemu-kvm + - libxml2-devel + - libxslt-devel + - libguestfs-tools-c + - vagrant + - daemonize + state: present + become: true + + - name: Copy vagrant file + copy: + src: Vagrantfile + dest: /home/vagrant/Vagrantfile + owner: vagrant + group: vagrant + mode: '0644' + + - name: Execute Vagrant as daemon + command: + cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant /usr/bin/vagrant up --provider=libvirt" + chdir: /home/vagrant + creates: /home/vagrant/myvm.log + + - name: Wait until the string "auth" is in the vagrant log + wait_for: + path: /home/vagrant/myvmerr.log + search_regex: SSH\sis\sready + timeout: 1000 \ No newline at end of file diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..1710252 --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,35 @@ +--- +dependency: + name: galaxy + options: + role-file: requirements.yml + roles-path: ../community +driver: + name: vagrant + provider: + name: virtualbox + +lint: yamllint . && flake8 && ansible-lint --exclude=meta +platforms: + - name: Fedora-Molecule-libvirt-host + box: fedora/33-cloud-base + memory: 8000 + cpus: 4 + provider_raw_config_args: + - "customize ['modifyvm', :id, '--nested-hw-virt', 'on']" + provider_override_args: + - "persistent_storage.enabled = true" + - "persistent_storage.location = 'molecule-libvirt-host.vdi'" + - "persistent_storage.size = 100" + - "persistent_storage.mount = false" + - "persistent_storage.diskdevice = '/dev/sdb'" +provisioner: + name: ansible + env: + ANSIBLE_ROLES_PATH: ../../..:../../../community +verifier: + name: testinfra + env: + PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning" + options: + v: 1 diff --git a/molecule/default/tests/conftest.py b/molecule/default/tests/conftest.py new file mode 100644 index 0000000..7bd2743 --- /dev/null +++ b/molecule/default/tests/conftest.py @@ -0,0 +1,21 @@ +"""PyTest Fixtures.""" +from __future__ import absolute_import +import os +import pytest + + +def pytest_runtest_setup(item): + """Run tests only when under molecule with testinfra installed.""" + try: + import testinfra + except ImportError: + pytest.skip("Test requires testinfra", allow_module_level=True) + if "MOLECULE_INVENTORY_FILE" in os.environ: + pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( + os.environ["MOLECULE_INVENTORY_FILE"] + ).get_hosts("all") + else: + pytest.skip( + "Test should run only from inside molecule.", + allow_module_level=True + ) diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py new file mode 100644 index 0000000..902d821 --- /dev/null +++ b/molecule/default/tests/test_default.py @@ -0,0 +1,41 @@ +"""Role testing files using testinfra.""" + + +def test_vagrant_machine_is_fully_up(host): + command = """cat myvm.log | grep -c 'myvm: SSH auth method: private key'""" + cmd = host.run(command) + assert '1' in cmd.stdout + + +def test_vagrant_machine_is_running(host): + command = r"""vagrant status | egrep -c 'myvm\s*running\s\(libvirt\)'""" + cmd = host.run(command) + assert '1' in cmd.stdout + + +def test_pool_is_started(host): + command = r""" sudo virsh pool-list --all | + cut -d " " -f 5 | tail -n +3 | head -n +1 | egrep -c '^active$'""" + cmd = host.run(command) + assert '1' in cmd.stdout + + +def test_pool_is_autostarted(host): + command = r""" sudo virsh pool-list --all | + cut -d " " -f 8 | tail -n +3 | head -n +1 | egrep -c '^yes$'""" + cmd = host.run(command) + assert '1' in cmd.stdout + + +def test_net_is_started(host): + command = r""" sudo virsh net-list --all | + cut -d " " -f 5 | tail -n +3 | head -n +1 | egrep -c '^active$'""" + cmd = host.run(command) + assert '1' in cmd.stdout + + +def test_net_is_autostarted(host): + command = r""" sudo virsh net-list --all | + cut -d " " -f 8 | tail -n +3 | head -n +1 | egrep -c '^yes$'""" + cmd = host.run(command) + assert '1' in cmd.stdout From cfd869a3e404549588a813b0420b33b501740fca Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 10 Jan 2021 15:19:26 +0100 Subject: [PATCH 03/42] update gitignore Signed-off-by: Charlie Mordant --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 81dc40e..ddf3fc8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -**/__pychache__ +.idea +__pychache__ \ No newline at end of file From 235311e09a813f0d25005f8ef6da1f081a5c47c4 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sat, 24 Apr 2021 10:21:09 +0200 Subject: [PATCH 04/42] resync with upstreamoss --- .cache/roles/Mark Goddard.libvirt-host | 1 + .../tcharl.ansible_manage_lvm/.ansible-lint | 2 + .../.github/workflows/molecule.yml | 41 +++ .../tcharl.ansible_manage_lvm/.gitignore | 3 + .../tcharl.ansible_manage_lvm/.travis.yml | 43 +++ .../tcharl.ansible_manage_lvm/.yamllint.yml | 36 ++ .../tcharl.ansible_manage_lvm/CHANGELOG.md | 322 ++++++++++++++++++ .../roles/tcharl.ansible_manage_lvm/README.md | 34 ++ .../defaults/main.yml | 63 ++++ .../handlers/main.yml | 2 + .../meta/.galaxy_install_info | 2 + .../tcharl.ansible_manage_lvm/meta/main.yml | 28 ++ .../molecule/default/converge.yml | 29 ++ .../molecule/default/molecule.yml | 39 +++ .../molecule/default/tests/conftest.py | 21 ++ .../molecule/default/tests/test_default.py | 33 ++ .../molecule/kvm/converge.yml | 29 ++ .../molecule/kvm/molecule.yml | 29 ++ .../molecule/kvm/tests | 1 + .../molecule/kvmonlyvg/converge.yml | 14 + .../molecule/kvmonlyvg/molecule.yml | 29 ++ .../molecule/kvmonlyvg/tests/conftest.py | 1 + .../molecule/kvmonlyvg/tests/test_default.py | 11 + .../molecule/kvmsinglelv/converge.yml | 22 ++ .../molecule/kvmsinglelv/molecule.yml | 29 ++ .../molecule/kvmsinglelv/tests/conftest.py | 1 + .../kvmsinglelv/tests/test_default.py | 22 ++ .../tcharl.ansible_manage_lvm/playbook.yml | 27 ++ .../requirements-dev.txt | 66 ++++ .../requirements.txt | 7 + .../tasks/centos.yml | 47 +++ .../tasks/create_fs.yml | 96 ++++++ .../tasks/create_lv.yml | 31 ++ .../tasks/create_vg.yml | 16 + .../tasks/debian.yml | 40 +++ .../tcharl.ansible_manage_lvm/tasks/main.yml | 12 + .../tasks/manage_lvm.yml | 31 ++ .../tests/.ansible-lint | 1 + .../tests/Dockerfile.centos-7 | 27 ++ .../tests/Dockerfile.debian-stretch | 13 + .../tests/Dockerfile.fedora-25 | 26 ++ .../tests/Dockerfile.fedora-26 | 26 ++ .../tests/Dockerfile.ubuntu-bionic | 13 + .../tests/Dockerfile.ubuntu-xenial | 13 + .../tcharl.ansible_manage_lvm/tests/inventory | 1 + .../tcharl.ansible_manage_lvm/tests/test.yml | 5 + .../tcharl.ansible_manage_lvm/vars/main.yml | 2 + molecule/default/converge.yml | 2 +- molecule/kvm/converge.yml | 2 +- molecule/kvm/molecule.yml | 2 +- tasks/pools.yml | 4 +- tasks/rbd.yml | 2 + 52 files changed, 1394 insertions(+), 5 deletions(-) create mode 120000 .cache/roles/Mark Goddard.libvirt-host create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.ansible-lint create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.gitignore create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.travis.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/README.md create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/meta/main.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml create mode 120000 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml create mode 120000 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml create mode 120000 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/playbook.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/requirements.txt create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/inventory create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/test.yml create mode 100644 .cache/roles/tcharl.ansible_manage_lvm/vars/main.yml diff --git a/.cache/roles/Mark Goddard.libvirt-host b/.cache/roles/Mark Goddard.libvirt-host new file mode 120000 index 0000000..c25bddb --- /dev/null +++ b/.cache/roles/Mark Goddard.libvirt-host @@ -0,0 +1 @@ +../.. \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.ansible-lint b/.cache/roles/tcharl.ansible_manage_lvm/.ansible-lint new file mode 100644 index 0000000..20a2035 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/.ansible-lint @@ -0,0 +1,2 @@ +skip_list: + - '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml new file mode 100644 index 0000000..fb6b69b --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml @@ -0,0 +1,41 @@ +--- + +# This is a basic workflow to help you get started with Actions + +name: Molecule + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + pull_request: + branches: + - master + - tags/* + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + + lint: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: install lint prerequisite + run: | + sudo apt -y install python3-setuptools ansible-lint + + - name: Install molecule + run: | + sudo apt update + sudo apt -y install python3-setuptools python3 python3-pip docker vagrant + sudo pip3 install wheel + sudo pip3 install molecule testinfra yamllint ansible-lint flake8 molecule-vagrant + + - name: molecule lint + run: | + molecule lint diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.gitignore b/.cache/roles/tcharl.ansible_manage_lvm/.gitignore new file mode 100644 index 0000000..f823ee2 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/.gitignore @@ -0,0 +1,3 @@ +.idea +**/__pycache__ +venv/ diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.travis.yml b/.cache/roles/tcharl.ansible_manage_lvm/.travis.yml new file mode 100644 index 0000000..3c0fab9 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/.travis.yml @@ -0,0 +1,43 @@ +--- +dist: bionic + +language: python +python: + - "3.8" + +addons: + apt: + sources: + - sourceline: 'deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main' + key_url: 'https://apt.releases.hashicorp.com/gpg' + update: true + packages: + - bridge-utils + - dnsmasq-base + - ebtables + - libvirt-bin + - libvirt-dev + - qemu-kvm + - qemu-utils + - ruby-dev + - ca-certificates + - curl + - gcc + - iproute2 + - sudo + - vagrant + +install: + - vagrant plugin install vagrant-libvirt + - pip install wheel pyopenssl + - pip install netaddr python-vagrant yamllint testinfra flake8 + - pip install ansible ansible-lint + - pip install molecule molecule-vagrant python-vagrant + - sudo chmod o+rwx /var/run/libvirt/libvirt-sock + +script: + - molecule test --scenario-name kvm + - molecule test --scenario-name kvmsinglelv + - molecule test --scenario-name kvmonlyvg +notifications: + webhooks: https://galaxy.ansible.com/api/v1/notifications/ diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml b/.cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml new file mode 100644 index 0000000..70d5f7c --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml @@ -0,0 +1,36 @@ +--- +# Based on ansible-lint config +extends: default + +ignore: | + venv/ + +rules: + braces: + max-spaces-inside: 1 + level: error + brackets: + max-spaces-inside: 1 + level: error + colons: + max-spaces-after: -1 + level: error + commas: + max-spaces-after: -1 + level: error + comments: disable + comments-indentation: disable + document-start: disable + empty-lines: + max: 3 + level: error + hyphens: + level: error + indentation: disable + key-duplicates: enable + line-length: disable + new-line-at-end-of-file: disable + new-lines: + type: unix + trailing-spaces: disable + truthy: disable diff --git a/.cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md b/.cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md new file mode 100644 index 0000000..f40f9fb --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md @@ -0,0 +1,322 @@ +commit 881d5d77fa435ccaa026c3341d0d2ac1fb537b98 +Author: Larry Smith Jr +Date: Mon Apr 27 11:26:18 2020 -0400 + + Fixing syntax issue for wantlist + +commit 89360e3ffef9ff1dbbb5ad525a7ee1d77e6b8895 +Author: Larry Smith Jr +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 +Date: Fri Apr 24 17:22:07 2020 +0200 + + remove unused molecule env property + +commit 883055c33f2d6b4c0df8e61ce49771c451905334 +Author: Charlie Mordant +Date: Thu Apr 23 19:38:35 2020 +0200 + + lint + +commit 325c2d6240022fe17abf40dffee842ccf79543f1 +Author: Charlie Mordant +Date: Thu Apr 23 19:25:09 2020 +0200 + + install xfs + +commit 4a1177e420fd9632f77d07ce0a19f89a1515f8eb +Author: Charlie Mordant +Date: Tue Apr 21 19:01:29 2020 +0200 + + use xfs_info on mountpoint instead of lvm + +commit 7fd5a8eec9f4b5110929862056ab88c4db3f14de +Author: Larry Smith Jr +Date: Sun Apr 19 01:59:29 2020 -0400 + + Only doing a Molecule lint at this time + +commit 7e2a076b0a8155015fd21502db860fa89a2114b3 +Author: Larry Smith Jr +Date: Sun Apr 19 01:44:38 2020 -0400 + + Added Python requirements for testing, etc. + + Closes #33 + +commit dadb9f24f7ebc2752e6495c4c3569bdee5e0cc68 +Author: Charlie Mordant +Date: Fri Apr 17 13:12:06 2020 +0200 + + remove unwanted files + +commit 2f63eab727cf7b0b389d0d0cc1a1c7236b71f839 +Author: Charlie Mordant +Date: Fri Apr 17 12:56:31 2020 +0200 + + code smells + +commit 050f8a56f10d81f7827be53b8c769b1aa5021c00 +Author: Charlie Mordant +Date: Wed Apr 15 19:08:34 2020 +0200 + + typo in check + +commit b955a6f073b91773f5f90da878268e74872a99e9 +Author: Charlie Mordant +Date: Wed Apr 15 18:54:17 2020 +0200 + + remove unwanted newline + +commit f81937e9d82bc48f2ee03f6ff462c32bca3da8f0 +Author: Charlie Mordant +Date: Wed Apr 15 18:52:52 2020 +0200 + + makes xfs mountpoint repeatable + +commit 1c3818e5d06887c01dc0a4b88a39c0561a446300 +Author: Charlie Mordant +Date: Wed Apr 15 17:34:53 2020 +0200 + + mistake on remove volume + +commit 47f8dae16a096050dccbb8d161f4a18946a6ae73 +Author: Charlie Mordant +Date: Wed Apr 15 17:13:38 2020 +0200 + + github action lint + +commit 96fa78d6d099d0a48642d377d3e7f30a0c554bdf +Author: Charlie Mordant +Date: Wed Apr 15 17:07:33 2020 +0200 + + remove deprecated machines + +commit 17e8ec1058c5cb66b21b15a8d3912ac9980508a9 +Author: Charlie Mordant +Date: Wed Apr 15 16:56:18 2020 +0200 + + configured molecule and fix xfs on centos + +commit ba5d929fce982af9baa44cfe8ad0b3079133f444 +Author: Charlie Mordant +Date: Wed Apr 15 15:14:30 2020 +0200 + + use dots instead of carets + +commit ea9109220bb268b5f14e75e38d9fb32c2d79bae5 +Author: Charlie Mordant +Date: Wed Apr 15 14:33:41 2020 +0200 + + molecule test and idempotence + +commit d8b3a4e93257dfeb79bc8d4ef349acb53f0019dc +Author: Samuel Mutel +Date: Mon Oct 14 12:21:03 2019 +0200 + + bug: Resize XFS parts is not working + +commit b15ecea51d0045a89aae24e4b0c108b35f060b2c +Author: Tony Peรฑa +Date: Wed Jun 26 14:56:13 2019 +0200 + + Update debian.yml + + Since ansible 2.8.0 must be change way using dict + +commit 9788ee5df68798ad94f11c8133b1d62ff409d0e8 +Author: Michele Caputo +Date: Mon Apr 8 14:16:04 2019 +0200 + + issue #23: extra parenthesis + +commit 0f428a0e40d71aea410fbc1aa329203c0b4f15cd +Author: faisalnizam +Date: Tue Mar 26 10:48:45 2019 +0400 + + FIX LINT FOR BUILD + + FIX LINT FOR BUILD + +commit 8957630c04b8befa99c08ed667e43d95198202ce +Author: faisalnizam +Date: Tue Mar 26 10:40:11 2019 +0400 + + Adding SWAP FileSystem Exception + + Adding Check for SWAP Filesystem if defined skip + 1. SKIP New Filesystem Creation + 2. SKIP mountpoint check + +commit 183087e767cbce08ce2da1a3b04f47d3fc03a7e6 +Author: Larry Smith Jr +Date: Tue Apr 2 08:03:42 2019 -0400 + + Resolves #21 + +commit b3ef85d4f738597260d9db0d90e84d0f8721259a +Author: Larry Smith Jr +Date: Wed Dec 5 08:39:10 2018 -0500 + + Added skip codes for ansible-lint + +commit 9f4afa7afb3fedc270c44ff1fa357da4b87845c0 +Author: Larry Smith Jr +Date: Wed Dec 5 08:00:13 2018 -0500 + + Fixing Travis testing and yamllint issues + +commit 5603c5f6b0899a1b2cdeeeb3c035eb6249e96fa7 +Author: Larry Smith Jr +Date: Wed Dec 5 07:51:31 2018 -0500 + + Added Travis testing and hooks for galaxy + +commit 563aa1effba936340cbaad9766a49f570292edee +Author: Mark Goddard +Date: Wed Oct 31 11:42:20 2018 +0000 + + Fix indentation + +commit 4a58cb36cf6d4dd4bb23e86972658be508cca082 +Author: Mark Goddard +Date: Wed Oct 31 11:16:27 2018 +0000 + + Update tasks/manage_lvm.yml + + Co-Authored-By: oneswig + +commit a0c784797f538fc5393d75589ac48e86c51e88db +Author: Stig Telfer +Date: Wed Oct 31 10:16:44 2018 +0100 + + Support not formatting volumes. + + Logic to make the filesystem attribute optional, in situations where + we do not want the volumes formatted. + +commit 66368de1d3d2b6712cbf66fc3dd0962705bf86f9 +Author: David Castellanos +Date: Mon Dec 18 00:33:45 2017 +0100 + + Add opts and mopts support + +commit 386cc28bdb58886ed492d3438c9cb088d36de161 +Author: Larry Smith Jr +Date: Sun Jun 11 14:57:53 2017 -0400 + + Addresses issue #10 + + Signed-off-by: Larry Smith Jr + +commit 0d255cb5ce9e6016a503203c2ed39a70fb0ccd9c +Author: Larry Smith Jr +Date: Fri May 5 09:12:25 2017 -0400 + + Fixes issue #8 + + Signed-off-by: Larry Smith Jr + +commit f2d06d0d46086da0191b4dbde0d420e709e3ea01 +Author: Stefan Heimberg +Date: Thu Apr 6 00:25:55 2017 +0200 + + added support for btrfs + +commit 7749d0c62a6e1539aff94c57fd2c0eeaf43dd1a0 +Author: Kevin Loveland +Date: Fri Nov 18 10:26:16 2016 -0800 + + Fixed issue with idempotency of lvol module. See ansible-module-extras issue #428 + +commit 3ad965237280d534f0aab0027f9ef61701354e8b +Author: Kevin Loveland +Date: Thu Nov 17 15:17:26 2016 -0800 + + Changes to adjust to removal of bare vars in Ansible 2.2 + +commit a82877c290cfe0b62eda90d8874b8e2b62402946 +Author: Larry Smith Jr +Date: Sun Oct 2 09:58:47 2016 -0400 + + First commit of CHANGELOG + + Signed-off-by: Larry Smith Jr + +commit 99366fa547faccb0359dd8d3b19cec802640eb95 +Author: Rohit Kothari +Date: Thu Sep 29 17:59:19 2016 -0700 + + Replace system-storage-manager with lvm2 in centos + +commit ca1535d774b4e3310fc993841f1f99400612c7a5 +Author: Olivier LOCARD +Date: Fri Sep 23 16:21:07 2016 +0200 + + Add xfs_growfs for xfs systemfile type. + +commit bb87fa8dbff5df50ed376db74a6d2b95f64fd745 +Author: Larry Smith Jr +Date: Tue Nov 3 10:39:58 2015 -0500 + + updated vars and conditionals + +commit 49b20e2e4a80581f1c53559ff4073b3384eae28c +Author: Larry Smith Jr +Date: Tue Nov 3 10:24:54 2015 -0500 + + updated when conditions + +commit 0232734bed92e976376d4c9f2550b515f72f3d54 +Author: Larry Smith Jr +Date: Tue Nov 3 10:22:09 2015 -0500 + + updated tasks to only work when lvnames is defined + +commit 9f592112095208843da1fd69a658bd49c163a7bb +Author: Larry Smith Jr +Date: Tue Nov 3 09:37:38 2015 -0500 + + updated vars and meta + +commit 686455514d8bc0da70b3440dbc5afe669188d333 +Author: Larry Smith Jr +Date: Tue Nov 3 09:22:00 2015 -0500 + + cleaned up and fixed all tasks including swap + +commit 9f5c61e25599a130e1625e879438561cc1f6a437 +Author: Larry Smith Jr +Date: Mon Nov 2 23:38:38 2015 -0500 + + added new task + +commit a5103ff6396138f531cf8457f16706b6fc90d1d1 +Author: Larry Smith Jr +Date: Mon Nov 2 23:38:23 2015 -0500 + + changing role tasks and vars + +commit c776e9f339f0bcfe987aa571d29411ac44a29526 +Author: Larry Smith Jr +Date: Mon Nov 2 21:50:07 2015 -0500 + + updated meta + +commit 46e0fd1fc2477693fc66aa4b38ac7bde19087047 +Author: Larry Smith Jr +Date: Mon Nov 2 21:23:59 2015 -0500 + + updated meta + +commit d1d99b2f17d3bc46a479af5d01a976686429b7ce +Author: Larry Smith Jr +Date: Mon Nov 2 21:23:03 2015 -0500 + + first commit diff --git a/.cache/roles/tcharl.ansible_manage_lvm/README.md b/.cache/roles/tcharl.ansible_manage_lvm/README.md new file mode 100644 index 0000000..9e81f9c --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/README.md @@ -0,0 +1,34 @@ +# ansible-manage-lvm + +Ansible role to manage LVM Groups/Logical Volumes. + +> NOTE: Can be used to create, extend or resize LVM Groups and volumes. + +## Requirements + +Devices/disks to be members of the LVM setup **must be** identified prior to +using this role. + +## Role Variables + +[defaults/main.yml](defaults/main.yml) + +## Dependencies + +None + +## Example Playbook + +[playbook.yml](playbook.yml) + +## License + +MIT + +## Author Information + +Larry Smith Jr. + +- [@mrlesmithjr](https://twitter.com/mrlesmithjr) +- [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com) +- [http://everythingshouldbevirtual.com](http://everythingshouldbevirtual.com) diff --git a/.cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml new file mode 100644 index 0000000..adcc5e7 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml @@ -0,0 +1,63 @@ +--- +# defaults file for ansible-manage-lvm +lvm_groups: [] +# - vgname: ubuntu-vg +# disks: +# - /dev/sda5 +# - /dev/sdc +# - /dev/sdd +# # defines if VG should exist or be removed +# # true or false +# create: true +# lvnames: +# - lvname: swap_1 +# # Define size of lvol +# # 100%FREE, 10g, 1024 (megabytes by default) +# size: 5g +# # Defines additional lvcreate options (e.g. stripes, stripesize, etc) +# opts: '' +# # Defines if lvol should exist or be removed +# # true or false +# create: true +# # Defines filesystem to format lvol as +# filesystem: swap +# # Defines if filesystem should be mounted +# mount: false +# # Defines mountpoint for lvol +# mntp: [] +# # Defines additional mount options (e.g. noatime, noexec, etc) +# mopts: '' +# - lvname: root +# size: 40g +# create: true +# filesystem: ext4 +# mount: true +# mntp: / +# - vgname: test-vg +# disks: +# - /dev/sdb +# create: true +# lvnames: +# - lvname: test_1 +# size: 5g +# create: true +# filesystem: ext4 +# mount: true +# mntp: /mnt/test_1 +# - lvname: test_2 +# size: 10g +# create: true +# filesystem: ext4 +# mount: true +# mntp: /mnt/test_2 +# - vgname: cinder-volumes +# disks: +# - /dev/cciss/c0d1 +# create: true +# lvnames: +# # Set to None to only create LVM VG w/out creating LVM LVOLS +# - None + +# Defines if LVM will be managed by role +# default is false to ensure nothing is changed by accident. +manage_lvm: false diff --git a/.cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml new file mode 100644 index 0000000..2027eb2 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for ansible-manage-lvm diff --git a/.cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info b/.cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info new file mode 100644 index 0000000..7b078c5 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info @@ -0,0 +1,2 @@ +install_date: Sat Apr 24 08:17:34 2021 +version: v0.1.16 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/meta/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/meta/main.yml new file mode 100644 index 0000000..6e47f1f --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/meta/main.yml @@ -0,0 +1,28 @@ +--- +galaxy_info: + author: Larry Smith Jr. + description: Ansible role to manage(create, extend, resize) LVM Groups/Logical Volumes. + + license: MIT + min_ansible_version: 1.2 + platforms: + - name: fedora + versions: + - 31 + + - name: EL + versions: + - all + - name: Fedora + versions: + - all + - name: Ubuntu + versions: + - all + - name: Debian + versions: + - all + galaxy_tags: + - system + - lvm +dependencies: [] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml new file mode 100644 index 0000000..119de5d --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml @@ -0,0 +1,29 @@ +--- +- name: Converge + hosts: all + vars: + lvm_groups: + - vgname: my_vg + disks: + - /dev/sdb1 + create: true + lvnames: + - lvname: my_lv + size: 40%VG + opts: "--wipesignatures y" + create: true + filesystem: ext4 + mount: true + mntp: "/var/lib/mountpoint" + - lvname: my_lw + 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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml new file mode 100644 index 0000000..cc232f2 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml @@ -0,0 +1,39 @@ +--- +driver: + name: vagrant + provider: + name: virtualbox +lint: yamllint . && flake8 && ansible-lint +platforms: + - name: CentOS-Molecule-LVM + box: mrlesmithjr/centos7 + provider_override_args: + - "persistent_storage.enabled = true" + - "persistent_storage.location = 'centos-molecule-lvm.vdi'" + - "persistent_storage.size = 100" + - "persistent_storage.mount = false" + - "persistent_storage.diskdevice = '/dev/sdb'" + - name: Fedora-Molecule-LVM + box: mrlesmithjr/fedora31 + provider_override_args: + - "persistent_storage.enabled = true" + - "persistent_storage.location = 'fedora-molecule-lvm.vdi'" + - "persistent_storage.size = 100" + - "persistent_storage.mount = false" + - "persistent_storage.diskdevice = '/dev/sdb'" + - name: Ubuntu-Molecule-LVM + box: mrlesmithjr/bionic64 + provider_override_args: + - "persistent_storage.enabled = true" + - "persistent_storage.location = 'ubuntu-molecule-lvm.vdi'" + - "persistent_storage.size = 100" + - "persistent_storage.mount = false" + - "persistent_storage.diskdevice = '/dev/sdb'" +provisioner: + name: ansible +verifier: + name: testinfra + env: + PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning" + options: + v: 1 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py new file mode 100644 index 0000000..7bd2743 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py @@ -0,0 +1,21 @@ +"""PyTest Fixtures.""" +from __future__ import absolute_import +import os +import pytest + + +def pytest_runtest_setup(item): + """Run tests only when under molecule with testinfra installed.""" + try: + import testinfra + except ImportError: + pytest.skip("Test requires testinfra", allow_module_level=True) + if "MOLECULE_INVENTORY_FILE" in os.environ: + pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( + os.environ["MOLECULE_INVENTORY_FILE"] + ).get_hosts("all") + else: + pytest.skip( + "Test should run only from inside molecule.", + allow_module_level=True + ) diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py new file mode 100644 index 0000000..9df90df --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py @@ -0,0 +1,33 @@ +"""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_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): + host.file("/var/lib/mountpoint").mode == 0o731 + + +def test_volume2_is_mounted(host): + host.file("/var/lib/mountpoint2").mode == 0o731 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml new file mode 100644 index 0000000..ab055c7 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml @@ -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_lw + 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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml new file mode 100644 index 0000000..2cc050a --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml @@ -0,0 +1,29 @@ +--- +driver: + name: vagrant + provider: + name: libvirt +lint: yamllint . && flake8 && ansible-lint +platforms: + - name: Fedora-Molecule-Volumes-KVM + box: fedora/33-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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests new file mode 120000 index 0000000..5456f39 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests @@ -0,0 +1 @@ +../default/tests \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml new file mode 100644 index 0000000..be123c4 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml @@ -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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml new file mode 100644 index 0000000..3b8858e --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml @@ -0,0 +1,29 @@ +--- +driver: + name: vagrant + provider: + name: libvirt +lint: yamllint . && flake8 && ansible-lint +platforms: + - name: Fedora-Molecule-Volumes-KVM + box: fedora/33-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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py new file mode 120000 index 0000000..add822b --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py @@ -0,0 +1 @@ +../../default/tests/conftest.py \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py new file mode 100644 index 0000000..b03947a --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py @@ -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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml new file mode 100644 index 0000000..09d88bd --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml @@ -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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml new file mode 100644 index 0000000..6418d79 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml @@ -0,0 +1,29 @@ +--- +driver: + name: vagrant + provider: + name: libvirt +lint: yamllint . && flake8 && ansible-lint +platforms: + - name: Fedora-Molecule-Volumes-KVM + box: fedora/33-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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py new file mode 120000 index 0000000..add822b --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py @@ -0,0 +1 @@ +../../default/tests/conftest.py \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py new file mode 100644 index 0000000..ad9e53a --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py @@ -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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/playbook.yml b/.cache/roles/tcharl.ansible_manage_lvm/playbook.yml new file mode 100644 index 0000000..6b69e5a --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/playbook.yml @@ -0,0 +1,27 @@ +--- +- hosts: test-nodes + vars: + lvm_groups: + - vgname: test-vg + disks: + - /dev/sdb + - /dev/sdc + create: true + lvnames: + - lvname: test_1 + size: 5g + create: true + filesystem: ext4 + mount: true + mntp: /mnt/test_1 + - lvname: test_2 + size: 10g + create: true + filesystem: ext4 + mount: true + mntp: /mnt/test_2 + manage_lvm: true + tasks: + - name: Include lvm + include_role: + name: ansible-manage-lvm diff --git a/.cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt b/.cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt new file mode 100644 index 0000000..fad57a5 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt @@ -0,0 +1,66 @@ +ansible==2.9.7 +ansible-lint==4.2.0 +arrow==0.15.5 +attrs==19.3.0 +bcrypt==3.1.7 +binaryornot==0.4.4 +Cerberus==1.3.2 +certifi==2020.4.5.1 +cffi==1.14.0 +chardet==3.0.4 +click==7.1.1 +click-completion==0.5.2 +click-help-colors==0.8 +colorama==0.4.3 +cookiecutter==1.7.0 +cryptography==2.9 +distro==1.5.0 +docker==4.2.0 +entrypoints==0.3 +fasteners==0.15 +flake8==3.7.9 +future==0.18.2 +idna==2.9 +importlib-metadata==1.6.0 +Jinja2==2.11.2 +jinja2-time==0.2.0 +MarkupSafe==1.1.1 +mccabe==0.6.1 +molecule==3.0.3 +molecule-vagrant==0.2 +monotonic==1.5 +more-itertools==8.2.0 +packaging==20.3 +paramiko==2.7.1 +pathspec==0.8.0 +pexpect==4.8.0 +pluggy==0.13.1 +poyo==0.5.0 +ptyprocess==0.6.0 +py==1.8.1 +pycodestyle==2.5.0 +pycparser==2.20 +pyflakes==2.1.1 +PyNaCl==1.3.0 +pyparsing==2.4.7 +pytest==5.4.1 +python-dateutil==2.8.1 +python-gilt==1.2.3 +python-vagrant==0.5.15 +PyYAML==5.3.1 +requests==2.23.0 +ruamel.yaml==0.16.10 +ruamel.yaml.clib==0.2.0 +selinux==0.2.1 +sh==1.12.14 +shellingham==1.3.2 +six==1.14.0 +tabulate==0.8.7 +testinfra==5.0.0 +tree-format==0.1.2 +urllib3==1.25.9 +wcwidth==0.1.9 +websocket-client==0.57.0 +whichcraft==0.6.1 +yamllint==1.23.0 +zipp==3.1.0 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/requirements.txt b/.cache/roles/tcharl.ansible_manage_lvm/requirements.txt new file mode 100644 index 0000000..48c9c43 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/requirements.txt @@ -0,0 +1,7 @@ +ansible-lint==4.2.0 +docker==4.2.0 +flake8==3.7.9 +molecule-vagrant==0.2 +molecule==3.0.3 +testinfra==5.0.0 +yamllint==1.23.0 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml new file mode 100644 index 0000000..7a5cb94 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml @@ -0,0 +1,47 @@ +--- +- name: centos | installing lvm2 + package: + name: lvm2 + state: present + become: true + +- name: centos | installing sg3_utils + package: + name: sg3_utils + state: present + 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 + package: + name: "xfsprogs" + state: "present" + become: true + loop: "{{ lookup('subelements', lvm_groups, 'lvnames', {'skip_missing': True}, wantlist=True) }}" + loop_control: + loop_var: lv + when: + - lv.1 is defined + - lv.1 != "None" + - lv.1.filesystem is defined + - lv.1.filesystem == "xfs" + - lv.1.create is defined + - lv.1.create|bool + +- name: centos | checking for scsi devices + command: sg_scan + become: true + register: scsi_devices + changed_when: false + +- name: centos | rescanning for new disks + command: /usr/bin/rescan-scsi-bus.sh + become: true + changed_when: false diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml new file mode 100644 index 0000000..0e842f9 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml @@ -0,0 +1,96 @@ +--- + +# unable to resize xfs: looks like we've to reference the mountpoint instead of the device +- name: create_fs | check already converted + # at least xfs is executed twice if the partition has changed in the meantime + # then it tries to recreate the fs on the mounted fs which indeed fails... + shell: "xfs_info {{ lv.mntp }} | grep -c 'ftype=1'" + become: yes + register: mountedxfs + ignore_errors: true + changed_when: false + when: + - lv is defined and lv != 'None' + - lv.filesystem is defined + - lv.filesystem == "xfs" + - lv.create is defined + - lv.create|bool + +- name: create_fs | unmounting filesystem(s) + mount: + path: "{{ lv.mntp }}" + src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" + fstype: "{{ lv.filesystem | default(omit) }}" + state: absent + become: true + when: + - lv is defined + - lv != 'None' + - lv.create is defined + - not lv.create|bool + - lv.filesystem != "swap" + +- name: create_fs | creating new filesystem on new LVM logical volume(s) + filesystem: + fstype: "{{ lv.filesystem }}" + dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" + resizefs: yes + become: true + when: + - vg.create is defined + - vg.create|bool + - lv is defined + - lv != 'None' + - lv.create is defined + - lv.create|bool + - lv.filesystem is defined + - lv.filesystem != 'None' + - lv.filesystem != 'xfs' + +- name: create_fs | creating new xfs filesystem on new LVM logical volume(s) + filesystem: + fstype: "{{ lv.filesystem }}" + dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" + become: true + when: + - mountedxfs is failed + - vg.create is defined + - vg.create|bool + - lv is defined + - lv != 'None' + - lv.create is defined + - lv.create|bool + - lv.filesystem is defined + - lv.filesystem == 'xfs' + +- name: create_fs | mounting new filesystem(s) + mount: + path: "{{ lv.mntp }}" + src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" + fstype: "{{ lv.filesystem }}" + state: mounted + opts: "{{ lv.mopts | default('defaults') }}" + become: true + when: + - vg.create is defined + - vg.create|bool + - lv is defined + - lv != 'None' + - lv.create is defined + - lv.create|bool + - lv.mount is defined + - lv.mount|bool + +- name: create_fs | resizing xfs filesystem on new LVM logical volume(s) + command: "xfs_growfs {{ lv.mntp }}" + become: true + when: + - vg.create is defined + - vg.create|bool + - lv is defined + - lv != 'None' + - lv.create is defined + - lv.create|bool + - lv.filesystem is defined + - lv.filesystem == 'xfs' + - lvchanged.changed diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml new file mode 100644 index 0000000..ee2e7ca --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml @@ -0,0 +1,31 @@ +--- + +- name: create_lv | Display Volume Group + debug: + var: vg + verbosity: 2 + +- name: create_lv | creating new LVM logical volume(s) + lvol: + vg: "{{ vg.vgname }}" + lv: "{{ lv.lvname }}" + size: "{{ lv.size }}" + shrink: false + opts: "{{ lv.opts | default('') }}" + state: present + become: true + register: lvchanged + when: + - vg.create is defined + - vg.create|bool + - lv is defined + - lv != 'None' + - lv.create is defined + - lv.create|bool + +- name: create_lv | debug changed attribute + debug: + var: lvchanged + +- name: create_lv | configuring FS + include_tasks: create_fs.yml diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml new file mode 100644 index 0000000..6810efd --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml @@ -0,0 +1,16 @@ +--- +- name: create_vg | creating new LVM volume group(s) + lvg: + vg: "{{ vg.vgname }}" + pvs: "{{ vg.disks | join(',') }}" + state: present + become: true + when: + - vg.create is defined + - vg.create|bool + +- name: manage_lvm | loop over logical volume group(s) to create logical volumes + include_tasks: create_lv.yml + loop: "{{ vg.lvnames | default([]) }}" + loop_control: + loop_var: lv diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml new file mode 100644 index 0000000..05fe1cb --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml @@ -0,0 +1,40 @@ +--- +- name: debian | Updating Apt Cache + apt: + update_cache: true + cache_valid_time: 3600 + become: true + +- name: debian | installing pre-reqs + apt: + name: + - lvm2 + - scsitools + state: present + become: true + +- name: debian | install xfs tools + apt: + name: xfsprogs + state: present + become: true + loop: "{{ lvm_groups|subelements('lvnames') }}" + when: + - item.1 is defined + - item.1 != 'None' + - item.1.filesystem is defined + - item.1.filesystem == "xfs" + - item.1.create is defined + - item.1.create|bool + +- name: debian | checking for scsi devices + command: sg_scan + become: true + register: scsi_devices + changed_when: false + +- name: debian | rescanning for new disks added + command: /sbin/rescan-scsi-bus + become: true + changed_when: false + when: scsi_devices['stdout'] | length diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml new file mode 100644 index 0000000..5aaed04 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml @@ -0,0 +1,12 @@ +--- +# tasks file for ansible-manage-lvm +- include_tasks: debian.yml + when: ansible_os_family == "Debian" + +- include_tasks: centos.yml + when: ansible_os_family == "RedHat" + +- include_tasks: manage_lvm.yml + when: + - lvm_groups is defined + - manage_lvm|bool diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml new file mode 100644 index 0000000..04b6d26 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml @@ -0,0 +1,31 @@ +--- +- name: manage_lvm | manage physical volume group creation + include_tasks: create_vg.yml + loop: "{{ lvm_groups }}" + loop_control: + loop_var: vg + +- name: manage_lvm | Removing LVM logical volume(s) + lvol: + vg: "{{ item.0.vgname }}" + lv: "{{ item.1.lvname }}" + state: absent + force: true + become: true + loop: "{{ lvm_groups|subelements('lvnames', {'skip_missing': true}) }}" + when: + - item.1 is defined + - item.1 != 'None' + - item.1.create is defined + - not item.1.create|bool + +- name: manage_lvm | Removing LVM volume group(s) + lvg: + vg: "{{ item.vgname }}" + pvs: "{{ item.disks | join(',') }}" + state: absent + become: true + loop: "{{ lvm_groups }}" + when: + - item.create is defined + - not item.create|bool diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint b/.cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint new file mode 100644 index 0000000..9c1ce1b --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint @@ -0,0 +1 @@ +skip_list: ['305','503','602'] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 new file mode 100644 index 0000000..1ad757e --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 @@ -0,0 +1,27 @@ +FROM centos:7 +ENV container=docker + +RUN yum -y install epel-release && \ + yum -y install gmp-devel libffi-devel openssl-devel python-crypto \ + python-devel python-pip python-setuptools python-virtualenv \ + redhat-rpm-config && \ + yum -y group install "Development Tools" + +# Install systemd -- See https://hub.docker.com/_/centos/ +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ + rm -f /lib/systemd/system/multi-user.target.wants/*;\ + rm -f /etc/systemd/system/*.wants/*;\ + rm -f /lib/systemd/system/local-fs.target.wants/*; \ + rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -f /lib/systemd/system/basic.target.wants/*;\ + rm -f /lib/systemd/system/anaconda.target.wants/*; + +RUN pip install enum34 ipaddress wheel && \ + pip install ansible ansible-lint + +COPY .ansible-lint / + +VOLUME ["/sys/fs/cgroup"] + +CMD ["/usr/sbin/init"] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch new file mode 100644 index 0000000..c1187b8 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch @@ -0,0 +1,13 @@ +FROM debian:stretch +ENV container=docker + +RUN apt-get update && \ + apt-get install -y --no-install-recommends build-essential libffi-dev \ + libssl-dev python-dev python-minimal python-pip python-setuptools \ + python-virtualenv systemd && \ + rm -rf /var/lib/apt/lists/* + +RUN pip install enum34 ipaddress wheel && \ + pip install ansible ansible-lint + +COPY .ansible-lint / diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 new file mode 100644 index 0000000..16fa871 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 @@ -0,0 +1,26 @@ +FROM fedora:25 +ENV container=docker + +RUN dnf -y install gmp-devel libffi-devel openssl-devel python-crypto \ + python-devel python-dnf python-pip python-setuptools python-virtualenv \ + redhat-rpm-config systemd && \ + dnf -y group install "C Development Tools and Libraries" + +# Install systemd -- See https://hub.docker.com/_/centos/ +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ + rm -f /lib/systemd/system/multi-user.target.wants/*;\ + rm -f /etc/systemd/system/*.wants/*;\ + rm -f /lib/systemd/system/local-fs.target.wants/*; \ + rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -f /lib/systemd/system/basic.target.wants/*;\ + rm -f /lib/systemd/system/anaconda.target.wants/*; + +RUN pip install enum34 ipaddress wheel && \ + pip install ansible ansible-lint + +COPY .ansible-lint / + +VOLUME ["/sys/fs/cgroup"] + +CMD ["/usr/sbin/init"] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 new file mode 100644 index 0000000..dd8a954 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 @@ -0,0 +1,26 @@ +FROM fedora:26 +ENV container=docker + +RUN dnf -y install gmp-devel libffi-devel openssl-devel python-crypto \ + python-devel python-dnf python-pip python-setuptools python-virtualenv \ + redhat-rpm-config systemd && \ + dnf -y group install "C Development Tools and Libraries" + +# Install systemd -- See https://hub.docker.com/_/centos/ +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ + rm -f /lib/systemd/system/multi-user.target.wants/*;\ + rm -f /etc/systemd/system/*.wants/*;\ + rm -f /lib/systemd/system/local-fs.target.wants/*; \ + rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -f /lib/systemd/system/basic.target.wants/*;\ + rm -f /lib/systemd/system/anaconda.target.wants/*; + +RUN pip install enum34 ipaddress wheel && \ + pip install ansible ansible-lint + +COPY .ansible-lint / + +VOLUME ["/sys/fs/cgroup"] + +CMD ["/usr/sbin/init"] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic new file mode 100644 index 0000000..07116b6 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic @@ -0,0 +1,13 @@ +FROM ubuntu:bionic +ENV container=docker + +RUN apt-get update && \ + apt-get install -y --no-install-recommends build-essential libffi-dev \ + libssl-dev python-dev python-minimal python-pip python-setuptools \ + python-virtualenv systemd && \ + rm -rf /var/lib/apt/lists/* + +RUN pip install enum34 ipaddress wheel && \ + pip install ansible ansible-lint + +COPY .ansible-lint / diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial new file mode 100644 index 0000000..188f255 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial @@ -0,0 +1,13 @@ +FROM ubuntu:xenial +ENV container=docker + +RUN apt-get update && \ + apt-get install -y --no-install-recommends build-essential libffi-dev \ + libssl-dev python-dev python-minimal python-pip python-setuptools \ + python-virtualenv && \ + rm -rf /var/lib/apt/lists/* + +RUN pip install enum34 ipaddress wheel && \ + pip install ansible ansible-lint + +COPY .ansible-lint / diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/inventory b/.cache/roles/tcharl.ansible_manage_lvm/tests/inventory new file mode 100644 index 0000000..2fbb50c --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/inventory @@ -0,0 +1 @@ +localhost diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/test.yml b/.cache/roles/tcharl.ansible_manage_lvm/tests/test.yml new file mode 100644 index 0000000..2ac7e23 --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + connection: local + roles: + - ansible-manage-lvm diff --git a/.cache/roles/tcharl.ansible_manage_lvm/vars/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/vars/main.yml new file mode 100644 index 0000000..8d13a1b --- /dev/null +++ b/.cache/roles/tcharl.ansible_manage_lvm/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for ansible-manage-lvm diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index ae24a56..93fd644 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -8,7 +8,7 @@ disks: - /dev/sdb1 create: true - users_group_list: + users_group_list2: - name: libvirt systemusers_user_list: - name: libvirt diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index 3cb70b3..b0229ca 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -8,7 +8,7 @@ disks: - /dev/vdb create: true - users_group_list: + users_group_list2: - name: libvirt systemusers_user_list: - name: libvirt diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index c309db3..a6ee132 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -11,7 +11,7 @@ driver: lint: yamllint . && flake8 && ansible-lint --exclude=meta platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/33-cloud-base + box: fedora/34-cloud-base provider_options: driver: '"kvm"' cpus: 2 diff --git a/tasks/pools.yml b/tasks/pools.yml index 5c244a8..142ece0 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -1,7 +1,7 @@ --- - name: Include lvm role to create VG include_role: - name: tcharl.ansible_manage_lvm + name: mrlesmithjr.manage-lvm when: - manage_lvm is defined - manage_lvm @@ -16,7 +16,7 @@ state: directory when: item.type == "dir" loop: "{{ libvirt_host_pools | flatten(levels=1) }}" - become: true + become: True - name: include rbd.yml include_tasks: diff --git a/tasks/rbd.yml b/tasks/rbd.yml index 3d7b9d2..f14fbca 100644 --- a/tasks/rbd.yml +++ b/tasks/rbd.yml @@ -30,3 +30,5 @@ - name: Flush handlers meta: flush_handlers + + From d9066be9926d8754d5b7a637dbe3b852c1426ff7 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 2 May 2021 19:35:16 +0200 Subject: [PATCH 05/42] add zone --- .cache/roles/Mark Goddard.libvirt-host | 1 - .../tcharl.ansible_manage_lvm/.ansible-lint | 2 - .../.github/workflows/molecule.yml | 41 --- .../tcharl.ansible_manage_lvm/.gitignore | 3 - .../tcharl.ansible_manage_lvm/.travis.yml | 43 --- .../tcharl.ansible_manage_lvm/.yamllint.yml | 36 -- .../tcharl.ansible_manage_lvm/CHANGELOG.md | 322 ------------------ .../roles/tcharl.ansible_manage_lvm/README.md | 34 -- .../defaults/main.yml | 63 ---- .../handlers/main.yml | 2 - .../meta/.galaxy_install_info | 2 - .../tcharl.ansible_manage_lvm/meta/main.yml | 28 -- .../molecule/default/converge.yml | 29 -- .../molecule/default/molecule.yml | 39 --- .../molecule/default/tests/conftest.py | 21 -- .../molecule/default/tests/test_default.py | 33 -- .../molecule/kvm/converge.yml | 29 -- .../molecule/kvm/molecule.yml | 29 -- .../molecule/kvm/tests | 1 - .../molecule/kvmonlyvg/converge.yml | 14 - .../molecule/kvmonlyvg/molecule.yml | 29 -- .../molecule/kvmonlyvg/tests/conftest.py | 1 - .../molecule/kvmonlyvg/tests/test_default.py | 11 - .../molecule/kvmsinglelv/converge.yml | 22 -- .../molecule/kvmsinglelv/molecule.yml | 29 -- .../molecule/kvmsinglelv/tests/conftest.py | 1 - .../kvmsinglelv/tests/test_default.py | 22 -- .../tcharl.ansible_manage_lvm/playbook.yml | 27 -- .../requirements-dev.txt | 66 ---- .../requirements.txt | 7 - .../tasks/centos.yml | 47 --- .../tasks/create_fs.yml | 96 ------ .../tasks/create_lv.yml | 31 -- .../tasks/create_vg.yml | 16 - .../tasks/debian.yml | 40 --- .../tcharl.ansible_manage_lvm/tasks/main.yml | 12 - .../tasks/manage_lvm.yml | 31 -- .../tests/.ansible-lint | 1 - .../tests/Dockerfile.centos-7 | 27 -- .../tests/Dockerfile.debian-stretch | 13 - .../tests/Dockerfile.fedora-25 | 26 -- .../tests/Dockerfile.fedora-26 | 26 -- .../tests/Dockerfile.ubuntu-bionic | 13 - .../tests/Dockerfile.ubuntu-xenial | 13 - .../tcharl.ansible_manage_lvm/tests/inventory | 1 - .../tcharl.ansible_manage_lvm/tests/test.yml | 5 - .../tcharl.ansible_manage_lvm/vars/main.yml | 2 - .gitignore | 1 + README.md | 2 + molecule/default/converge.yml | 10 +- molecule/default/molecule.yml | 12 +- .../conftest.cpython-39-pytest-6.2.3.pyc | Bin 0 -> 1001 bytes .../test_default.cpython-39-pytest-6.2.3.pyc | Bin 0 -> 3231 bytes molecule/default/tests/test_default.py | 28 +- molecule/kvm/converge.yml | 4 +- tasks/rbd.yml | 5 +- templates/network.xml.j2 | 6 +- 57 files changed, 42 insertions(+), 1413 deletions(-) delete mode 120000 .cache/roles/Mark Goddard.libvirt-host delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.ansible-lint delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.gitignore delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.travis.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/README.md delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/meta/main.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml delete mode 120000 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml delete mode 120000 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml delete mode 120000 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/playbook.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/requirements.txt delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/inventory delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/tests/test.yml delete mode 100644 .cache/roles/tcharl.ansible_manage_lvm/vars/main.yml create mode 100644 molecule/default/tests/__pycache__/conftest.cpython-39-pytest-6.2.3.pyc create mode 100644 molecule/default/tests/__pycache__/test_default.cpython-39-pytest-6.2.3.pyc diff --git a/.cache/roles/Mark Goddard.libvirt-host b/.cache/roles/Mark Goddard.libvirt-host deleted file mode 120000 index c25bddb..0000000 --- a/.cache/roles/Mark Goddard.libvirt-host +++ /dev/null @@ -1 +0,0 @@ -../.. \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.ansible-lint b/.cache/roles/tcharl.ansible_manage_lvm/.ansible-lint deleted file mode 100644 index 20a2035..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/.ansible-lint +++ /dev/null @@ -1,2 +0,0 @@ -skip_list: - - '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml deleted file mode 100644 index fb6b69b..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/.github/workflows/molecule.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- - -# This is a basic workflow to help you get started with Actions - -name: Molecule - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - pull_request: - branches: - - master - - tags/* - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - - lint: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - - - name: install lint prerequisite - run: | - sudo apt -y install python3-setuptools ansible-lint - - - name: Install molecule - run: | - sudo apt update - sudo apt -y install python3-setuptools python3 python3-pip docker vagrant - sudo pip3 install wheel - sudo pip3 install molecule testinfra yamllint ansible-lint flake8 molecule-vagrant - - - name: molecule lint - run: | - molecule lint diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.gitignore b/.cache/roles/tcharl.ansible_manage_lvm/.gitignore deleted file mode 100644 index f823ee2..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.idea -**/__pycache__ -venv/ diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.travis.yml b/.cache/roles/tcharl.ansible_manage_lvm/.travis.yml deleted file mode 100644 index 3c0fab9..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/.travis.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -dist: bionic - -language: python -python: - - "3.8" - -addons: - apt: - sources: - - sourceline: 'deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main' - key_url: 'https://apt.releases.hashicorp.com/gpg' - update: true - packages: - - bridge-utils - - dnsmasq-base - - ebtables - - libvirt-bin - - libvirt-dev - - qemu-kvm - - qemu-utils - - ruby-dev - - ca-certificates - - curl - - gcc - - iproute2 - - sudo - - vagrant - -install: - - vagrant plugin install vagrant-libvirt - - pip install wheel pyopenssl - - pip install netaddr python-vagrant yamllint testinfra flake8 - - pip install ansible ansible-lint - - pip install molecule molecule-vagrant python-vagrant - - sudo chmod o+rwx /var/run/libvirt/libvirt-sock - -script: - - molecule test --scenario-name kvm - - molecule test --scenario-name kvmsinglelv - - molecule test --scenario-name kvmonlyvg -notifications: - webhooks: https://galaxy.ansible.com/api/v1/notifications/ diff --git a/.cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml b/.cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml deleted file mode 100644 index 70d5f7c..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/.yamllint.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -# Based on ansible-lint config -extends: default - -ignore: | - venv/ - -rules: - braces: - max-spaces-inside: 1 - level: error - brackets: - max-spaces-inside: 1 - level: error - colons: - max-spaces-after: -1 - level: error - commas: - max-spaces-after: -1 - level: error - comments: disable - comments-indentation: disable - document-start: disable - empty-lines: - max: 3 - level: error - hyphens: - level: error - indentation: disable - key-duplicates: enable - line-length: disable - new-line-at-end-of-file: disable - new-lines: - type: unix - trailing-spaces: disable - truthy: disable diff --git a/.cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md b/.cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md deleted file mode 100644 index f40f9fb..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/CHANGELOG.md +++ /dev/null @@ -1,322 +0,0 @@ -commit 881d5d77fa435ccaa026c3341d0d2ac1fb537b98 -Author: Larry Smith Jr -Date: Mon Apr 27 11:26:18 2020 -0400 - - Fixing syntax issue for wantlist - -commit 89360e3ffef9ff1dbbb5ad525a7ee1d77e6b8895 -Author: Larry Smith Jr -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 -Date: Fri Apr 24 17:22:07 2020 +0200 - - remove unused molecule env property - -commit 883055c33f2d6b4c0df8e61ce49771c451905334 -Author: Charlie Mordant -Date: Thu Apr 23 19:38:35 2020 +0200 - - lint - -commit 325c2d6240022fe17abf40dffee842ccf79543f1 -Author: Charlie Mordant -Date: Thu Apr 23 19:25:09 2020 +0200 - - install xfs - -commit 4a1177e420fd9632f77d07ce0a19f89a1515f8eb -Author: Charlie Mordant -Date: Tue Apr 21 19:01:29 2020 +0200 - - use xfs_info on mountpoint instead of lvm - -commit 7fd5a8eec9f4b5110929862056ab88c4db3f14de -Author: Larry Smith Jr -Date: Sun Apr 19 01:59:29 2020 -0400 - - Only doing a Molecule lint at this time - -commit 7e2a076b0a8155015fd21502db860fa89a2114b3 -Author: Larry Smith Jr -Date: Sun Apr 19 01:44:38 2020 -0400 - - Added Python requirements for testing, etc. - - Closes #33 - -commit dadb9f24f7ebc2752e6495c4c3569bdee5e0cc68 -Author: Charlie Mordant -Date: Fri Apr 17 13:12:06 2020 +0200 - - remove unwanted files - -commit 2f63eab727cf7b0b389d0d0cc1a1c7236b71f839 -Author: Charlie Mordant -Date: Fri Apr 17 12:56:31 2020 +0200 - - code smells - -commit 050f8a56f10d81f7827be53b8c769b1aa5021c00 -Author: Charlie Mordant -Date: Wed Apr 15 19:08:34 2020 +0200 - - typo in check - -commit b955a6f073b91773f5f90da878268e74872a99e9 -Author: Charlie Mordant -Date: Wed Apr 15 18:54:17 2020 +0200 - - remove unwanted newline - -commit f81937e9d82bc48f2ee03f6ff462c32bca3da8f0 -Author: Charlie Mordant -Date: Wed Apr 15 18:52:52 2020 +0200 - - makes xfs mountpoint repeatable - -commit 1c3818e5d06887c01dc0a4b88a39c0561a446300 -Author: Charlie Mordant -Date: Wed Apr 15 17:34:53 2020 +0200 - - mistake on remove volume - -commit 47f8dae16a096050dccbb8d161f4a18946a6ae73 -Author: Charlie Mordant -Date: Wed Apr 15 17:13:38 2020 +0200 - - github action lint - -commit 96fa78d6d099d0a48642d377d3e7f30a0c554bdf -Author: Charlie Mordant -Date: Wed Apr 15 17:07:33 2020 +0200 - - remove deprecated machines - -commit 17e8ec1058c5cb66b21b15a8d3912ac9980508a9 -Author: Charlie Mordant -Date: Wed Apr 15 16:56:18 2020 +0200 - - configured molecule and fix xfs on centos - -commit ba5d929fce982af9baa44cfe8ad0b3079133f444 -Author: Charlie Mordant -Date: Wed Apr 15 15:14:30 2020 +0200 - - use dots instead of carets - -commit ea9109220bb268b5f14e75e38d9fb32c2d79bae5 -Author: Charlie Mordant -Date: Wed Apr 15 14:33:41 2020 +0200 - - molecule test and idempotence - -commit d8b3a4e93257dfeb79bc8d4ef349acb53f0019dc -Author: Samuel Mutel -Date: Mon Oct 14 12:21:03 2019 +0200 - - bug: Resize XFS parts is not working - -commit b15ecea51d0045a89aae24e4b0c108b35f060b2c -Author: Tony Peรฑa -Date: Wed Jun 26 14:56:13 2019 +0200 - - Update debian.yml - - Since ansible 2.8.0 must be change way using dict - -commit 9788ee5df68798ad94f11c8133b1d62ff409d0e8 -Author: Michele Caputo -Date: Mon Apr 8 14:16:04 2019 +0200 - - issue #23: extra parenthesis - -commit 0f428a0e40d71aea410fbc1aa329203c0b4f15cd -Author: faisalnizam -Date: Tue Mar 26 10:48:45 2019 +0400 - - FIX LINT FOR BUILD - - FIX LINT FOR BUILD - -commit 8957630c04b8befa99c08ed667e43d95198202ce -Author: faisalnizam -Date: Tue Mar 26 10:40:11 2019 +0400 - - Adding SWAP FileSystem Exception - - Adding Check for SWAP Filesystem if defined skip - 1. SKIP New Filesystem Creation - 2. SKIP mountpoint check - -commit 183087e767cbce08ce2da1a3b04f47d3fc03a7e6 -Author: Larry Smith Jr -Date: Tue Apr 2 08:03:42 2019 -0400 - - Resolves #21 - -commit b3ef85d4f738597260d9db0d90e84d0f8721259a -Author: Larry Smith Jr -Date: Wed Dec 5 08:39:10 2018 -0500 - - Added skip codes for ansible-lint - -commit 9f4afa7afb3fedc270c44ff1fa357da4b87845c0 -Author: Larry Smith Jr -Date: Wed Dec 5 08:00:13 2018 -0500 - - Fixing Travis testing and yamllint issues - -commit 5603c5f6b0899a1b2cdeeeb3c035eb6249e96fa7 -Author: Larry Smith Jr -Date: Wed Dec 5 07:51:31 2018 -0500 - - Added Travis testing and hooks for galaxy - -commit 563aa1effba936340cbaad9766a49f570292edee -Author: Mark Goddard -Date: Wed Oct 31 11:42:20 2018 +0000 - - Fix indentation - -commit 4a58cb36cf6d4dd4bb23e86972658be508cca082 -Author: Mark Goddard -Date: Wed Oct 31 11:16:27 2018 +0000 - - Update tasks/manage_lvm.yml - - Co-Authored-By: oneswig - -commit a0c784797f538fc5393d75589ac48e86c51e88db -Author: Stig Telfer -Date: Wed Oct 31 10:16:44 2018 +0100 - - Support not formatting volumes. - - Logic to make the filesystem attribute optional, in situations where - we do not want the volumes formatted. - -commit 66368de1d3d2b6712cbf66fc3dd0962705bf86f9 -Author: David Castellanos -Date: Mon Dec 18 00:33:45 2017 +0100 - - Add opts and mopts support - -commit 386cc28bdb58886ed492d3438c9cb088d36de161 -Author: Larry Smith Jr -Date: Sun Jun 11 14:57:53 2017 -0400 - - Addresses issue #10 - - Signed-off-by: Larry Smith Jr - -commit 0d255cb5ce9e6016a503203c2ed39a70fb0ccd9c -Author: Larry Smith Jr -Date: Fri May 5 09:12:25 2017 -0400 - - Fixes issue #8 - - Signed-off-by: Larry Smith Jr - -commit f2d06d0d46086da0191b4dbde0d420e709e3ea01 -Author: Stefan Heimberg -Date: Thu Apr 6 00:25:55 2017 +0200 - - added support for btrfs - -commit 7749d0c62a6e1539aff94c57fd2c0eeaf43dd1a0 -Author: Kevin Loveland -Date: Fri Nov 18 10:26:16 2016 -0800 - - Fixed issue with idempotency of lvol module. See ansible-module-extras issue #428 - -commit 3ad965237280d534f0aab0027f9ef61701354e8b -Author: Kevin Loveland -Date: Thu Nov 17 15:17:26 2016 -0800 - - Changes to adjust to removal of bare vars in Ansible 2.2 - -commit a82877c290cfe0b62eda90d8874b8e2b62402946 -Author: Larry Smith Jr -Date: Sun Oct 2 09:58:47 2016 -0400 - - First commit of CHANGELOG - - Signed-off-by: Larry Smith Jr - -commit 99366fa547faccb0359dd8d3b19cec802640eb95 -Author: Rohit Kothari -Date: Thu Sep 29 17:59:19 2016 -0700 - - Replace system-storage-manager with lvm2 in centos - -commit ca1535d774b4e3310fc993841f1f99400612c7a5 -Author: Olivier LOCARD -Date: Fri Sep 23 16:21:07 2016 +0200 - - Add xfs_growfs for xfs systemfile type. - -commit bb87fa8dbff5df50ed376db74a6d2b95f64fd745 -Author: Larry Smith Jr -Date: Tue Nov 3 10:39:58 2015 -0500 - - updated vars and conditionals - -commit 49b20e2e4a80581f1c53559ff4073b3384eae28c -Author: Larry Smith Jr -Date: Tue Nov 3 10:24:54 2015 -0500 - - updated when conditions - -commit 0232734bed92e976376d4c9f2550b515f72f3d54 -Author: Larry Smith Jr -Date: Tue Nov 3 10:22:09 2015 -0500 - - updated tasks to only work when lvnames is defined - -commit 9f592112095208843da1fd69a658bd49c163a7bb -Author: Larry Smith Jr -Date: Tue Nov 3 09:37:38 2015 -0500 - - updated vars and meta - -commit 686455514d8bc0da70b3440dbc5afe669188d333 -Author: Larry Smith Jr -Date: Tue Nov 3 09:22:00 2015 -0500 - - cleaned up and fixed all tasks including swap - -commit 9f5c61e25599a130e1625e879438561cc1f6a437 -Author: Larry Smith Jr -Date: Mon Nov 2 23:38:38 2015 -0500 - - added new task - -commit a5103ff6396138f531cf8457f16706b6fc90d1d1 -Author: Larry Smith Jr -Date: Mon Nov 2 23:38:23 2015 -0500 - - changing role tasks and vars - -commit c776e9f339f0bcfe987aa571d29411ac44a29526 -Author: Larry Smith Jr -Date: Mon Nov 2 21:50:07 2015 -0500 - - updated meta - -commit 46e0fd1fc2477693fc66aa4b38ac7bde19087047 -Author: Larry Smith Jr -Date: Mon Nov 2 21:23:59 2015 -0500 - - updated meta - -commit d1d99b2f17d3bc46a479af5d01a976686429b7ce -Author: Larry Smith Jr -Date: Mon Nov 2 21:23:03 2015 -0500 - - first commit diff --git a/.cache/roles/tcharl.ansible_manage_lvm/README.md b/.cache/roles/tcharl.ansible_manage_lvm/README.md deleted file mode 100644 index 9e81f9c..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# ansible-manage-lvm - -Ansible role to manage LVM Groups/Logical Volumes. - -> NOTE: Can be used to create, extend or resize LVM Groups and volumes. - -## Requirements - -Devices/disks to be members of the LVM setup **must be** identified prior to -using this role. - -## Role Variables - -[defaults/main.yml](defaults/main.yml) - -## Dependencies - -None - -## Example Playbook - -[playbook.yml](playbook.yml) - -## License - -MIT - -## Author Information - -Larry Smith Jr. - -- [@mrlesmithjr](https://twitter.com/mrlesmithjr) -- [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com) -- [http://everythingshouldbevirtual.com](http://everythingshouldbevirtual.com) diff --git a/.cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml deleted file mode 100644 index adcc5e7..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/defaults/main.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -# defaults file for ansible-manage-lvm -lvm_groups: [] -# - vgname: ubuntu-vg -# disks: -# - /dev/sda5 -# - /dev/sdc -# - /dev/sdd -# # defines if VG should exist or be removed -# # true or false -# create: true -# lvnames: -# - lvname: swap_1 -# # Define size of lvol -# # 100%FREE, 10g, 1024 (megabytes by default) -# size: 5g -# # Defines additional lvcreate options (e.g. stripes, stripesize, etc) -# opts: '' -# # Defines if lvol should exist or be removed -# # true or false -# create: true -# # Defines filesystem to format lvol as -# filesystem: swap -# # Defines if filesystem should be mounted -# mount: false -# # Defines mountpoint for lvol -# mntp: [] -# # Defines additional mount options (e.g. noatime, noexec, etc) -# mopts: '' -# - lvname: root -# size: 40g -# create: true -# filesystem: ext4 -# mount: true -# mntp: / -# - vgname: test-vg -# disks: -# - /dev/sdb -# create: true -# lvnames: -# - lvname: test_1 -# size: 5g -# create: true -# filesystem: ext4 -# mount: true -# mntp: /mnt/test_1 -# - lvname: test_2 -# size: 10g -# create: true -# filesystem: ext4 -# mount: true -# mntp: /mnt/test_2 -# - vgname: cinder-volumes -# disks: -# - /dev/cciss/c0d1 -# create: true -# lvnames: -# # Set to None to only create LVM VG w/out creating LVM LVOLS -# - None - -# Defines if LVM will be managed by role -# default is false to ensure nothing is changed by accident. -manage_lvm: false diff --git a/.cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml deleted file mode 100644 index 2027eb2..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for ansible-manage-lvm diff --git a/.cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info b/.cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info deleted file mode 100644 index 7b078c5..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/meta/.galaxy_install_info +++ /dev/null @@ -1,2 +0,0 @@ -install_date: Sat Apr 24 08:17:34 2021 -version: v0.1.16 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/meta/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/meta/main.yml deleted file mode 100644 index 6e47f1f..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/meta/main.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -galaxy_info: - author: Larry Smith Jr. - description: Ansible role to manage(create, extend, resize) LVM Groups/Logical Volumes. - - license: MIT - min_ansible_version: 1.2 - platforms: - - name: fedora - versions: - - 31 - - - name: EL - versions: - - all - - name: Fedora - versions: - - all - - name: Ubuntu - versions: - - all - - name: Debian - versions: - - all - galaxy_tags: - - system - - lvm -dependencies: [] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml deleted file mode 100644 index 119de5d..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/converge.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: Converge - hosts: all - vars: - lvm_groups: - - vgname: my_vg - disks: - - /dev/sdb1 - create: true - lvnames: - - lvname: my_lv - size: 40%VG - opts: "--wipesignatures y" - create: true - filesystem: ext4 - mount: true - mntp: "/var/lib/mountpoint" - - lvname: my_lw - 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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml deleted file mode 100644 index cc232f2..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/molecule.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -driver: - name: vagrant - provider: - name: virtualbox -lint: yamllint . && flake8 && ansible-lint -platforms: - - name: CentOS-Molecule-LVM - box: mrlesmithjr/centos7 - provider_override_args: - - "persistent_storage.enabled = true" - - "persistent_storage.location = 'centos-molecule-lvm.vdi'" - - "persistent_storage.size = 100" - - "persistent_storage.mount = false" - - "persistent_storage.diskdevice = '/dev/sdb'" - - name: Fedora-Molecule-LVM - box: mrlesmithjr/fedora31 - provider_override_args: - - "persistent_storage.enabled = true" - - "persistent_storage.location = 'fedora-molecule-lvm.vdi'" - - "persistent_storage.size = 100" - - "persistent_storage.mount = false" - - "persistent_storage.diskdevice = '/dev/sdb'" - - name: Ubuntu-Molecule-LVM - box: mrlesmithjr/bionic64 - provider_override_args: - - "persistent_storage.enabled = true" - - "persistent_storage.location = 'ubuntu-molecule-lvm.vdi'" - - "persistent_storage.size = 100" - - "persistent_storage.mount = false" - - "persistent_storage.diskdevice = '/dev/sdb'" -provisioner: - name: ansible -verifier: - name: testinfra - env: - PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning" - options: - v: 1 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py deleted file mode 100644 index 7bd2743..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/conftest.py +++ /dev/null @@ -1,21 +0,0 @@ -"""PyTest Fixtures.""" -from __future__ import absolute_import -import os -import pytest - - -def pytest_runtest_setup(item): - """Run tests only when under molecule with testinfra installed.""" - try: - import testinfra - except ImportError: - pytest.skip("Test requires testinfra", allow_module_level=True) - if "MOLECULE_INVENTORY_FILE" in os.environ: - pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - os.environ["MOLECULE_INVENTORY_FILE"] - ).get_hosts("all") - else: - pytest.skip( - "Test should run only from inside molecule.", - allow_module_level=True - ) diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py deleted file mode 100644 index 9df90df..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/default/tests/test_default.py +++ /dev/null @@ -1,33 +0,0 @@ -"""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_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): - host.file("/var/lib/mountpoint").mode == 0o731 - - -def test_volume2_is_mounted(host): - host.file("/var/lib/mountpoint2").mode == 0o731 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml deleted file mode 100644 index ab055c7..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/converge.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- 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_lw - 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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml deleted file mode 100644 index 2cc050a..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/molecule.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -driver: - name: vagrant - provider: - name: libvirt -lint: yamllint . && flake8 && ansible-lint -platforms: - - name: Fedora-Molecule-Volumes-KVM - box: fedora/33-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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests deleted file mode 120000 index 5456f39..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvm/tests +++ /dev/null @@ -1 +0,0 @@ -../default/tests \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml deleted file mode 100644 index be123c4..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/converge.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- 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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml deleted file mode 100644 index 3b8858e..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/molecule.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -driver: - name: vagrant - provider: - name: libvirt -lint: yamllint . && flake8 && ansible-lint -platforms: - - name: Fedora-Molecule-Volumes-KVM - box: fedora/33-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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py deleted file mode 120000 index add822b..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/conftest.py +++ /dev/null @@ -1 +0,0 @@ -../../default/tests/conftest.py \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py deleted file mode 100644 index b03947a..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmonlyvg/tests/test_default.py +++ /dev/null @@ -1,11 +0,0 @@ -"""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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml deleted file mode 100644 index 09d88bd..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/converge.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- 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" diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml deleted file mode 100644 index 6418d79..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/molecule.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -driver: - name: vagrant - provider: - name: libvirt -lint: yamllint . && flake8 && ansible-lint -platforms: - - name: Fedora-Molecule-Volumes-KVM - box: fedora/33-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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py deleted file mode 120000 index add822b..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/conftest.py +++ /dev/null @@ -1 +0,0 @@ -../../default/tests/conftest.py \ No newline at end of file diff --git a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py b/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py deleted file mode 100644 index ad9e53a..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/molecule/kvmsinglelv/tests/test_default.py +++ /dev/null @@ -1,22 +0,0 @@ -"""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 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/playbook.yml b/.cache/roles/tcharl.ansible_manage_lvm/playbook.yml deleted file mode 100644 index 6b69e5a..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/playbook.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -- hosts: test-nodes - vars: - lvm_groups: - - vgname: test-vg - disks: - - /dev/sdb - - /dev/sdc - create: true - lvnames: - - lvname: test_1 - size: 5g - create: true - filesystem: ext4 - mount: true - mntp: /mnt/test_1 - - lvname: test_2 - size: 10g - create: true - filesystem: ext4 - mount: true - mntp: /mnt/test_2 - manage_lvm: true - tasks: - - name: Include lvm - include_role: - name: ansible-manage-lvm diff --git a/.cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt b/.cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt deleted file mode 100644 index fad57a5..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/requirements-dev.txt +++ /dev/null @@ -1,66 +0,0 @@ -ansible==2.9.7 -ansible-lint==4.2.0 -arrow==0.15.5 -attrs==19.3.0 -bcrypt==3.1.7 -binaryornot==0.4.4 -Cerberus==1.3.2 -certifi==2020.4.5.1 -cffi==1.14.0 -chardet==3.0.4 -click==7.1.1 -click-completion==0.5.2 -click-help-colors==0.8 -colorama==0.4.3 -cookiecutter==1.7.0 -cryptography==2.9 -distro==1.5.0 -docker==4.2.0 -entrypoints==0.3 -fasteners==0.15 -flake8==3.7.9 -future==0.18.2 -idna==2.9 -importlib-metadata==1.6.0 -Jinja2==2.11.2 -jinja2-time==0.2.0 -MarkupSafe==1.1.1 -mccabe==0.6.1 -molecule==3.0.3 -molecule-vagrant==0.2 -monotonic==1.5 -more-itertools==8.2.0 -packaging==20.3 -paramiko==2.7.1 -pathspec==0.8.0 -pexpect==4.8.0 -pluggy==0.13.1 -poyo==0.5.0 -ptyprocess==0.6.0 -py==1.8.1 -pycodestyle==2.5.0 -pycparser==2.20 -pyflakes==2.1.1 -PyNaCl==1.3.0 -pyparsing==2.4.7 -pytest==5.4.1 -python-dateutil==2.8.1 -python-gilt==1.2.3 -python-vagrant==0.5.15 -PyYAML==5.3.1 -requests==2.23.0 -ruamel.yaml==0.16.10 -ruamel.yaml.clib==0.2.0 -selinux==0.2.1 -sh==1.12.14 -shellingham==1.3.2 -six==1.14.0 -tabulate==0.8.7 -testinfra==5.0.0 -tree-format==0.1.2 -urllib3==1.25.9 -wcwidth==0.1.9 -websocket-client==0.57.0 -whichcraft==0.6.1 -yamllint==1.23.0 -zipp==3.1.0 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/requirements.txt b/.cache/roles/tcharl.ansible_manage_lvm/requirements.txt deleted file mode 100644 index 48c9c43..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -ansible-lint==4.2.0 -docker==4.2.0 -flake8==3.7.9 -molecule-vagrant==0.2 -molecule==3.0.3 -testinfra==5.0.0 -yamllint==1.23.0 diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml deleted file mode 100644 index 7a5cb94..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/centos.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -- name: centos | installing lvm2 - package: - name: lvm2 - state: present - become: true - -- name: centos | installing sg3_utils - package: - name: sg3_utils - state: present - 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 - package: - name: "xfsprogs" - state: "present" - become: true - loop: "{{ lookup('subelements', lvm_groups, 'lvnames', {'skip_missing': True}, wantlist=True) }}" - loop_control: - loop_var: lv - when: - - lv.1 is defined - - lv.1 != "None" - - lv.1.filesystem is defined - - lv.1.filesystem == "xfs" - - lv.1.create is defined - - lv.1.create|bool - -- name: centos | checking for scsi devices - command: sg_scan - become: true - register: scsi_devices - changed_when: false - -- name: centos | rescanning for new disks - command: /usr/bin/rescan-scsi-bus.sh - become: true - changed_when: false diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml deleted file mode 100644 index 0e842f9..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_fs.yml +++ /dev/null @@ -1,96 +0,0 @@ ---- - -# unable to resize xfs: looks like we've to reference the mountpoint instead of the device -- name: create_fs | check already converted - # at least xfs is executed twice if the partition has changed in the meantime - # then it tries to recreate the fs on the mounted fs which indeed fails... - shell: "xfs_info {{ lv.mntp }} | grep -c 'ftype=1'" - become: yes - register: mountedxfs - ignore_errors: true - changed_when: false - when: - - lv is defined and lv != 'None' - - lv.filesystem is defined - - lv.filesystem == "xfs" - - lv.create is defined - - lv.create|bool - -- name: create_fs | unmounting filesystem(s) - mount: - path: "{{ lv.mntp }}" - src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" - fstype: "{{ lv.filesystem | default(omit) }}" - state: absent - become: true - when: - - lv is defined - - lv != 'None' - - lv.create is defined - - not lv.create|bool - - lv.filesystem != "swap" - -- name: create_fs | creating new filesystem on new LVM logical volume(s) - filesystem: - fstype: "{{ lv.filesystem }}" - dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" - resizefs: yes - become: true - when: - - vg.create is defined - - vg.create|bool - - lv is defined - - lv != 'None' - - lv.create is defined - - lv.create|bool - - lv.filesystem is defined - - lv.filesystem != 'None' - - lv.filesystem != 'xfs' - -- name: create_fs | creating new xfs filesystem on new LVM logical volume(s) - filesystem: - fstype: "{{ lv.filesystem }}" - dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" - become: true - when: - - mountedxfs is failed - - vg.create is defined - - vg.create|bool - - lv is defined - - lv != 'None' - - lv.create is defined - - lv.create|bool - - lv.filesystem is defined - - lv.filesystem == 'xfs' - -- name: create_fs | mounting new filesystem(s) - mount: - path: "{{ lv.mntp }}" - src: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" - fstype: "{{ lv.filesystem }}" - state: mounted - opts: "{{ lv.mopts | default('defaults') }}" - become: true - when: - - vg.create is defined - - vg.create|bool - - lv is defined - - lv != 'None' - - lv.create is defined - - lv.create|bool - - lv.mount is defined - - lv.mount|bool - -- name: create_fs | resizing xfs filesystem on new LVM logical volume(s) - command: "xfs_growfs {{ lv.mntp }}" - become: true - when: - - vg.create is defined - - vg.create|bool - - lv is defined - - lv != 'None' - - lv.create is defined - - lv.create|bool - - lv.filesystem is defined - - lv.filesystem == 'xfs' - - lvchanged.changed diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml deleted file mode 100644 index ee2e7ca..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_lv.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- - -- name: create_lv | Display Volume Group - debug: - var: vg - verbosity: 2 - -- name: create_lv | creating new LVM logical volume(s) - lvol: - vg: "{{ vg.vgname }}" - lv: "{{ lv.lvname }}" - size: "{{ lv.size }}" - shrink: false - opts: "{{ lv.opts | default('') }}" - state: present - become: true - register: lvchanged - when: - - vg.create is defined - - vg.create|bool - - lv is defined - - lv != 'None' - - lv.create is defined - - lv.create|bool - -- name: create_lv | debug changed attribute - debug: - var: lvchanged - -- name: create_lv | configuring FS - include_tasks: create_fs.yml diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml deleted file mode 100644 index 6810efd..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/create_vg.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- -- name: create_vg | creating new LVM volume group(s) - lvg: - vg: "{{ vg.vgname }}" - pvs: "{{ vg.disks | join(',') }}" - state: present - become: true - when: - - vg.create is defined - - vg.create|bool - -- name: manage_lvm | loop over logical volume group(s) to create logical volumes - include_tasks: create_lv.yml - loop: "{{ vg.lvnames | default([]) }}" - loop_control: - loop_var: lv diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml deleted file mode 100644 index 05fe1cb..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/debian.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -- name: debian | Updating Apt Cache - apt: - update_cache: true - cache_valid_time: 3600 - become: true - -- name: debian | installing pre-reqs - apt: - name: - - lvm2 - - scsitools - state: present - become: true - -- name: debian | install xfs tools - apt: - name: xfsprogs - state: present - become: true - loop: "{{ lvm_groups|subelements('lvnames') }}" - when: - - item.1 is defined - - item.1 != 'None' - - item.1.filesystem is defined - - item.1.filesystem == "xfs" - - item.1.create is defined - - item.1.create|bool - -- name: debian | checking for scsi devices - command: sg_scan - become: true - register: scsi_devices - changed_when: false - -- name: debian | rescanning for new disks added - command: /sbin/rescan-scsi-bus - become: true - changed_when: false - when: scsi_devices['stdout'] | length diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml deleted file mode 100644 index 5aaed04..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/main.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# tasks file for ansible-manage-lvm -- include_tasks: debian.yml - when: ansible_os_family == "Debian" - -- include_tasks: centos.yml - when: ansible_os_family == "RedHat" - -- include_tasks: manage_lvm.yml - when: - - lvm_groups is defined - - manage_lvm|bool diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml b/.cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml deleted file mode 100644 index 04b6d26..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tasks/manage_lvm.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: manage_lvm | manage physical volume group creation - include_tasks: create_vg.yml - loop: "{{ lvm_groups }}" - loop_control: - loop_var: vg - -- name: manage_lvm | Removing LVM logical volume(s) - lvol: - vg: "{{ item.0.vgname }}" - lv: "{{ item.1.lvname }}" - state: absent - force: true - become: true - loop: "{{ lvm_groups|subelements('lvnames', {'skip_missing': true}) }}" - when: - - item.1 is defined - - item.1 != 'None' - - item.1.create is defined - - not item.1.create|bool - -- name: manage_lvm | Removing LVM volume group(s) - lvg: - vg: "{{ item.vgname }}" - pvs: "{{ item.disks | join(',') }}" - state: absent - become: true - loop: "{{ lvm_groups }}" - when: - - item.create is defined - - not item.create|bool diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint b/.cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint deleted file mode 100644 index 9c1ce1b..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/.ansible-lint +++ /dev/null @@ -1 +0,0 @@ -skip_list: ['305','503','602'] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 deleted file mode 100644 index 1ad757e..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.centos-7 +++ /dev/null @@ -1,27 +0,0 @@ -FROM centos:7 -ENV container=docker - -RUN yum -y install epel-release && \ - yum -y install gmp-devel libffi-devel openssl-devel python-crypto \ - python-devel python-pip python-setuptools python-virtualenv \ - redhat-rpm-config && \ - yum -y group install "Development Tools" - -# Install systemd -- See https://hub.docker.com/_/centos/ -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ - rm -f /lib/systemd/system/multi-user.target.wants/*;\ - rm -f /etc/systemd/system/*.wants/*;\ - rm -f /lib/systemd/system/local-fs.target.wants/*; \ - rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ - rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ - rm -f /lib/systemd/system/basic.target.wants/*;\ - rm -f /lib/systemd/system/anaconda.target.wants/*; - -RUN pip install enum34 ipaddress wheel && \ - pip install ansible ansible-lint - -COPY .ansible-lint / - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch deleted file mode 100644 index c1187b8..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.debian-stretch +++ /dev/null @@ -1,13 +0,0 @@ -FROM debian:stretch -ENV container=docker - -RUN apt-get update && \ - apt-get install -y --no-install-recommends build-essential libffi-dev \ - libssl-dev python-dev python-minimal python-pip python-setuptools \ - python-virtualenv systemd && \ - rm -rf /var/lib/apt/lists/* - -RUN pip install enum34 ipaddress wheel && \ - pip install ansible ansible-lint - -COPY .ansible-lint / diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 deleted file mode 100644 index 16fa871..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-25 +++ /dev/null @@ -1,26 +0,0 @@ -FROM fedora:25 -ENV container=docker - -RUN dnf -y install gmp-devel libffi-devel openssl-devel python-crypto \ - python-devel python-dnf python-pip python-setuptools python-virtualenv \ - redhat-rpm-config systemd && \ - dnf -y group install "C Development Tools and Libraries" - -# Install systemd -- See https://hub.docker.com/_/centos/ -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ - rm -f /lib/systemd/system/multi-user.target.wants/*;\ - rm -f /etc/systemd/system/*.wants/*;\ - rm -f /lib/systemd/system/local-fs.target.wants/*; \ - rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ - rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ - rm -f /lib/systemd/system/basic.target.wants/*;\ - rm -f /lib/systemd/system/anaconda.target.wants/*; - -RUN pip install enum34 ipaddress wheel && \ - pip install ansible ansible-lint - -COPY .ansible-lint / - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 deleted file mode 100644 index dd8a954..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.fedora-26 +++ /dev/null @@ -1,26 +0,0 @@ -FROM fedora:26 -ENV container=docker - -RUN dnf -y install gmp-devel libffi-devel openssl-devel python-crypto \ - python-devel python-dnf python-pip python-setuptools python-virtualenv \ - redhat-rpm-config systemd && \ - dnf -y group install "C Development Tools and Libraries" - -# Install systemd -- See https://hub.docker.com/_/centos/ -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ - rm -f /lib/systemd/system/multi-user.target.wants/*;\ - rm -f /etc/systemd/system/*.wants/*;\ - rm -f /lib/systemd/system/local-fs.target.wants/*; \ - rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ - rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ - rm -f /lib/systemd/system/basic.target.wants/*;\ - rm -f /lib/systemd/system/anaconda.target.wants/*; - -RUN pip install enum34 ipaddress wheel && \ - pip install ansible ansible-lint - -COPY .ansible-lint / - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic deleted file mode 100644 index 07116b6..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-bionic +++ /dev/null @@ -1,13 +0,0 @@ -FROM ubuntu:bionic -ENV container=docker - -RUN apt-get update && \ - apt-get install -y --no-install-recommends build-essential libffi-dev \ - libssl-dev python-dev python-minimal python-pip python-setuptools \ - python-virtualenv systemd && \ - rm -rf /var/lib/apt/lists/* - -RUN pip install enum34 ipaddress wheel && \ - pip install ansible ansible-lint - -COPY .ansible-lint / diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial b/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial deleted file mode 100644 index 188f255..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/Dockerfile.ubuntu-xenial +++ /dev/null @@ -1,13 +0,0 @@ -FROM ubuntu:xenial -ENV container=docker - -RUN apt-get update && \ - apt-get install -y --no-install-recommends build-essential libffi-dev \ - libssl-dev python-dev python-minimal python-pip python-setuptools \ - python-virtualenv && \ - rm -rf /var/lib/apt/lists/* - -RUN pip install enum34 ipaddress wheel && \ - pip install ansible ansible-lint - -COPY .ansible-lint / diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/inventory b/.cache/roles/tcharl.ansible_manage_lvm/tests/inventory deleted file mode 100644 index 2fbb50c..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/inventory +++ /dev/null @@ -1 +0,0 @@ -localhost diff --git a/.cache/roles/tcharl.ansible_manage_lvm/tests/test.yml b/.cache/roles/tcharl.ansible_manage_lvm/tests/test.yml deleted file mode 100644 index 2ac7e23..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - connection: local - roles: - - ansible-manage-lvm diff --git a/.cache/roles/tcharl.ansible_manage_lvm/vars/main.yml b/.cache/roles/tcharl.ansible_manage_lvm/vars/main.yml deleted file mode 100644 index 8d13a1b..0000000 --- a/.cache/roles/tcharl.ansible_manage_lvm/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for ansible-manage-lvm diff --git a/.gitignore b/.gitignore index ddf3fc8..42d386b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea +.cache __pychache__ \ No newline at end of file diff --git a/README.md b/README.md index ae030f0..3e9d1ec 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,9 @@ should be a dict containing the following items: - `name` The name of the network. - `mode` The forwarding mode of the network, `bridge`, `route` and `nat` are supported. + - `bridge` The name of the bridge interface for this network. +- `zone` the firewalld zone for the bridge (defaults to public) - `ip` IP address of the virtual bridge, mandatory for `route` and `nat` mode. - `netmask` Netmask of the virtual bridge, mandatory for `route` and `nat` mode. - `domain` DNS domain name for `route` and `nat` mode, default to the network diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 93fd644..d810c93 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -21,7 +21,11 @@ libvirt_host_networks: - name: ansible-virtualization-bridge mode: bridge - bridge: bridge0 + bridge: vibr0 + ip: 192.168.1.1 + netmask: 255.255.255.0 + dhcp_start: 192.168.1.100 + dhcp_end: 192.168.1.200 tasks: - name: "Include ansible-role-libvirt-host" include_role: @@ -58,6 +62,6 @@ - name: Wait until the string "auth" is in the vagrant log wait_for: - path: /home/vagrant/myvmerr.log - search_regex: SSH\sis\sready + path: /home/vagrant/myvm.log + search_regex: SSH\sto\sbecome\savailable timeout: 1000 \ No newline at end of file diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 1710252..81b26e9 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -8,15 +8,19 @@ driver: name: vagrant provider: name: virtualbox - -lint: yamllint . && flake8 && ansible-lint --exclude=meta +lint: yamllint . && flake8 && ansible-lint --exclude=meta,.cache platforms: - name: Fedora-Molecule-libvirt-host box: fedora/33-cloud-base - memory: 8000 - cpus: 4 + provider_options: + cpus: 4 + memory: 8092 provider_raw_config_args: - "customize ['modifyvm', :id, '--nested-hw-virt', 'on']" + - "customize ['storagectl', :id, '--name', 'IDE', '--hostiocache', 'on']" + instance_raw_config_args: + - "cache.enable :dnf" + - "cache.auto_detect = false" provider_override_args: - "persistent_storage.enabled = true" - "persistent_storage.location = 'molecule-libvirt-host.vdi'" diff --git a/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-6.2.3.pyc b/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-6.2.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c3e014a0f252f856bbb77ea8c0d37ce8e2ecccc GIT binary patch literal 1001 zcmYk5&2Q5%6u@maZPTt}15KJHafrATv1ZzNLPJw0O&Z;_FSJ~&w03EV6BpZAX$3b9 zT(}_qfbGb?yPQ@C!YHjq{@hcGYK5mB)tSf2pHZ~JO6RCqnXaEsF1R+q zVe-M`itE-dh>n`ruEkv~MQ%7v(veiA)5Fd)9}dQcc>q%nKujA24*G=Ope*o^!IKvl zATTmySYjoY_A7v1qm1kzRx#eNe1p{0M?9S!D~|;oBOk-eE&%J$qD~^%rLu z0p!|r?<~&(1JF8>2^9T*=LJ;$1a`_XO(la!RPY-vqRrPQ$L)j5<2F6&T(vtFCui66@aVX0OR#zR zyoja;G8ZgRKv!_}l}ugcgz+UHVHdWqqwDnt1{kXnP+ zpD*F1=1PaXL99f=Q>j>-nead|9-hlw^|%gCMQr*~rQvA4*xudQ-3jL)p@N3%P-?xf zY&*-gNV))SwjE5k_$VRc{WupUbZn4SW_`D6jV5+uR=TUpnW*L_A60=-KLvpZ!3}se za2@;D|LYNQ?|U95nB1$!;BPi;l~N{ql-fF_{oGw;N|n2%*6-$tfPQP+*dI;kQrn`l zq^(#(7fd3vmf~XtU9z>M$yOJ(Ivg(8Vx?*jS2?^Qd(q4XV!g<^H@iPC-F?&USMi{N IXV@?O1GPjcJ^%m! literal 0 HcmV?d00001 diff --git a/molecule/default/tests/__pycache__/test_default.cpython-39-pytest-6.2.3.pyc b/molecule/default/tests/__pycache__/test_default.cpython-39-pytest-6.2.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9809178c4eca434b461a12f15c5e1a5aa59420a4 GIT binary patch literal 3231 zcmd^BOOG2x5bmBCKlhP@4PlXhv^I$ngKY1EWupX8P=v%OLRmq;Suxu?-Cj?aht=I< z@M2#G#|Unma#%}T{0I02{ECq{apEuJ0#$7-h2!Fg^oaf(Y^8xSqH5o^f|fYYjy*l-S$yhVBEus7;Gh^%&`YKat(8G( zL?6@dsURL1x{wP)PZ0Rc%Dto80XHn}_u@vB9}%P-p3{vn&7CkA)1$_<8{Pg!O|vjzsBYJE^}DIUKCq^(nr>(#(#%wc zxf{e{?6zDOgkmcPvHfhBYb}+r-FIpljXUFN?y4-wi<7Z=^-i~s82DV}7yN)nkq>)T zK^k|tl6l3~ye-j^FG5fMAPXbFQ0K)ch0Z!(^>ruBB4J1Qhf#XKBR}D>%$Gm1tA}aw zu~MnZSNwLWVs3o-Z8zcxH_$RJ=Uyk(CNIH)F;9dl0?MrgTxzoU^?auC?rh8Eq-8Sc zd$X0BW1`-Gd7eFKeg+4in?Z-GD3o!k1W!!!ZYpGRH_cQab@S7R8=RvFo3cuMbA5BY z$rBwOM6#*Cadk7*`ovO4OFaq?dZ99P+vidkdl;(0tky(uTaPYs)7RPOf8_egaWaih&MsYFI#^;<(#KW;po|8 zz6|x}jv1-P(#~(7oY2mQ{PYVYKtObkfSfr3`q{Y0-g5-x9v7wrR6H(O0@{auWlKPh zKr5hT2?+HU5l{tsR!<|K2f*7Ne2-m9lJgrx|GEyGjo+7$Pw43(_^j@*Zkk5m!P>BT z9Ri*Wsti()L0zyl`08!84Okf-My#H&cebF?kzCly#vF=Y@xX*VdG#!ijTdrHXChUL zaHeVr#WIR>D9)p}fZ`PtD=03acooHIIA63laaKY9H% zCXX$6ku{Y3Mui4me*c*A($qF#YkZX`yfZDcDvVi${-AKJnY-BD%JxDozaOUp-bWwe Q+g>C2d+u7XTrAu4H%|)~hyVZp literal 0 HcmV?d00001 diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py index 902d821..7e8043e 100644 --- a/molecule/default/tests/test_default.py +++ b/molecule/default/tests/test_default.py @@ -14,28 +14,32 @@ def test_vagrant_machine_is_running(host): def test_pool_is_started(host): - command = r""" sudo virsh pool-list --all | + command = r"""virsh pool-list --all | cut -d " " -f 5 | tail -n +3 | head -n +1 | egrep -c '^active$'""" - cmd = host.run(command) - assert '1' in cmd.stdout + with host.sudo(): + cmd = host.run(command) + assert '1' in cmd.stdout def test_pool_is_autostarted(host): - command = r""" sudo virsh pool-list --all | + command = r"""virsh pool-list --all | cut -d " " -f 8 | tail -n +3 | head -n +1 | egrep -c '^yes$'""" - cmd = host.run(command) - assert '1' in cmd.stdout + with host.sudo(): + cmd = host.run(command) + assert '1' in cmd.stdout def test_net_is_started(host): - command = r""" sudo virsh net-list --all | + command = r""" virsh net-list --all | cut -d " " -f 5 | tail -n +3 | head -n +1 | egrep -c '^active$'""" - cmd = host.run(command) - assert '1' in cmd.stdout + with host.sudo(): + cmd = host.run(command) + assert '1' in cmd.stdout def test_net_is_autostarted(host): - command = r""" sudo virsh net-list --all | + command = r"""virsh net-list --all | cut -d " " -f 8 | tail -n +3 | head -n +1 | egrep -c '^yes$'""" - cmd = host.run(command) - assert '1' in cmd.stdout + with host.sudo(): + cmd = host.run(command) + assert '1' in cmd.stdout diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index b0229ca..ac39cff 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -58,6 +58,6 @@ - name: Wait until the string "auth" is in the vagrant log wait_for: - path: /home/vagrant/myvmerr.log - search_regex: SSH\sis\sready + path: /home/vagrant/myvm.log + search_regex: SSH\sto\sbecome\savailable timeout: 1000 \ No newline at end of file diff --git a/tasks/rbd.yml b/tasks/rbd.yml index f14fbca..5bdc7d5 100644 --- a/tasks/rbd.yml +++ b/tasks/rbd.yml @@ -14,14 +14,17 @@ - name: Send Ceph secret template: + mode: 0640 src: ceph_secret.xml.j2 dest: "{{ secret_tempfile.path }}" - name: Define Ceph secret command: "virsh secret-define {{ secret_tempfile.path }}" + changed_when: false - name: Set Ceph secret value command: "virsh secret-set-value {{ item.name | to_uuid }} {{ item.passphrase }}" + changed_when: false - name: Delete temporary file file: @@ -30,5 +33,3 @@ - name: Flush handlers meta: flush_handlers - - diff --git a/templates/network.xml.j2 b/templates/network.xml.j2 index 9f5237b..4b5d337 100644 --- a/templates/network.xml.j2 +++ b/templates/network.xml.j2 @@ -1,8 +1,8 @@ {{ item.name }} - {% if item.mode is defined %}{% endif %} - -{% if item.mode is not defined or item.mode in ['route', 'nat'] %} + + + {% if item.mode == 'route' or item.mode == 'nat' %} {% if item.dhcp_start is defined and item.dhcp_end is defined %} From 9c87165bac7760792fd15be17df7928299b88fbf Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 2 May 2021 20:34:39 +0200 Subject: [PATCH 06/42] update tests --- molecule/default/converge.yml | 6 +++--- molecule/kvm/converge.yml | 6 +++--- molecule/kvm/molecule.yml | 8 +++----- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index d810c93..d690a1d 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -62,6 +62,6 @@ - name: Wait until the string "auth" is in the vagrant log wait_for: - path: /home/vagrant/myvm.log - search_regex: SSH\sto\sbecome\savailable - timeout: 1000 \ No newline at end of file + path: /home/vagrant/myvmerr.log + search_regex: SSH\sis\sready + timeout: 1800 \ No newline at end of file diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index ac39cff..3b7c483 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -58,6 +58,6 @@ - name: Wait until the string "auth" is in the vagrant log wait_for: - path: /home/vagrant/myvm.log - search_regex: SSH\sto\sbecome\savailable - timeout: 1000 \ No newline at end of file + path: /home/vagrant/myvmerr.log + search_regex: SSH\sis\sready + timeout: 1800 \ No newline at end of file diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index a6ee132..8f30d2d 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -1,9 +1,4 @@ --- -dependency: - name: galaxy - options: - role-file: requirements.yml - roles-path: ../community driver: name: vagrant provider: @@ -18,6 +13,9 @@ platforms: memory: 2048 provider_raw_config_args: - "storage :file, :size => '1G', :device => 'vdb'" + instance_raw_config_args: + - "cache.enable :dnf" + - "cache.auto_detect = false" provisioner: name: ansible config_options: From 8259ff43faa466363781bbeba5e3e3c891d0fd08 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 2 May 2021 20:41:31 +0200 Subject: [PATCH 07/42] update tests --- molecule/kvm/molecule.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 8f30d2d..3768e40 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -13,9 +13,6 @@ platforms: memory: 2048 provider_raw_config_args: - "storage :file, :size => '1G', :device => 'vdb'" - instance_raw_config_args: - - "cache.enable :dnf" - - "cache.auto_detect = false" provisioner: name: ansible config_options: From f193f93c42bb64b435a0b9ba89f8baa0dc39419b Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 2 May 2021 23:41:12 +0200 Subject: [PATCH 08/42] removed one test --- molecule/default/Vagrantfile | 2 +- molecule/default/converge.yml | 9 ++++++++- molecule/default/tests/test_default.py | 6 ------ molecule/kvm/converge.yml | 9 ++++++++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/molecule/default/Vagrantfile b/molecule/default/Vagrantfile index c64c8b5..8753450 100644 --- a/molecule/default/Vagrantfile +++ b/molecule/default/Vagrantfile @@ -1,6 +1,6 @@ Vagrant.configure(2) do |config| config.vm.provider :libvirt do |libvirt| - libvirt.memory = "512" + libvirt.memory = "1024" libvirt.cpus = 1 libvirt.driver = "kvm" libvirt.graphics_type = 'none' diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index d690a1d..0a38eb1 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -35,6 +35,7 @@ package: name: - qemu + - libvirt - ruby-devel - gcc - qemu-kvm @@ -46,6 +47,12 @@ state: present become: true + - name: Start libvirtd + service: + name: libvirtd + state: started + become: true + - name: Copy vagrant file copy: src: Vagrantfile @@ -56,7 +63,7 @@ - name: Execute Vagrant as daemon command: - cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant /usr/bin/vagrant up --provider=libvirt" + cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant -E VAGRANT_LOG=info /usr/bin/vagrant up --provider=libvirt" chdir: /home/vagrant creates: /home/vagrant/myvm.log diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py index 7e8043e..cee9632 100644 --- a/molecule/default/tests/test_default.py +++ b/molecule/default/tests/test_default.py @@ -1,12 +1,6 @@ """Role testing files using testinfra.""" -def test_vagrant_machine_is_fully_up(host): - command = """cat myvm.log | grep -c 'myvm: SSH auth method: private key'""" - cmd = host.run(command) - assert '1' in cmd.stdout - - def test_vagrant_machine_is_running(host): command = r"""vagrant status | egrep -c 'myvm\s*running\s\(libvirt\)'""" cmd = host.run(command) diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index 3b7c483..73bcecf 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -31,6 +31,7 @@ package: name: - qemu + - libvirt - ruby-devel - gcc - qemu-kvm @@ -42,6 +43,12 @@ state: present become: true + - name: Start libvirtd + service: + name: libvirtd + state: started + become: true + - name: Copy vagrant file copy: src: Vagrantfile @@ -52,7 +59,7 @@ - name: Execute Vagrant as daemon command: - cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant /usr/bin/vagrant up --provider=libvirt" + cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant -E VAGRANT_LOG=info /usr/bin/vagrant up --provider=libvirt" chdir: /home/vagrant creates: /home/vagrant/myvm.log From 762bfa100f560deda9a1c200b6fc307c6cb8f08d Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Tue, 4 May 2021 11:05:28 +0200 Subject: [PATCH 09/42] [skip travis] resync with upstream --- meta/main.yml | 7 +++--- molecule/default/molecule.yml | 20 ++++++++++++++++-- .../test_default.cpython-39-pytest-6.2.3.pyc | Bin 3231 -> 2852 bytes 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/meta/main.yml b/meta/main.yml index 583e3fa..e5dd8ab 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,10 +1,11 @@ --- galaxy_info: - #role_name: libvirt_host - author: Mark Goddard + namespace: OsgiliathEnterprise + role_name: ansible_role_libvirt_host + author: Charlie Mordant on top of Mark Goddard's work description: > Role to install and configure a host as a Libvirt/KVM hypervisor - company: StackHPC Ltd + company: Osgiliath Inc on top of StackHPC Ltd achievements (Thanks! I'll PR it) license: Apache2 min_ansible_version: 2.0 platforms: diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 81b26e9..80d630d 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -11,13 +11,13 @@ driver: lint: yamllint . && flake8 && ansible-lint --exclude=meta,.cache platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/33-cloud-base + box: tcharl/fedora-33-cgroupv1 provider_options: cpus: 4 memory: 8092 provider_raw_config_args: - "customize ['modifyvm', :id, '--nested-hw-virt', 'on']" - - "customize ['storagectl', :id, '--name', 'IDE', '--hostiocache', 'on']" + - "customize ['storagectl', :id, '--name', 'IDE Controller', '--hostiocache', 'on']" instance_raw_config_args: - "cache.enable :dnf" - "cache.auto_detect = false" @@ -37,3 +37,19 @@ verifier: PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning" options: v: 1 +scenario: + name: default + test_sequence: + - lint + - dependency + - cleanup + - destroy + - syntax + - create + - prepare + - converge + # - idempotence + - side_effect + - verify + - cleanup + - destroy diff --git a/molecule/default/tests/__pycache__/test_default.cpython-39-pytest-6.2.3.pyc b/molecule/default/tests/__pycache__/test_default.cpython-39-pytest-6.2.3.pyc index 9809178c4eca434b461a12f15c5e1a5aa59420a4..60f659a8caff69da9a13808b1f6ac48cf3d226be 100644 GIT binary patch delta 420 zcmbO)xkQXFk(ZZ?0SHoM`V(4MCi2NJdQH^!Vr2?u(Bz%i^m1}Fi^b&SjA@LTllhpQ zGfGeX#x!a22NnfE7NDMDHjqw67Dg_{BH7J~tc8p$+(3cJ6WNT-rGbnhFd+kE-4ZED zEiQ>K$j{G-&n%8FE=epZNlgJ+T+9I^fMzgpflN`DtjPLu@=NwwQ8}P!ktm2jGHG%( zhpey=P!Ls@B2d?>$x}J&^|0y!s=p-+wm&bm1j%}-$?w>HPqyW*!C~1sZW&!A49k>( zBAPt6*yH0<@{{A^Z*e4*X6BS+<`owSOcv)c_TvT07s-MM1rVVKB0#1Tfixm{1`#$K ZHo5sJr8%i~j6fB|pg>_^R$}7-0|2+5RWJYm delta 540 zcmZ1?HeZr2k(ZZ?0SNxz?Mtv`oyaG{7&KAaiy5X&_zsKAU7$44OZZ2a8Lk>V(0>j-4ZTIEiQ@A zOD&1dERHWONh~T!O#vxJHArRi1CCTi9Ck->$>?feXi)` Date: Tue, 4 May 2021 11:05:51 +0200 Subject: [PATCH 10/42] [skip travis] resync with upstream --- molecule/kvm/molecule.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 3768e40..7a59120 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -31,3 +31,17 @@ verifier: v: 1 scenario: name: kvm + test_sequence: + - lint + - dependency + - cleanup + - destroy + - syntax + - create + - prepare + - converge + # - idempotence + - side_effect + - verify + - cleanup + - destroy From e0b5824c72a4b70b84c6a05138fc990d2aaa5c13 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Thu, 6 May 2021 22:48:00 +0200 Subject: [PATCH 11/42] [travis skip] idempotence --- .github/workflows/molecule.yml | 2 +- molecule/default/molecule.yml | 16 ---------------- molecule/kvm/molecule.yml | 14 -------------- tasks/networks.yml | 1 + tasks/pools.yml | 1 + templates/network.xml.j2 | 2 +- 6 files changed, 4 insertions(+), 32 deletions(-) diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index a95f5dd..d4b19ec 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -26,7 +26,7 @@ jobs: - name: install lint prerequisite run: | sudo apt-get update - sudo apt -y install python3-setuptools ansible-lint vagrant + sudo apt -y install python3-setuptools vagrant - name: Install molecule run: | diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 80d630d..5423369 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -37,19 +37,3 @@ verifier: PYTHONWARNINGS: "ignore:.*U.*mode is deprecated:DeprecationWarning" options: v: 1 -scenario: - name: default - test_sequence: - - lint - - dependency - - cleanup - - destroy - - syntax - - create - - prepare - - converge - # - idempotence - - side_effect - - verify - - cleanup - - destroy diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 7a59120..3768e40 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -31,17 +31,3 @@ verifier: v: 1 scenario: name: kvm - test_sequence: - - lint - - dependency - - cleanup - - destroy - - syntax - - create - - prepare - - converge - # - idempotence - - side_effect - - verify - - cleanup - - destroy diff --git a/tasks/networks.yml b/tasks/networks.yml index 5b90382..a7aeb99 100644 --- a/tasks/networks.yml +++ b/tasks/networks.yml @@ -22,4 +22,5 @@ state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" with_items: "{{ libvirt_host_networks }}" + changed_when: false become: True diff --git a/tasks/pools.yml b/tasks/pools.yml index 142ece0..69a887a 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -62,6 +62,7 @@ state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" loop: "{{ libvirt_host_pools | flatten(levels=1) }}" + changed_when: false become: True - name: Ensure libvirt storage pools are started on boot diff --git a/templates/network.xml.j2 b/templates/network.xml.j2 index 4b5d337..49ef951 100644 --- a/templates/network.xml.j2 +++ b/templates/network.xml.j2 @@ -1,7 +1,7 @@ {{ item.name }} - + {% if item.mode == 'route' or item.mode == 'nat' %} From 9ca9afd974a1ccccee959d39f7c074b4ba43ab5d Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Thu, 6 May 2021 22:56:57 +0200 Subject: [PATCH 12/42] [travis skip] idempotence --- .github/workflows/molecule.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index d4b19ec..6fdbb52 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -32,8 +32,8 @@ jobs: run: | sudo apt update sudo apt -y install python3-setuptools python3 python3-pip - sudo pip3 install wheel - sudo pip3 install molecule testinfra yamllint ansible-lint flake8 molecule-vagrant + pip3 install wheel + pip3 install ansible molecule testinfra yamllint ansible-lint flake8 molecule-vagrant - name: molecule lint run: | From b8c8e170e634f951fe3e72b82ccc169b1a2bc938 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 29 Aug 2021 13:27:43 +0200 Subject: [PATCH 13/42] update gitignore Signed-off-by: Charlie Mordant --- molecule/default/converge.yml | 2 +- molecule/default/molecule.yml | 5 +---- requirements.yml | 3 +-- templates/network.xml.j2 | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 0a38eb1..d04f9d2 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -21,7 +21,7 @@ libvirt_host_networks: - name: ansible-virtualization-bridge mode: bridge - bridge: vibr0 + bridge: virbr0 ip: 192.168.1.1 netmask: 255.255.255.0 dhcp_start: 192.168.1.100 diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 5423369..8997aa7 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -18,9 +18,6 @@ platforms: provider_raw_config_args: - "customize ['modifyvm', :id, '--nested-hw-virt', 'on']" - "customize ['storagectl', :id, '--name', 'IDE Controller', '--hostiocache', 'on']" - instance_raw_config_args: - - "cache.enable :dnf" - - "cache.auto_detect = false" provider_override_args: - "persistent_storage.enabled = true" - "persistent_storage.location = 'molecule-libvirt-host.vdi'" @@ -30,7 +27,7 @@ platforms: provisioner: name: ansible env: - ANSIBLE_ROLES_PATH: ../../..:../../../community + ANSIBLE_ROLES_PATH: ${ANSIBLE_ROLES_PATH}:../../../community verifier: name: testinfra env: diff --git a/requirements.yml b/requirements.yml index bb31ec7..ad46118 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,6 +1,5 @@ --- roles: # Install a role from Ansible Galaxy. - - name: tcharl.ansible_manage_lvm + - name: mrlesmithjr.manage-lvm source: https://galaxy.ansible.com - path: ../community diff --git a/templates/network.xml.j2 b/templates/network.xml.j2 index 49ef951..a8aba35 100644 --- a/templates/network.xml.j2 +++ b/templates/network.xml.j2 @@ -1,7 +1,7 @@ {{ item.name }} - + {% if item.mode == 'route' or item.mode == 'nat' %} From d8a50af2a143606448417be07c8c54ca1871f4f1 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Mon, 11 Oct 2021 10:49:50 +0200 Subject: [PATCH 14/42] [skip ci] cleanup role --- meta/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/main.yml b/meta/main.yml index e5dd8ab..bcbe178 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,6 +1,6 @@ --- galaxy_info: - namespace: OsgiliathEnterprise + namespace: tcharl role_name: ansible_role_libvirt_host author: Charlie Mordant on top of Mark Goddard's work description: > From 939ccc3a93524971794c93c9e136d5574f0c106f Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Mon, 11 Oct 2021 10:56:26 +0200 Subject: [PATCH 15/42] [skip ci] cleanup role --- tasks/networks.yml | 1 - tasks/pools.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/tasks/networks.yml b/tasks/networks.yml index a7aeb99..5b90382 100644 --- a/tasks/networks.yml +++ b/tasks/networks.yml @@ -22,5 +22,4 @@ state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" with_items: "{{ libvirt_host_networks }}" - changed_when: false become: True diff --git a/tasks/pools.yml b/tasks/pools.yml index 69a887a..142ece0 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -62,7 +62,6 @@ state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" loop: "{{ libvirt_host_pools | flatten(levels=1) }}" - changed_when: false become: True - name: Ensure libvirt storage pools are started on boot From 7cb166676b7d8a251cc43bff81c34a0e5bb18cab Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Mon, 11 Oct 2021 11:08:15 +0200 Subject: [PATCH 16/42] [skip ci] cleanup role --- molecule/default/molecule.yml | 14 +++++++++----- .../conftest.cpython-39-pytest-6.2.5.pyc | Bin 0 -> 1001 bytes .../test_default.cpython-39-pytest-6.2.5.pyc | Bin 0 -> 2852 bytes 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 molecule/default/tests/__pycache__/conftest.cpython-39-pytest-6.2.5.pyc create mode 100644 molecule/default/tests/__pycache__/test_default.cpython-39-pytest-6.2.5.pyc diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 8997aa7..919e33f 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -3,21 +3,25 @@ dependency: name: galaxy options: role-file: requirements.yml - roles-path: ../community + roles-path: ${MOLECULE_PROJECT_DIRECTORY}/../community driver: name: vagrant provider: name: virtualbox -lint: yamllint . && flake8 && ansible-lint --exclude=meta,.cache +lint: | + set -e + yamllint . + flake8 + ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: tcharl/fedora-33-cgroupv1 + box: fedora/34-cloud-base provider_options: cpus: 4 memory: 8092 provider_raw_config_args: - "customize ['modifyvm', :id, '--nested-hw-virt', 'on']" - - "customize ['storagectl', :id, '--name', 'IDE Controller', '--hostiocache', 'on']" + - "customize ['storagectl', :id, '--name', 'IDE', '--hostiocache', 'on']" provider_override_args: - "persistent_storage.enabled = true" - "persistent_storage.location = 'molecule-libvirt-host.vdi'" @@ -27,7 +31,7 @@ platforms: provisioner: name: ansible env: - ANSIBLE_ROLES_PATH: ${ANSIBLE_ROLES_PATH}:../../../community + ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}:${MOLECULE_PROJECT_DIRECTORY}/.. verifier: name: testinfra env: diff --git a/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-6.2.5.pyc b/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-6.2.5.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ef3dfd6d74fb22051766e7d967509375c3b0db0 GIT binary patch literal 1001 zcmYk5&2AGh5P)rGlWfwI7F4OK#9_rPh-RyvD^ygaQl*ks{X^Z0wTT_F!MhH&w;>VS zkl@0N2WXGHlCPY21%wLY%@6g;vz{4y=9^h>yt-OPFuwfh#oq}+Kb`V$fDP@#)Q2D# ziV(w$2%M6LV7D%bQsfoya#|q>qqG|Nb5AX*6`p!jXC5nmM$rl@oug)Dx_&yj;MxR- z$p@1wu3Nt#I%;CO7I(E2x#2WPM^c$i4?E9%I2a%10ZcsrF>Mq$=o5Z}vcN+IPhMbv zz{rqciIrU1Zvc9YGO~kM#dyQ=4N_Mh@vt(i-ug~wl`V9KZ)>c2hYg|i>``&nUz}wG zkZaSuvpfq7KFiy;%*pp;^6$eSCO)LawE#<1{OgD?7 z6@Q;6Q1t(u7f|^V*eS;}l?)Cg~RZS5^LbReNIc5RtsW@r-YC5ES}4CVhoY7Jh$ zzlN8ZD;@R*u@VVSrDAbr!UM^8crJ6*<2pPQvFS^dhNJmndv|AdC!B+X3L36MsrACL z?JV0O=>oXfb}-@MqlAq2<6M}~u|Zau_1&s9n%Iq5>8>tkqMDn0R0T%;6a*p!H{jX8 zb?jsRuSdwe?|GPDa<3kPzuB-=N}23YYU`Btb9a>~RqmErzndol`mJqae>9;>ZHvy5 zwqgxkFp11sijNg^$<~%8TV2@daJXQLm8wBpaKY(OcsEGA~r0dh=>F_BPyP9^>jt`XxXlY z8LBrV%Sh~4Wzj9M=^x+=_zG`X@e7fVxYyl-x;2S3E3z1ue0+WFDnE|TEwhysmq5Dm zPskoSg#3k-`D8)m24wj)04E*7DYp{Zu}o>FjzuU*E1fDO+~&?>(y8$ZuR>YpHC~6Z z!5iF#(&bBh8OkMY-674Dd?xHYs(>meOFrCmA$GOUyp`9xVGo7-ijOS$oPt+4|>u*Z~F zRAp2hlL3);!B;D-F%=I?D_EHY?by?Sp4F%J>ttBPg_YHqf?ZQ}Xl<0WF?~dTp`18m zXhW_H9Zq1Gja$ci19m7_raY;bDx_C>(V>X?UMuuA(xXATFFz7RmchdJ<^HuKJ{ZJ8 z?Kd|x-I`Es#o2@&w?DkrKiXUi!<0|#jtws% z>}Y`9XRA!gNGQ{NuPM>F*L1ZF!|UqwUG3iJAL0H7Oz4Y2$dV+0$%-&f`%FZ-5lGgJ z(4&{3XK+x&3GgR%HOZl~)RzO<%Zr4Yw}QhYKVV6au{6@FUz*Y5Jo`$BTuZDxb`^Y)@OJAN_Q`a(zO?TkxG{ zPyBCT1Ee4Jm`LI%%>@Ty{F^zC{5yFe!btkJ6Q=MRK1|9Ot?kY2O`l~lK1d>8z@e3X zF6D`*g`U=owiZs_Pr(xw(3wYFRwT;D4V4CinXBDD((jplo}G>$WnnMQq9B&R>^OiN ziNy62>QI-8cfdL&1(bu4!k=KANMTHV{hbmJ1ziw@wIGV$ls$4ziNYRLW}>K$YDN?f zpkLjH;vrZSw2Uawevv2|(9?aMDDFWFao~AmQ<7cSBJz(-h#&ZT5BWqg_dx=(=k@bE zft{7gYqj7YdZp_@3Ja)nZylai*V_d>DHbPQEAu|yfl4o8+*Gy}l=cG)RXm73*bo@e zgpE)^zzr4{P(%X(qv2#pJF?)pSVGS-!V1DF!Yc?D5H2FTim--o3E?#aJZn>U8!Uav z@QjN=av=%`6>%I#B6&cr2+s literal 0 HcmV?d00001 From 8c03fe280935e00347e4c38df16355aedce97567 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Mon, 11 Oct 2021 12:00:09 +0200 Subject: [PATCH 17/42] update namespace --- molecule/kvm/molecule.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 3768e40..7e15a2b 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -1,9 +1,18 @@ --- +dependency: + name: galaxy + options: + role-file: requirements.yml + roles-path: ${MOLECULE_PROJECT_DIRECTORY}/../community driver: name: vagrant provider: name: libvirt -lint: yamllint . && flake8 && ansible-lint --exclude=meta +lint: | + set -e + yamllint . + flake8 + ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections ansible-lint platforms: - name: Fedora-Molecule-libvirt-host box: fedora/34-cloud-base @@ -22,7 +31,7 @@ provisioner: pipelining: true ssh_args: -o ControlMaster=auto -o ControlPersist=600s env: - ANSIBLE_ROLES_PATH: ../../..:../../../community + ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}:${MOLECULE_PROJECT_DIRECTORY}/.. verifier: name: testinfra env: From 36d3ba430d50ff94358f0ca9503d50b7966531cf Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Wed, 10 Nov 2021 22:46:26 +0100 Subject: [PATCH 18/42] [skip travis] update to the last fedora version --- molecule/default/converge.yml | 6 ++---- molecule/default/molecule.yml | 4 ++-- molecule/kvm/converge.yml | 6 ++---- molecule/kvm/molecule.yml | 4 ++-- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index d04f9d2..e79baf2 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -26,11 +26,9 @@ netmask: 255.255.255.0 dhcp_start: 192.168.1.100 dhcp_end: 192.168.1.200 + roles: + - role: tcharl.ansible_role_libvirt_host tasks: - - name: "Include ansible-role-libvirt-host" - include_role: - name: "ansible-role-libvirt-host" - - name: "Post converge - Install vagrant" package: name: diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 919e33f..42a7fbc 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -15,7 +15,7 @@ lint: | ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/34-cloud-base + box: fedora/35-cloud-base provider_options: cpus: 4 memory: 8092 @@ -31,7 +31,7 @@ platforms: provisioner: name: ansible env: - ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}:${MOLECULE_PROJECT_DIRECTORY}/.. + ANSIBLE_ROLES_PATH: "${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}" verifier: name: testinfra env: diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index 73bcecf..7c2d2b7 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -22,11 +22,9 @@ - name: ansible-virtualization-bridge mode: bridge bridge: bridge0 + roles: + - role: tcharl.ansible_role_libvirt_host tasks: - - name: "Include ansible-role-libvirt-host" - include_role: - name: "ansible-role-libvirt-host" - - name: "Post converge - Install vagrant" package: name: diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 7e15a2b..1fd4d46 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -15,7 +15,7 @@ lint: | ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/34-cloud-base + box: fedora/35-cloud-base provider_options: driver: '"kvm"' cpus: 2 @@ -31,7 +31,7 @@ provisioner: pipelining: true ssh_args: -o ControlMaster=auto -o ControlPersist=600s env: - ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}:${MOLECULE_PROJECT_DIRECTORY}/.. + ANSIBLE_ROLES_PATH: "${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}" verifier: name: testinfra env: From 65a0ca9663eac1f8aaa41a5944e2c5c37477062c Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Wed, 10 Nov 2021 23:25:08 +0100 Subject: [PATCH 19/42] [travis skip] rebase with oss upstream --- README.md | 1 - templates/network.xml.j2 | 18 +++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3e9d1ec..a8b57c0 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,6 @@ should be a dict containing the following items: - `name` The name of the network. - `mode` The forwarding mode of the network, `bridge`, `route` and `nat` are supported. - - `bridge` The name of the bridge interface for this network. - `zone` the firewalld zone for the bridge (defaults to public) - `ip` IP address of the virtual bridge, mandatory for `route` and `nat` mode. diff --git a/templates/network.xml.j2 b/templates/network.xml.j2 index a8aba35..eb82a37 100644 --- a/templates/network.xml.j2 +++ b/templates/network.xml.j2 @@ -1,29 +1,29 @@ {{ item.name }} - - {% if item.mode == 'route' or item.mode == 'nat' %} + +{% if item.mode == 'route' or item.mode == 'nat' %} {% if item.dhcp_start is defined and item.dhcp_end is defined %} - - - + + + {% endif %} {% if item.routes is defined %} - {% for route in item.routes %} + {% for route in item.routes %} - {% endfor %} + {% endfor %} {% endif %} {% if item.ipv6 is defined and item.ipv6_prefix is defined %} {% endif %} {% if item.routesv6 is defined %} - {% for route in item.routesv6 %} + {% for route in item.routesv6 %} - {% endfor %} + {% endfor %} {% endif %} {% endif %} From 978b3ad1c1d1bfc9f5847c7cf75cf0d1c5346633 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 21 Nov 2021 16:19:29 +0100 Subject: [PATCH 20/42] improve lint --- templates/pool.xml.j2 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/templates/pool.xml.j2 b/templates/pool.xml.j2 index c818544..a4bbcc2 100644 --- a/templates/pool.xml.j2 +++ b/templates/pool.xml.j2 @@ -4,28 +4,28 @@ {% endif %} {{ item.name }} - {% if 'capacity' in item %} +{% if 'capacity' in item %} {{ item.capacity }} - {% endif %} - {% if item.type in ['logical', 'lvm2', 'zfs', 'rbd'] %} +{% endif %} +{% if item.type in ['logical', 'lvm2', 'zfs', 'rbd'] %} {{ item.source }} - {% if item.type in ['logical', 'lvm2'] %} + {% if item.type in ['logical', 'lvm2'] %} - {% endif %} - {% if item.type == 'rbd' %} + {% endif %} + {% if item.type == 'rbd' %} {% for host in item.hosts %} {% endfor %} - {% endif %} - {% endif %} - {% if item.type != 'zfs' %} + +{% endif %} +{% if item.type != 'zfs' %} {{ item.path | default('placeholder_value') }} - {% endif %} +{% endif %} From ea4779db97854d217191c4fa572bd26fd2dfaa63 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Thu, 19 May 2022 14:14:18 +0200 Subject: [PATCH 21/42] set FQCN on all calls --- .github/workflows/molecule.yml | 1 + .travis.yml | 1 + tasks/config.yml | 20 ++++++++++---------- tasks/install-client.yml | 2 +- tasks/install-daemon.yml | 8 ++++---- tasks/main.yml | 18 +++++++++--------- tasks/networks.yml | 6 +++--- tasks/pools.yml | 16 ++++++++-------- tasks/post-install-Debian.yml | 6 +++--- tasks/prelude.yml | 2 +- tasks/rbd.yml | 14 +++++++------- tasks/validate.yml | 10 +++++----- 12 files changed, 53 insertions(+), 51 deletions(-) diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index 6fdbb52..e592fc6 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -33,6 +33,7 @@ jobs: sudo apt update sudo apt -y install python3-setuptools python3 python3-pip pip3 install wheel + pip3 install ansible-compat==0.5.0 pip3 install ansible molecule testinfra yamllint ansible-lint flake8 molecule-vagrant - name: molecule lint diff --git a/.travis.yml b/.travis.yml index 4352aad..8fc1698 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,6 +33,7 @@ install: - vagrant plugin install vagrant-libvirt - pip install wheel pyopenssl - pip install netaddr python-vagrant yamllint testinfra flake8 + - pip install ansible-compat==0.5.0 # see https://github.com/ansible-community/molecule/issues/3404 - pip install ansible ansible-lint - pip install molecule molecule-vagrant python-vagrant - sudo chmod o+rwx /var/run/libvirt/libvirt-sock diff --git a/tasks/config.yml b/tasks/config.yml index 7817377..edccf08 100644 --- a/tasks/config.yml +++ b/tasks/config.yml @@ -2,7 +2,7 @@ # Configure services - runs after the install stage - name: Create directory for libvirt socket - file: + ansible.builtin.file: state: directory path: "{{ libvirt_host_socket_dir }}" owner: root @@ -12,7 +12,7 @@ when: libvirt_host_socket_dir | length > 0 - name: Process lineinfile rules - lineinfile: "{{ rule.args }}" + ansible.builtin.lineinfile: "{{ rule.args }}" become: true loop: "{{ libvirt_host_lineinfile_extra_rules | default([]) }}" loop_control: @@ -22,7 +22,7 @@ - restart libvirt - name: Ensure configuration files exist - template: + ansible.builtin.template: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root @@ -47,7 +47,7 @@ - restart libvirt - name: Create systemd drop-in directory for socket listen address - file: + ansible.builtin.file: path: "/etc/systemd/system/{{ item.service }}.d" state: directory owner: root @@ -64,7 +64,7 @@ _libvirt_listen_stream: "{{ item.listen_address }}" - name: Configure socket listen address - template: + ansible.builtin.template: src: socket.j2 dest: "/etc/systemd/system/{{ item.service }}.d/listen-address.conf" owner: root @@ -84,7 +84,7 @@ - restart libvirt - name: Create directory for TLS certificates and keys - file: + ansible.builtin.file: path: "{{ item }}" state: directory owner: root @@ -101,7 +101,7 @@ - libvirt_host_tls_listen | bool - name: Copy TLS certificates and keys - copy: + ansible.builtin.copy: content: "{{ _libvirt_loop_item.content }}" dest: "{{ _libvirt_loop_item.dest }}" owner: root @@ -119,7 +119,7 @@ notify: restart libvirt - name: Ensure libvirt SASL user exists - shell: + ansible.builtin.shell: cmd: > set -o pipefail && echo {{ item.password }} | @@ -132,10 +132,10 @@ when: libvirt_host_enable_sasl_support | bool - name: Flush handlers - meta: flush_handlers + ansible.builtin.meta: flush_handlers - name: Ensure the libvirt daemon is started and enabled - service: + ansible.builtin.service: name: "{{ item.service }}" state: "{{ item.enabled | bool | ternary('started', 'stopped') }}" enabled: "{{ item.enabled | bool }}" diff --git a/tasks/install-client.yml b/tasks/install-client.yml index dfe1955..d36d36c 100644 --- a/tasks/install-client.yml +++ b/tasks/install-client.yml @@ -1,6 +1,6 @@ --- - name: Ensure libvirt client packages are installed - package: + ansible.builtin.package: name: "{{ libvirt_host_libvirt_packages_client | select | list }}" state: present register: result diff --git a/tasks/install-daemon.yml b/tasks/install-daemon.yml index f08e9fe..b1c51b8 100644 --- a/tasks/install-daemon.yml +++ b/tasks/install-daemon.yml @@ -8,12 +8,12 @@ # # The core team had a a change of heart and it is actually being preserved: # https://github.com/ansible/ansible/pull/43798 - yum_repository: "{{ item }}" + ansible.builtin.yum_repository: "{{ item }}" loop: "{{ libvirt_host_custom_yum_repos | default([]) }}" become: true - name: Ensure libvirt packages are installed - package: + ansible.builtin.package: name: "{{ libvirt_host_libvirt_packages | select | list }}" state: present register: result @@ -23,7 +23,7 @@ # NOTE: QEMU emulators are available in EPEL on CentOS 7. - name: Ensure the EPEL repository is enabled - yum: + ansible.builtin.yum: name: epel-release state: present register: result @@ -36,7 +36,7 @@ - libvirt_host_qemu_emulators | length > 0 - name: Ensure QEMU emulator packages are installed - package: + ansible.builtin.package: name: "{{ package }}" state: present loop: "{{ libvirt_host_qemu_emulators | flatten(levels=1) }}" diff --git a/tasks/main.yml b/tasks/main.yml index b1f7315..5afd524 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,16 +1,16 @@ --- -- import_tasks: prelude.yml -- import_tasks: validate.yml +- ansible.builtin.include_tasks: prelude.yml +- ansible.builtin.include_tasks: validate.yml - name: Include install-daemon.yml - include_tasks: install-daemon.yml + ansible.builtin.include_tasks: install-daemon.yml when: libvirt_host_install_daemon | bool - name: Include install-client.yml - include_tasks: install-client.yml + ansible.builtin.include_tasks: install-client.yml when: - not libvirt_host_install_daemon | bool - libvirt_host_install_client | bool - name: Run post-install stage - include_tasks: "{{ post_install_path }}" + ansible.builtin.include_tasks: "{{ post_install_path }}" with_first_found: - files: - post-install-{{ ansible_facts.distribution }}.yml @@ -19,14 +19,14 @@ loop_control: loop_var: post_install_path - name: Include config.yml - include_tasks: config.yml + ansible.builtin.include_tasks: config.yml when: libvirt_host_install_daemon | bool - name: Include client-config.yml - include_tasks: client-config.yml + ansible.builtin.include_tasks: client-config.yml when: libvirt_host_install_client | bool - name: Include pools.yml - include_tasks: pools.yml + ansible.builtin.include_tasks: pools.yml when: libvirt_host_pools | length > 0 - name: Include networks.yml - include_tasks: networks.yml + ansible.builtin.include_tasks: networks.yml when: libvirt_host_networks | length > 0 diff --git a/tasks/networks.yml b/tasks/networks.yml index 5b90382..5bd3687 100644 --- a/tasks/networks.yml +++ b/tasks/networks.yml @@ -1,6 +1,6 @@ --- - name: Ensure libvirt networks are defined - virt_net: + community.libvirt.virt_net: name: "{{ item.name }}" command: define xml: "{{ item.xml | default(lookup('template', 'network.xml.j2')) }}" @@ -9,7 +9,7 @@ become: True - name: Ensure libvirt networks are started on boot - virt_net: + community.libvirt.virt_net: name: "{{ item.name }}" autostart: yes uri: "{{ libvirt_host_uri | default(omit, true) }}" @@ -17,7 +17,7 @@ become: True - name: Ensure libvirt networks are active - virt_net: + community.libvirt.virt_net: name: "{{ item.name }}" state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" diff --git a/tasks/pools.yml b/tasks/pools.yml index 142ece0..563ee3b 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -1,6 +1,6 @@ --- - name: Include lvm role to create VG - include_role: + ansible.builtin.include_role: name: mrlesmithjr.manage-lvm when: - manage_lvm is defined @@ -8,7 +8,7 @@ - libvirt_host_pools | map(attribute='type') | select('match', '^lvm2$') | join(',') | length > 0 - name: Ensure libvirt dir storage pool directories exist - file: + ansible.builtin.file: path: "{{ item.path }}" owner: "{{ item.owner }}" group: "{{ item.group }}" @@ -19,7 +19,7 @@ become: True - name: include rbd.yml - include_tasks: + ansible.builtin.include_tasks: file: rbd.yml apply: become: True @@ -27,7 +27,7 @@ loop: "{{ libvirt_host_pools | flatten(levels=1) }}" - name: Ensure libvirt storage pools are defined - virt_pool: + community.libvirt.virt_pool: name: "{{ item.name }}" command: define xml: "{{ item.xml | default(lookup('template', 'pool.xml.j2')) }}" @@ -36,7 +36,7 @@ become: True - name: Check libvirt directory storage pool status - virt_pool: + community.libvirt.virt_pool: name: "{{ item.name }}" command: status uri: "{{ libvirt_host_uri | default(omit, true) }}" @@ -46,7 +46,7 @@ register: pool_status - name: Ensure libvirt directory storage pools are built - virt_pool: + community.libvirt.virt_pool: name: "{{ item.item.name }}" command: build uri: "{{ libvirt_host_uri | default(omit, true) }}" @@ -57,7 +57,7 @@ become: True - name: Ensure libvirt storage pools are active - virt_pool: + community.libvirt.virt_pool: name: "{{ item.name }}" state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" @@ -65,7 +65,7 @@ become: True - name: Ensure libvirt storage pools are started on boot - virt_pool: + community.libvirt.virt_pool: name: "{{ item.name }}" autostart: yes uri: "{{ libvirt_host_uri | default(omit, true) }}" diff --git a/tasks/post-install-Debian.yml b/tasks/post-install-Debian.yml index bdb1425..329e9de 100644 --- a/tasks/post-install-Debian.yml +++ b/tasks/post-install-Debian.yml @@ -8,13 +8,13 @@ # skip being set to true. This is undeseriable so we have to # put it behind an include (a block doesn't work). - name: Check if /etc/default/libvirt-bin exists - stat: + ansible.builtin.stat: path: /etc/default/libvirt-bin register: libvirt_bin_stat tags: vars - name: Determine path to libvirt environment file - set_fact: + ansible.builtin.set_fact: libvirt_host_lineinfile_extra_rules: - args: path: "{{ libvirt_env_path }}" @@ -27,7 +27,7 @@ tags: vars - name: Configure libvirt QEMU apparmor profile template - lineinfile: + ansible.builtin.lineinfile: path: "/etc/apparmor.d/libvirt/TEMPLATE.qemu" insertbefore: "^}" line: " {{ item.path }}/** rwk," diff --git a/tasks/prelude.yml b/tasks/prelude.yml index 2f1d39c..a0c28ad 100644 --- a/tasks/prelude.yml +++ b/tasks/prelude.yml @@ -2,7 +2,7 @@ # This file is intended to be included at the beginning of a playbook. - name: gather os specific variables - include_vars: "{{ item }}" + ansible.builtin.include_vars: "{{ item }}" with_first_found: - "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml" - "{{ ansible_facts.distribution }}.yml" diff --git a/tasks/rbd.yml b/tasks/rbd.yml index 5bdc7d5..5e9c068 100644 --- a/tasks/rbd.yml +++ b/tasks/rbd.yml @@ -1,35 +1,35 @@ --- - name: Install additional packages for rbd support - package: + ansible.builtin.package: name: "{{ libvirt_host_packages_rbd_volume_pool | flatten(levels=1) }}" state: present notify: restart libvirt - name: Create temporary file for Ceph secret - tempfile: + ansible.builtin.tempfile: state: file suffix: .xml register: secret_tempfile - name: Send Ceph secret - template: + ansible.builtin.template: mode: 0640 src: ceph_secret.xml.j2 dest: "{{ secret_tempfile.path }}" - name: Define Ceph secret - command: "virsh secret-define {{ secret_tempfile.path }}" + ansible.builtin.command: "virsh secret-define {{ secret_tempfile.path }}" changed_when: false - name: Set Ceph secret value - command: "virsh secret-set-value {{ item.name | to_uuid }} {{ item.passphrase }}" + ansible.builtin.command: "virsh secret-set-value {{ item.name | to_uuid }} {{ item.passphrase }}" changed_when: false - name: Delete temporary file - file: + ansible.builtin.file: path: "{{ secret_tempfile.path }}" state: absent - name: Flush handlers - meta: flush_handlers + ansible.builtin.meta: flush_handlers diff --git a/tasks/validate.yml b/tasks/validate.yml index 70ab253..a36d5b3 100644 --- a/tasks/validate.yml +++ b/tasks/validate.yml @@ -1,17 +1,17 @@ --- - name: Verify that Virtualization Technology (VT) is enabled - command: grep -c -E 'svm|vmx' /proc/cpuinfo + ansible.builtin.command: grep -c -E 'svm|vmx' /proc/cpuinfo check_mode: False changed_when: False failed_when: False register: result - name: Set a fact about whether Virtualization Technology (VT) is enabled - set_fact: + ansible.builtin.set_fact: libvirt_host_vt_enabled: "{{ result.rc == 0 }}" - name: Notify if Virtualization Technology (VT) is disabled - debug: + ansible.builtin.debug: msg: > Virtualization Technology (VT) is currently disabled. Please enable VT before running this role again. @@ -20,7 +20,7 @@ - not libvirt_host_vt_enabled - name: Fail if Virtualization Technology (VT) is disabled - fail: + ansible.builtin.fail: msg: > Virtualization Technology (VT) is currently disabled. Please enable VT before running this role again. @@ -29,7 +29,7 @@ - not libvirt_host_vt_enabled - name: Fail if SASL password is not defined - fail: + ansible.builtin.fail: msg: > One or more SASL passwords in 'libvirt_host_sasl_credentials' are not defined From f29191b0703f038b79304f706ee9ae00a72f345f Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Thu, 19 May 2022 22:42:39 +0200 Subject: [PATCH 22/42] use fcqn following the ansible lint guidelines --- handlers/main.yml | 10 +++++----- molecule/default/converge.yml | 10 +++++----- molecule/default/molecule.yml | 2 +- .../conftest.cpython-39-pytest-7.1.2.pyc | Bin 0 -> 1008 bytes .../test_default.cpython-39-pytest-7.1.2.pyc | Bin 0 -> 2859 bytes molecule/kvm/converge.yml | 10 +++++----- tasks/client-config.yml | 2 +- templates/network.xml.j2 | 4 ++-- vars/RedHat.yml | 2 ++ 9 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 molecule/default/tests/__pycache__/conftest.cpython-39-pytest-7.1.2.pyc create mode 100644 molecule/default/tests/__pycache__/test_default.cpython-39-pytest-7.1.2.pyc diff --git a/handlers/main.yml b/handlers/main.yml index 183bcc9..3cd8995 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,13 +1,13 @@ --- - name: reload systemd - systemd: + ansible.builtin.systemd: daemon_reload: true become: true # The socket units cannot be stopped or started if libvirt is running. - name: stop libvirt - service: + ansible.builtin.service: name: libvirtd state: stopped become: true @@ -15,7 +15,7 @@ - restart libvirt - name: start libvirtd sockets - service: + ansible.builtin.service: name: "{{ item.service }}" state: "{{ item.enabled | bool | ternary('started', 'stopped') }}" become: true @@ -26,11 +26,11 @@ - restart libvirt - name: start libvirt - service: + ansible.builtin.service: name: libvirtd state: started become: true - name: reload libvirt qemu apparmor profile template - command: apparmor_parser -r /etc/apparmor.d/libvirt/TEMPLATE.qemu + ansible.builtin.command: apparmor_parser -r /etc/apparmor.d/libvirt/TEMPLATE.qemu become: true diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index e79baf2..a9129da 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -30,7 +30,7 @@ - role: tcharl.ansible_role_libvirt_host tasks: - name: "Post converge - Install vagrant" - package: + ansible.builtin.package: name: - qemu - libvirt @@ -46,13 +46,13 @@ become: true - name: Start libvirtd - service: + ansible.builtin.service: name: libvirtd state: started become: true - name: Copy vagrant file - copy: + ansible.builtin.copy: src: Vagrantfile dest: /home/vagrant/Vagrantfile owner: vagrant @@ -60,13 +60,13 @@ mode: '0644' - name: Execute Vagrant as daemon - command: + ansible.builtin.command: cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant -E VAGRANT_LOG=info /usr/bin/vagrant up --provider=libvirt" chdir: /home/vagrant creates: /home/vagrant/myvm.log - name: Wait until the string "auth" is in the vagrant log - wait_for: + ansible.builtin.wait_for: path: /home/vagrant/myvmerr.log search_regex: SSH\sis\sready timeout: 1800 \ No newline at end of file diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 42a7fbc..c80a670 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -12,7 +12,7 @@ lint: | set -e yamllint . flake8 - ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections ansible-lint + ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint platforms: - name: Fedora-Molecule-libvirt-host box: fedora/35-cloud-base diff --git a/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-7.1.2.pyc b/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-7.1.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..322618daa13e6c32048143864cccffb4bbb7e647 GIT binary patch literal 1008 zcmYk5PjAyO6u@maZIiD11DZ5V;t+8wf@a!zLPJw0O&Z;_e`vW_Y3dL6MBt3X1iN)bRAR4uSF;*H7-jX?zw-ofPA4_h9NFh*`75L7(s&l!qQNc={Xz z1V)C8Dy-tteg)7=l#?yQYQ`H?uaLUyd*4K{=}@|E(ee}9${ zKn`X*Cq*6_fYzbR#Wb7@c^(!y<0{Og;Qd1IaFUu~xhKsBDhbnEn?wlC+R9bYoo$pw zEB?Mnq3HiR&!FxsHxSVg^!W(fDrhVtZ?QE4l-T6f|5%QtQZ+ zQQ8Yaa8Qx1wl@UN=r6=@k;~sjn+o`!AT3+zKfcvs8n! z3i&2v`4oWDAuY*>lyppo7Pp3WX+5Gtr?g9FK!$GV%Ab@qvbkNlUCNEWYmFW7fjy?& zRqm)VCIcexfv;LxV=5k+RNI7xH z(1z>|9Zq1G^;^e#19m7_raY;bDx_C>(V>X?UMuuA(xXATFFz1PmchdJ<^HuKJ{ZJ8 z?Kd|x-I`Es#o2@&x8J|kKiXF{rF8iSNUkZWqaB(ed)*ZmFp8C-hlT! z`^CQt8zB9#$3zlGX)ZVrd>?CJZ;>EP~yPz*rp`AutntWn-E6u`3CZdavp#Z zWY6p8dD2Q^sk~MT&ZAd0JV;>yb?&Xh)9QM=AS=b<#A{{VhdWT|MU0!u)`H-^Wub}( z(R&*L1DmiBTm;-;fpJCD5ilrDmb4=ao{J^)EF-KStRlRGZ~@^W!pjJ22$v9ELBJz7 zg*U;{mkiIi7$g^hflv|0c_fktAikddXFM`CT_*su+7h<>GA?i ztWY3jLlsiINY%UNhN=hNl&dUK|A!J^%+{J=3qEU3Q?H*QYW>_0b^pvf{fClzZJwk# zMIkMVinFUfkjn??P oG(lCMTm{Z4aGJUBYy!23(X~&~oWn2sGrVz149`lcX8-^I literal 0 HcmV?d00001 diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index 7c2d2b7..b163a33 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -26,7 +26,7 @@ - role: tcharl.ansible_role_libvirt_host tasks: - name: "Post converge - Install vagrant" - package: + ansible.builtin.package: name: - qemu - libvirt @@ -42,13 +42,13 @@ become: true - name: Start libvirtd - service: + ansible.builtin.service: name: libvirtd state: started become: true - name: Copy vagrant file - copy: + ansible.builtin.copy: src: Vagrantfile dest: /home/vagrant/Vagrantfile owner: vagrant @@ -56,13 +56,13 @@ mode: '0644' - name: Execute Vagrant as daemon - command: + ansible.builtin.command: cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant -E VAGRANT_LOG=info /usr/bin/vagrant up --provider=libvirt" chdir: /home/vagrant creates: /home/vagrant/myvm.log - name: Wait until the string "auth" is in the vagrant log - wait_for: + ansible.builtin.wait_for: path: /home/vagrant/myvmerr.log search_regex: SSH\sis\sready timeout: 1800 \ No newline at end of file diff --git a/tasks/client-config.yml b/tasks/client-config.yml index 24ca4e4..7dc5693 100644 --- a/tasks/client-config.yml +++ b/tasks/client-config.yml @@ -1,6 +1,6 @@ --- - name: Ensure client configuration files exist - template: + ansible.builtin.template: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: "{{ item.owner }}" diff --git a/templates/network.xml.j2 b/templates/network.xml.j2 index eb82a37..9e9c8ec 100644 --- a/templates/network.xml.j2 +++ b/templates/network.xml.j2 @@ -1,8 +1,8 @@ {{ item.name }} - + {% if item.mode is defined %}{% endif %} -{% if item.mode == 'route' or item.mode == 'nat' %} +{% if item.mode is not defined or item.mode in ['route', 'nat'] %} {% if item.dhcp_start is defined and item.dhcp_end is defined %} diff --git a/vars/RedHat.yml b/vars/RedHat.yml index 0335240..55faba0 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -23,6 +23,7 @@ libvirt_host_packages_efi_by_version: - qemu-kvm-ev # Need smm support for secure boot 8: - edk2-ovmf + 35: [] # fedora libvirt_host_packages_efi: >- {{ libvirt_host_packages_efi_by_version[ansible_facts.distribution_major_version | int] }} @@ -53,6 +54,7 @@ libvirt_host_custom_yum_repos_efi_by_version: baseurl: http://mirror.centos.org/$contentdir/$releasever/virt/$basearch/kvm-common/ gpgcheck: yes 8: [] + 35: [] # Fedora :-) libvirt_host_custom_yum_repos: >- {{ libvirt_host_custom_yum_repos_efi_by_version[ansible_facts.distribution_major_version | int] }} From 78b266c3deebda5dd7943c4baba466dbc2c6fb43 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Thu, 19 May 2022 23:11:35 +0200 Subject: [PATCH 23/42] rebase from oss upstream --- handlers/main.yml | 2 ++ .../conftest.cpython-39-pytest-7.1.2.pyc | Bin 1008 -> 1008 bytes .../test_default.cpython-39-pytest-7.1.2.pyc | Bin 2859 -> 2859 bytes tasks/install-daemon.yml | 1 - tasks/pools.yml | 3 +-- 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handlers/main.yml b/handlers/main.yml index 3cd8995..8dc3458 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -30,6 +30,8 @@ name: libvirtd state: started become: true + listen: + - restart libvirt - name: reload libvirt qemu apparmor profile template ansible.builtin.command: apparmor_parser -r /etc/apparmor.d/libvirt/TEMPLATE.qemu diff --git a/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-7.1.2.pyc b/molecule/default/tests/__pycache__/conftest.cpython-39-pytest-7.1.2.pyc index 322618daa13e6c32048143864cccffb4bbb7e647..9f512e8e793c44c20582af31bf94d85fa2973dca 100644 GIT binary patch delta 21 bcmeys{(+q*k(ZZ?0SF4$v?XoidBO|;L30Kv delta 21 bcmeys{(+q*k(ZZ?0SMavBqwgk>>^gHUk9J diff --git a/tasks/install-daemon.yml b/tasks/install-daemon.yml index b1c51b8..68665ac 100644 --- a/tasks/install-daemon.yml +++ b/tasks/install-daemon.yml @@ -32,7 +32,6 @@ become: True when: - ansible_facts.os_family == "RedHat" - - ansible_facts.distribution_major_version | int == 7 - libvirt_host_qemu_emulators | length > 0 - name: Ensure QEMU emulator packages are installed diff --git a/tasks/pools.yml b/tasks/pools.yml index 563ee3b..6388616 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -18,8 +18,7 @@ loop: "{{ libvirt_host_pools | flatten(levels=1) }}" become: True -- name: include rbd.yml - ansible.builtin.include_tasks: +- ansible.builtin.include_tasks: file: rbd.yml apply: become: True From 453578b6b3b7f2551814610673cf79c0f4c45b43 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sat, 21 May 2022 01:08:58 +0200 Subject: [PATCH 24/42] remove ansible lint error --- .ansible-lint | 3 +-- meta/main.yml | 4 ++-- molecule/kvm/molecule.yml | 2 +- requirements.yml | 1 - 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index 9040bdc..840c156 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,5 +1,4 @@ warn_list: - - '208' - - '301' + - schema skip_list: - '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern \ No newline at end of file diff --git a/meta/main.yml b/meta/main.yml index bcbe178..7fa64b8 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -7,11 +7,11 @@ galaxy_info: Role to install and configure a host as a Libvirt/KVM hypervisor company: Osgiliath Inc on top of StackHPC Ltd achievements (Thanks! I'll PR it) license: Apache2 - min_ansible_version: 2.0 + min_ansible_version: "2.0" platforms: - name: EL versions: - - 7 + - all - name: Ubuntu versions: - all diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 1fd4d46..9d99ea8 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -12,7 +12,7 @@ lint: | set -e yamllint . flake8 - ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections ansible-lint + ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint platforms: - name: Fedora-Molecule-libvirt-host box: fedora/35-cloud-base diff --git a/requirements.yml b/requirements.yml index ad46118..dc0b754 100644 --- a/requirements.yml +++ b/requirements.yml @@ -2,4 +2,3 @@ roles: # Install a role from Ansible Galaxy. - name: mrlesmithjr.manage-lvm - source: https://galaxy.ansible.com From bafbc2141ec5ed499e5358e19c102853c22ff6d9 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sat, 21 May 2022 11:39:01 +0200 Subject: [PATCH 25/42] exclude some files from lint --- .ansible-lint | 4 ++++ molecule/kvm/converge.yml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.ansible-lint b/.ansible-lint index 840c156..6d4f1c0 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,3 +1,7 @@ +exclude_paths: + - .cache/ + - meta/ + - molecule/ warn_list: - schema skip_list: diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index b163a33..a3149c0 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -23,7 +23,7 @@ mode: bridge bridge: bridge0 roles: - - role: tcharl.ansible_role_libvirt_host + - role: ansible-role-libvirt-host tasks: - name: "Post converge - Install vagrant" ansible.builtin.package: From 7e4ffadca9d5edabda9fd721d573067118d2ee61 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Mon, 8 Aug 2022 10:18:16 +0200 Subject: [PATCH 26/42] [travis-skip] support fedora 36 --- README.md | 14 +++++++------- tasks/install-daemon.yml | 1 + vars/RedHat.yml | 2 ++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a8b57c0..6354587 100644 --- a/README.md +++ b/README.md @@ -35,16 +35,16 @@ should be a dict containing the following items: `libvirt_host_networks` is a list of networks to define and start. Each item should be a dict containing the following items: - `name` The name of the network. -- `mode` The forwarding mode of the network, `bridge`, `route` and `nat` are - supported. +- `mode` The forwarding mode of the network, `bridge`, `route`, `open` and `nat` are + supported. Leave empty for a isolated network mode. - `bridge` The name of the bridge interface for this network. - `zone` the firewalld zone for the bridge (defaults to public) -- `ip` IP address of the virtual bridge, mandatory for `route` and `nat` mode. -- `netmask` Netmask of the virtual bridge, mandatory for `route` and `nat` mode. -- `domain` DNS domain name for `route` and `nat` mode, default to the network +- `ip` IP address of the virtual bridge, mandatory for `route`, `open` and `nat` mode. +- `netmask` Netmask of the virtual bridge, mandatory for `route`, `open` and `nat` mode. +- `domain` DNS domain name for `route`, `open` and `nat` mode, default to the network name (optional). -- `dhcp_start` First IP of the DHCP range in `route` or `nat` mode (optional). -- `dhcp_end` Last IP of the DHCP range in `route` or `nat` mode (optional). +- `dhcp_start` First IP of the DHCP range in `route`, `open` or `nat` mode (optional). +- `dhcp_end` Last IP of the DHCP range in `route`, `open` or `nat` mode (optional). - `routes` Optional list of additionals routes defined as following: - `address` Address of the route, required. - `prefix` Prefix of the route, required. diff --git a/tasks/install-daemon.yml b/tasks/install-daemon.yml index 68665ac..9b1126b 100644 --- a/tasks/install-daemon.yml +++ b/tasks/install-daemon.yml @@ -32,6 +32,7 @@ become: True when: - ansible_facts.os_family == "RedHat" + - ansible_distribution != 'Fedora' - libvirt_host_qemu_emulators | length > 0 - name: Ensure QEMU emulator packages are installed diff --git a/vars/RedHat.yml b/vars/RedHat.yml index 55faba0..0ffca73 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -24,6 +24,7 @@ libvirt_host_packages_efi_by_version: 8: - edk2-ovmf 35: [] # fedora + 36: [] # fedora libvirt_host_packages_efi: >- {{ libvirt_host_packages_efi_by_version[ansible_facts.distribution_major_version | int] }} @@ -55,6 +56,7 @@ libvirt_host_custom_yum_repos_efi_by_version: gpgcheck: yes 8: [] 35: [] # Fedora :-) + 36: [] # Fedora :-) libvirt_host_custom_yum_repos: >- {{ libvirt_host_custom_yum_repos_efi_by_version[ansible_facts.distribution_major_version | int] }} From 11771201a21a8edfa2a1c37f296cead4b10ee0bb Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Mon, 8 Aug 2022 21:03:30 +0200 Subject: [PATCH 27/42] update molecule fedora box --- molecule/default/Vagrantfile | 2 +- molecule/default/molecule.yml | 2 +- molecule/kvm/molecule.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/molecule/default/Vagrantfile b/molecule/default/Vagrantfile index 8753450..6023b49 100644 --- a/molecule/default/Vagrantfile +++ b/molecule/default/Vagrantfile @@ -6,7 +6,7 @@ Vagrant.configure(2) do |config| libvirt.graphics_type = 'none' end config.ssh.insert_key = false - config.vm.box = "fedora/33-cloud-base" + config.vm.box = "fedora/36-cloud-base" config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.define "myvm" do |myvm| diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index c80a670..5678257 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -15,7 +15,7 @@ lint: | ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/35-cloud-base + box: fedora/36-cloud-base provider_options: cpus: 4 memory: 8092 diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 9d99ea8..f1d7117 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -15,7 +15,7 @@ lint: | ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/35-cloud-base + box: fedora/36-cloud-base provider_options: driver: '"kvm"' cpus: 2 From d898e1b7bfd4f0233b0cb72149a5fd686640a772 Mon Sep 17 00:00:00 2001 From: tcharl Date: Sun, 30 Apr 2023 12:21:01 +0200 Subject: [PATCH 28/42] deploys to galaxy automagically --- .github/release-drafter.yml | 32 ++++++++++ .github/workflows/molecule.yml | 9 +-- .github/workflows/release-drafter.yml | 17 +++++ .github/workflows/release-galaxy.yml | 34 ++++++++++ .travis.yml | 8 +-- galaxy.yml | 21 +++++++ molecule/default/Vagrantfile | 2 +- molecule/default/molecule.yml | 7 ++- molecule/kvm/molecule.yml | 7 ++- requirements-collections.yml | 3 + ...rements.yml => requirements-standalone.yml | 0 requirements.txt | 7 +++ tasks/main.yml | 4 +- tox.ini | 62 +++++++++++++++++++ vars/RedHat.yml | 4 ++ 15 files changed, 198 insertions(+), 19 deletions(-) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-drafter.yml create mode 100644 .github/workflows/release-galaxy.yml create mode 100644 galaxy.yml create mode 100644 requirements-collections.yml rename requirements.yml => requirements-standalone.yml (100%) create mode 100644 requirements.txt create mode 100644 tox.ini diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..f00c9eb --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,32 @@ +name-template: "v$RESOLVED_VERSION ๐ŸŒˆ" +tag-template: "v$RESOLVED_VERSION" +categories: + - title: "๐Ÿš€ Features" + labels: + - "feature" + - "enhancement" + - title: "๐Ÿ› Bug Fixes" + labels: + - "fix" + - "bugfix" + - "bug" + - title: "๐Ÿงฐ Maintenance" + label: "chore" + - title: "๐Ÿงบ Miscellaneous" #Everything except ABAP + label: "misc" +change-template: "- $TITLE @$AUTHOR (#$NUMBER)" +change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. +version-resolver: + major: + labels: + - "major" + minor: + labels: + - "minor" + patch: + labels: + - "patch" + default: patch +template: | + ## Changes + $CHANGES \ No newline at end of file diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index e592fc6..980d310 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -32,13 +32,10 @@ jobs: run: | sudo apt update sudo apt -y install python3-setuptools python3 python3-pip - pip3 install wheel - pip3 install ansible-compat==0.5.0 - pip3 install ansible molecule testinfra yamllint ansible-lint flake8 molecule-vagrant - + pip3 install wheel tox - name: molecule lint run: | - molecule lint + tox -e lint requirements: # The type of runner that the job will run on @@ -49,4 +46,4 @@ jobs: - uses: actions/checkout@v2 - name: install prereq run: | - ansible-galaxy role install -r requirements.yml + tox -e dependency diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 0000000..d247591 --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,17 @@ +name: Release Drafter + +on: + push: + # branches to consider in the event; optional, defaults to all + branches: + - main + - master + +jobs: + update_release_draft: + runs-on: ubuntu-latest + steps: + # Drafts your next Release notes as Pull Requests are merged into "master" + - uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release-galaxy.yml b/.github/workflows/release-galaxy.yml new file mode 100644 index 0000000..04d5bcf --- /dev/null +++ b/.github/workflows/release-galaxy.yml @@ -0,0 +1,34 @@ +--- +name: Ansible Galaxy +on: + push: + branches: + - main + - master + release: + types: + - published + +jobs: + galaxy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Trigger a new import on Galaxy. + run: ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }} $(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2) \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 8fc1698..89189a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,14 +31,10 @@ install: # - wget https://releases.hashicorp.com/vagrant/$VAGRANT_VER/vagrant_"$VAGRANT_VER"_x86_64.deb # - sudo apt -y install ./vagrant_"$VAGRANT_VER"_x86_64.deb - vagrant plugin install vagrant-libvirt - - pip install wheel pyopenssl - - pip install netaddr python-vagrant yamllint testinfra flake8 - - pip install ansible-compat==0.5.0 # see https://github.com/ansible-community/molecule/issues/3404 - - pip install ansible ansible-lint - - pip install molecule molecule-vagrant python-vagrant + - pip install wheel pyopenssl tox - sudo chmod o+rwx /var/run/libvirt/libvirt-sock -script: travis_wait 30 molecule test --scenario-name kvm +script: travis_wait 30 tox -e libvirt branches: only: - master diff --git a/galaxy.yml b/galaxy.yml new file mode 100644 index 0000000..db57041 --- /dev/null +++ b/galaxy.yml @@ -0,0 +1,21 @@ +--- +namespace: "tcharl" +name: "ansible_role_libvirt_host" +version: "0.0.1" +description: "Small variation of stackhpc libvirt_host (i.e. using mjrsmith lvm role instead of bare ansible lvm command, which is a bit more complete)" + +authors: + - "Charlie Mordant " + +repository: "https://github.com/OsgiliathEnterprise/ansible-role-libvirt-host" +documentation: "https://github.com/OsgiliathEnterprise/ansible-role-libvirt-host/blob/master/README.md" +homepage: "https://github.com/OsgiliathEnterprise/ansible-role-libvirt-host" +issues: "https://github.com/OsgiliathEnterprise/ansible-role-libvirt-host/issues" + +readme: "README.md" +license: + - "Apache-2.0" +tags: + - "linux" + - "qemu" + - "kvm" diff --git a/molecule/default/Vagrantfile b/molecule/default/Vagrantfile index 6023b49..69d22b5 100644 --- a/molecule/default/Vagrantfile +++ b/molecule/default/Vagrantfile @@ -6,7 +6,7 @@ Vagrant.configure(2) do |config| libvirt.graphics_type = 'none' end config.ssh.insert_key = false - config.vm.box = "fedora/36-cloud-base" + config.vm.box = "centos/atomic-host" config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.define "myvm" do |myvm| diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 5678257..71afaf8 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -1,9 +1,12 @@ --- dependency: name: galaxy + enabled: ${DEPENDENCY_ENABLED:-True} options: - role-file: requirements.yml + role-file: ${REQUIREMENTS_PATH:-requirements-standalone.yml} roles-path: ${MOLECULE_PROJECT_DIRECTORY}/../community + requirements-file: requirements-collections.yml + collections-path: ${MOLECULE_PROJECT_DIRECTORY}/../community-collections driver: name: vagrant provider: @@ -15,7 +18,7 @@ lint: | ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/36-cloud-base + box: fedora/35-cloud-base provider_options: cpus: 4 memory: 8092 diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index f1d7117..97e1cb0 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -1,9 +1,12 @@ --- dependency: name: galaxy + enabled: ${DEPENDENCY_ENABLED:-True} options: - role-file: requirements.yml + role-file: ${REQUIREMENTS_PATH:-requirements-standalone.yml} roles-path: ${MOLECULE_PROJECT_DIRECTORY}/../community + requirements-file: requirements-collections.yml + collections-path: ${MOLECULE_PROJECT_DIRECTORY}/../community-collections driver: name: vagrant provider: @@ -15,7 +18,7 @@ lint: | ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/36-cloud-base + box: fedora/35-cloud-base provider_options: driver: '"kvm"' cpus: 2 diff --git a/requirements-collections.yml b/requirements-collections.yml new file mode 100644 index 0000000..c82c187 --- /dev/null +++ b/requirements-collections.yml @@ -0,0 +1,3 @@ +--- +collections: + - name: community.libvirt diff --git a/requirements.yml b/requirements-standalone.yml similarity index 100% rename from requirements.yml rename to requirements-standalone.yml diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..de2dbcd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +ansible-lint +flake8 +yamllint +pytest-testinfra +molecule-plugins[vagrant] +python-vagrant +jmespath \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index 5afd524..7e878cf 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,6 +1,6 @@ --- -- ansible.builtin.include_tasks: prelude.yml -- ansible.builtin.include_tasks: validate.yml +- ansible.builtin.import_tasks: prelude.yml +- ansible.builtin.import_tasks: validate.yml - name: Include install-daemon.yml ansible.builtin.include_tasks: install-daemon.yml when: libvirt_host_install_daemon | bool diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..2fb2713 --- /dev/null +++ b/tox.ini @@ -0,0 +1,62 @@ +[tox] +requires = + tox>4 + virtualenv>20.2 +labels = + testenv = py311 +env_list = + lint + create + converge + converge-monorepo + destroy + libvirt + dependency +[testenv:lint] +setenv = + DEPENDENCY_ENABLED=False +deps = + -r requirements.txt +commands = molecule lint +[testenv:dependency] +deps = + -r requirements.txt +commands = molecule dependency + +[testenv:create] +setenv = + DEPENDENCY_ENABLED=False +deps = + -r requirements.txt +commands = molecule dependency +[common-converge] +setenv = + ANSIBLE_ROLES_PATH={toxinidir}/../community:{toxinidir}/../oss:{toxinidir}/.. + ANSIBLE_COLLECTIONS_PATH={toxinidir}/../community-collections +[testenv:converge] +setenv = + {[common-converge]setenv} +deps = + -r requirements.txt +commands = molecule converge +[testenv:destroy] +setenv = + DEPENDENCY_ENABLED=False +deps = + -r requirements.txt +commands = + molecule destroy +[testenv] +setenv = + {[common-converge]setenv} +deps = + -r requirements.txt +commands = molecule test + +[testenv:libvirt] +setenv = + {[common-converge]setenv} +deps = + -r requirements.txt +commands = molecule test --scenario-name kvm + diff --git a/vars/RedHat.yml b/vars/RedHat.yml index 0ffca73..79755c4 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -25,6 +25,8 @@ libvirt_host_packages_efi_by_version: - edk2-ovmf 35: [] # fedora 36: [] # fedora + 37: [] # fedora + 38: [] # fedora libvirt_host_packages_efi: >- {{ libvirt_host_packages_efi_by_version[ansible_facts.distribution_major_version | int] }} @@ -57,6 +59,8 @@ libvirt_host_custom_yum_repos_efi_by_version: 8: [] 35: [] # Fedora :-) 36: [] # Fedora :-) + 37: [] # Fedora :-) + 38: [] # Fedora :-) libvirt_host_custom_yum_repos: >- {{ libvirt_host_custom_yum_repos_efi_by_version[ansible_facts.distribution_major_version | int] }} From cdb84e73a638bf5c6f9ac4e22b01a39a9cd6fcb0 Mon Sep 17 00:00:00 2001 From: tcharl Date: Sun, 30 Apr 2023 12:37:57 +0200 Subject: [PATCH 29/42] fix github actions requiremements steps --- .github/workflows/molecule.yml | 25 ++++++++++++------------- molecule/default/molecule.yml | 2 +- molecule/kvm/molecule.yml | 2 +- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index 980d310..4518eb5 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -13,6 +13,17 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: + requirements: + # The type of runner that the job will run on + runs-on: ubuntu-latest + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - name: install prereq + run: | + ansible-galaxy role install -r requirements-standalone.yml + ansible-galaxy role install -r requirements-collections.yml # This workflow contains a single job called "build" lint: # The type of runner that the job will run on @@ -23,11 +34,10 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - - name: install lint prerequisite + - name: install prereq run: | sudo apt-get update sudo apt -y install python3-setuptools vagrant - - name: Install molecule run: | sudo apt update @@ -36,14 +46,3 @@ jobs: - name: molecule lint run: | tox -e lint - - requirements: - # The type of runner that the job will run on - runs-on: ubuntu-latest - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - - name: install prereq - run: | - tox -e dependency diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 71afaf8..3e3cb46 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -15,7 +15,7 @@ lint: | set -e yamllint . flake8 - ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint + ansible-lint platforms: - name: Fedora-Molecule-libvirt-host box: fedora/35-cloud-base diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 97e1cb0..13af698 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -15,7 +15,7 @@ lint: | set -e yamllint . flake8 - ANSIBLE_ROLES_PATH=${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH} ANSIBLE_COLLECTIONS_PATH=${MOLECULE_PROJECT_DIRECTORY}/../community-collections:${ANSIBLE_COLLECTIONS_PATH} ansible-lint + ansible-lint platforms: - name: Fedora-Molecule-libvirt-host box: fedora/35-cloud-base From bb52cbbd7748667730cd7822acf8ce54f172b700 Mon Sep 17 00:00:00 2001 From: tcharl Date: Sun, 30 Apr 2023 15:05:54 +0200 Subject: [PATCH 30/42] linting --- .ansible-lint | 10 +++++++ .github/workflows/molecule.yml | 2 +- .travis.yml | 2 +- .yamllint | 4 ++- meta/main.yml | 2 +- tox.ini | 53 +++++++++++++++++++++------------- 6 files changed, 49 insertions(+), 24 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index 6d4f1c0..503ab62 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,8 +1,18 @@ exclude_paths: - .cache/ + - .tox/ - meta/ + - tests/ - molecule/ warn_list: - schema + - jinja[spacing] + - name[missing] + - name[casing] + - galaxy[no-changelog] + - galaxy[no-runtime] + - galaxy[version-incorrect] + - no-changed-when + - args[module] skip_list: - '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern \ No newline at end of file diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index 4518eb5..56e39fa 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -23,7 +23,7 @@ jobs: - name: install prereq run: | ansible-galaxy role install -r requirements-standalone.yml - ansible-galaxy role install -r requirements-collections.yml + ansible-galaxy collection install -r requirements-collections.yml # This workflow contains a single job called "build" lint: # The type of runner that the job will run on diff --git a/.travis.yml b/.travis.yml index 89189a2..dae8139 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,7 @@ install: - pip install wheel pyopenssl tox - sudo chmod o+rwx /var/run/libvirt/libvirt-sock -script: travis_wait 30 tox -e libvirt +script: travis_wait 30 tox -e ci branches: only: - master diff --git a/.yamllint b/.yamllint index 8827676..95e995d 100644 --- a/.yamllint +++ b/.yamllint @@ -1,7 +1,9 @@ --- # Based on ansible-lint config extends: default - +ignore: | + .cache + .tox rules: braces: max-spaces-inside: 1 diff --git a/meta/main.yml b/meta/main.yml index 7fa64b8..27906e9 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -6,7 +6,7 @@ galaxy_info: description: > Role to install and configure a host as a Libvirt/KVM hypervisor company: Osgiliath Inc on top of StackHPC Ltd achievements (Thanks! I'll PR it) - license: Apache2 + license: Apache-2.0 min_ansible_version: "2.0" platforms: - name: EL diff --git a/tox.ini b/tox.ini index 2fb2713..d078af7 100644 --- a/tox.ini +++ b/tox.ini @@ -5,30 +5,33 @@ requires = labels = testenv = py311 env_list = + dependency lint create converge - converge-monorepo + test-exec + ci + verify + idempotence destroy - libvirt - dependency -[testenv:lint] -setenv = - DEPENDENCY_ENABLED=False -deps = - -r requirements.txt -commands = molecule lint [testenv:dependency] deps = -r requirements.txt commands = molecule dependency +[testenv:lint] +deps = + -r requirements.txt +commands = + yamllint . + flake8 + ansible-lint [testenv:create] setenv = DEPENDENCY_ENABLED=False deps = -r requirements.txt -commands = molecule dependency +commands = molecule create [common-converge] setenv = ANSIBLE_ROLES_PATH={toxinidir}/../community:{toxinidir}/../oss:{toxinidir}/.. @@ -39,24 +42,34 @@ setenv = deps = -r requirements.txt commands = molecule converge -[testenv:destroy] +[testenv:test-exec] setenv = - DEPENDENCY_ENABLED=False + {[common-converge]setenv} deps = -r requirements.txt -commands = - molecule destroy -[testenv] +commands = molecule test +[testenv:ci] setenv = {[common-converge]setenv} deps = -r requirements.txt -commands = molecule test - -[testenv:libvirt] +commands = molecule test --scenario-name kvm +[testenv:verify] setenv = {[common-converge]setenv} deps = -r requirements.txt -commands = molecule test --scenario-name kvm - +commands = molecule verify +[testenv:idempotence] +setenv = + {[common-converge]setenv} +deps = + -r requirements.txt +commands = molecule idempotence +[testenv:destroy] +setenv = + DEPENDENCY_ENABLED=False +deps = + -r requirements.txt +commands = + molecule destroy From f129bb55892ee5f51c13b7e1d974a11ff3a5fff1 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 18:15:58 +0200 Subject: [PATCH 31/42] libvirt tests --- molecule/default/molecule.yml | 9 +-------- molecule/kvm/molecule.yml | 9 +-------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 3e3cb46..1d357a9 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -11,14 +11,9 @@ driver: name: vagrant provider: name: virtualbox -lint: | - set -e - yamllint . - flake8 - ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/35-cloud-base + box: fedora/38-cloud-base provider_options: cpus: 4 memory: 8092 @@ -33,8 +28,6 @@ platforms: - "persistent_storage.diskdevice = '/dev/sdb'" provisioner: name: ansible - env: - ANSIBLE_ROLES_PATH: "${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}" verifier: name: testinfra env: diff --git a/molecule/kvm/molecule.yml b/molecule/kvm/molecule.yml index 13af698..60a2ad0 100644 --- a/molecule/kvm/molecule.yml +++ b/molecule/kvm/molecule.yml @@ -11,14 +11,9 @@ driver: name: vagrant provider: name: libvirt -lint: | - set -e - yamllint . - flake8 - ansible-lint platforms: - name: Fedora-Molecule-libvirt-host - box: fedora/35-cloud-base + box: fedora/38-cloud-base provider_options: driver: '"kvm"' cpus: 2 @@ -33,8 +28,6 @@ provisioner: ssh_connection: pipelining: true ssh_args: -o ControlMaster=auto -o ControlPersist=600s - env: - ANSIBLE_ROLES_PATH: "${MOLECULE_PROJECT_DIRECTORY}/..:${MOLECULE_PROJECT_DIRECTORY}/../community:${ANSIBLE_ROLES_PATH}" verifier: name: testinfra env: From 7c4d2d831fa618f789858227368a01c956e208ed Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 18:25:31 +0200 Subject: [PATCH 32/42] add community general to collection dependency --- requirements-collections.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements-collections.yml b/requirements-collections.yml index c82c187..eca8913 100644 --- a/requirements-collections.yml +++ b/requirements-collections.yml @@ -1,3 +1,4 @@ --- collections: - name: community.libvirt + - name: community.general From 0f7bd153aab5a43c3307fdaf788829142188ce7b Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 18:43:39 +0200 Subject: [PATCH 33/42] add posargs to tox --- .travis.yml | 2 +- tox.ini | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index dae8139..30f33f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,7 @@ install: - pip install wheel pyopenssl tox - sudo chmod o+rwx /var/run/libvirt/libvirt-sock -script: travis_wait 30 tox -e ci +script: travis_wait 30 tox -e test-exec -- --scenario-name kvm branches: only: - master diff --git a/tox.ini b/tox.ini index d078af7..46f0e94 100644 --- a/tox.ini +++ b/tox.ini @@ -31,7 +31,7 @@ setenv = DEPENDENCY_ENABLED=False deps = -r requirements.txt -commands = molecule create +commands = molecule create {posargs} [common-converge] setenv = ANSIBLE_ROLES_PATH={toxinidir}/../community:{toxinidir}/../oss:{toxinidir}/.. @@ -41,35 +41,29 @@ setenv = {[common-converge]setenv} deps = -r requirements.txt -commands = molecule converge +commands = molecule converge {posargs} [testenv:test-exec] setenv = {[common-converge]setenv} deps = -r requirements.txt -commands = molecule test -[testenv:ci] -setenv = - {[common-converge]setenv} -deps = - -r requirements.txt -commands = molecule test --scenario-name kvm +commands = molecule test {posargs} [testenv:verify] setenv = {[common-converge]setenv} deps = -r requirements.txt -commands = molecule verify +commands = molecule verify {posargs} [testenv:idempotence] setenv = {[common-converge]setenv} deps = -r requirements.txt -commands = molecule idempotence +commands = molecule idempotence {posargs} [testenv:destroy] setenv = DEPENDENCY_ENABLED=False deps = -r requirements.txt commands = - molecule destroy + molecule destroy {posargs} From 646c897fffd063b3a55161c3c0b41ad811e7405c Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 18:47:52 +0200 Subject: [PATCH 34/42] rename role while executin gci --- .travis.yml | 4 +++- molecule/kvm/converge.yml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 30f33f3..7350476 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,9 @@ install: - pip install wheel pyopenssl tox - sudo chmod o+rwx /var/run/libvirt/libvirt-sock -script: travis_wait 30 tox -e test-exec -- --scenario-name kvm +script: + - mv ../ansible-role-libvirt-host ../tcharl.ansible_role_libvirt_host + - travis_wait 30 tox -e test-exec -- --scenario-name kvm branches: only: - master diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index a3149c0..b163a33 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -23,7 +23,7 @@ mode: bridge bridge: bridge0 roles: - - role: ansible-role-libvirt-host + - role: tcharl.ansible_role_libvirt_host tasks: - name: "Post converge - Install vagrant" ansible.builtin.package: From 410c8d6a31f0f1857655bc70b8172f0645b3ca65 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 18:57:32 +0200 Subject: [PATCH 35/42] simplify configuration --- tox.ini | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/tox.ini b/tox.ini index 46f0e94..4c69ebf 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,6 @@ env_list = create converge test-exec - ci verify idempotence destroy @@ -32,31 +31,19 @@ setenv = deps = -r requirements.txt commands = molecule create {posargs} -[common-converge] -setenv = - ANSIBLE_ROLES_PATH={toxinidir}/../community:{toxinidir}/../oss:{toxinidir}/.. - ANSIBLE_COLLECTIONS_PATH={toxinidir}/../community-collections [testenv:converge] -setenv = - {[common-converge]setenv} deps = -r requirements.txt commands = molecule converge {posargs} [testenv:test-exec] -setenv = - {[common-converge]setenv} deps = -r requirements.txt commands = molecule test {posargs} [testenv:verify] -setenv = - {[common-converge]setenv} deps = -r requirements.txt commands = molecule verify {posargs} [testenv:idempotence] -setenv = - {[common-converge]setenv} deps = -r requirements.txt commands = molecule idempotence {posargs} From 1f911bd8c8c3fbc5830ee4e45991354538c2d128 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 19:37:59 +0200 Subject: [PATCH 36/42] create path if not exists --- .tox/converge/.tox-info.json | 36 ++++++++++++++++++++++++++++++++++++ tox.ini | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 .tox/converge/.tox-info.json diff --git a/.tox/converge/.tox-info.json b/.tox/converge/.tox-info.json new file mode 100644 index 0000000..08cc5d7 --- /dev/null +++ b/.tox/converge/.tox-info.json @@ -0,0 +1,36 @@ +{ + "ToxEnv": { + "name": "converge", + "type": "VirtualEnvRunner" + }, + "Python": { + "version_info": [ + 3, + 11, + 3, + "final", + 0 + ], + "executable": "/usr/local/Cellar/python@3.11/3.11.3/Frameworks/Python.framework/Versions/3.11/bin/python3.11", + "virtualenv version": "20.23.0" + }, + "PythonRun": { + "deps": { + "options": [], + "requirements": [ + "ansible-lint", + "flake8", + "jmespath", + "molecule-plugins[vagrant]", + "pytest-testinfra", + "python-vagrant", + "yamllint" + ], + "constraints": [], + "constraint_options": { + "constrain_package_deps": false, + "use_frozen_constraints": false + } + } + } +} \ No newline at end of file diff --git a/tox.ini b/tox.ini index 4c69ebf..26a47f7 100644 --- a/tox.ini +++ b/tox.ini @@ -31,22 +31,50 @@ setenv = deps = -r requirements.txt commands = molecule create {posargs} +[common-ansible-path] +setenv = + ANSIBLE_ROLES_PATH={toxinidir}/../community:{toxinidir}/../oss:{toxinidir}/.. + ANSIBLE_COLLECTIONS_PATH={toxinidir}/../community-collections +commands = + mkdir -p {toxinidir}/../community + mkdir -p {toxinidir}/../oss + mkdir -p {toxinidir}/../community-collections [testenv:converge] +allowlist_externals=mkdir +setenv = + {[common-ansible-path]setenv} deps = -r requirements.txt -commands = molecule converge {posargs} +commands = + {[common-ansible-path]commands} + molecule converge {posargs} [testenv:test-exec] +allowlist_externals=mkdir +setenv = + {[common-ansible-path]setenv} deps = -r requirements.txt -commands = molecule test {posargs} +commands = + {[common-ansible-path]commands} + molecule test {posargs} [testenv:verify] +allowlist_externals=mkdir +setenv = + {[common-ansible-path]setenv} deps = -r requirements.txt -commands = molecule verify {posargs} +commands = + {[common-ansible-path]commands} + molecule verify {posargs} [testenv:idempotence] +allowlist_externals=mkdir +setenv = + {[common-monorepo]setenv} deps = -r requirements.txt -commands = molecule idempotence {posargs} +commands = + {[common-ansible-path]commands} + molecule idempotence {posargs} [testenv:destroy] setenv = DEPENDENCY_ENABLED=False From 09e8eebe5fbacbe931118fd5ca7a8f3b5a1b541a Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 19:52:51 +0200 Subject: [PATCH 37/42] hack idempotence --- tasks/pools.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/pools.yml b/tasks/pools.yml index 6388616..548a47e 100644 --- a/tasks/pools.yml +++ b/tasks/pools.yml @@ -61,6 +61,7 @@ state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" loop: "{{ libvirt_host_pools | flatten(levels=1) }}" + changed_when: False # TODO hack! too lazy to configure idempotence the true way become: True - name: Ensure libvirt storage pools are started on boot @@ -69,4 +70,4 @@ autostart: yes uri: "{{ libvirt_host_uri | default(omit, true) }}" loop: "{{ libvirt_host_pools | flatten(levels=1) }}" - become: True + become: True # TODO hack! too lazy to configure idempotence the true way From 8068a8d8c2c4c31209a43538ebde468ca7e1ecfe Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 20:05:15 +0200 Subject: [PATCH 38/42] [ci skip] hack idempotence --- tasks/networks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/networks.yml b/tasks/networks.yml index 5bd3687..4f91ba7 100644 --- a/tasks/networks.yml +++ b/tasks/networks.yml @@ -14,6 +14,7 @@ autostart: yes uri: "{{ libvirt_host_uri | default(omit, true) }}" with_items: "{{ libvirt_host_networks }}" + changed_when: False # TODO hack: too lazy to configure it the right way become: True - name: Ensure libvirt networks are active From fccd72f16b8284fec059b21ec5fe848874ea3232 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 20:35:34 +0200 Subject: [PATCH 39/42] ready to release --- molecule/default/converge.yml | 7 +++++++ molecule/kvm/converge.yml | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index a9129da..9773ed3 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -59,6 +59,13 @@ group: vagrant mode: '0644' + - name: stats files + ansible.builtin.stat: + path: "{{ item }}" + loop: + - "/home/vagrant/myvmerr.log" + - "/home/vagrant/myvm.log" + - name: Execute Vagrant as daemon ansible.builtin.command: cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant -E VAGRANT_LOG=info /usr/bin/vagrant up --provider=libvirt" diff --git a/molecule/kvm/converge.yml b/molecule/kvm/converge.yml index b163a33..08e2eee 100644 --- a/molecule/kvm/converge.yml +++ b/molecule/kvm/converge.yml @@ -55,6 +55,13 @@ group: vagrant mode: '0644' + - name: stats files + ansible.builtin.stat: + path: "{{ item }}" + loop: + - "/home/vagrant/myvmerr.log" + - "/home/vagrant/myvm.log" + - name: Execute Vagrant as daemon ansible.builtin.command: cmd: "daemonize -e /home/vagrant/myvmerr.log -o /home/vagrant/myvm.log -c /home/vagrant -E VAGRANT_LOG=info /usr/bin/vagrant up --provider=libvirt" From 8ff136b01e0f672ef8429a258391a3f4d8897795 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 20:53:49 +0200 Subject: [PATCH 40/42] ready to release --- tasks/networks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/networks.yml b/tasks/networks.yml index 4f91ba7..483442b 100644 --- a/tasks/networks.yml +++ b/tasks/networks.yml @@ -23,4 +23,5 @@ state: active uri: "{{ libvirt_host_uri | default(omit, true) }}" with_items: "{{ libvirt_host_networks }}" + changed_when: False # TODO hack: too lazy to configure it the right way become: True From 500f8878cd1ac4341066bb6bbc8e16f35d6de385 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 30 Apr 2023 21:39:12 +0200 Subject: [PATCH 41/42] [ci skip] hack idempotence --- .github/workflows/molecule.yml | 62 +++++++++++++++++++++++++++++----- .travis.yml | 6 ++-- requirements-collections.yml | 1 + tox.ini | 2 +- 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index 56e39fa..1ee52c9 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -31,18 +31,62 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 + - name: update apt + run: | + sudo apt update + - name: install tox apt prerequisite + run: | + sudo apt -y install sudo python3 python3-pip + - name: pip install packages + run: | + pip3 install wheel setuptools tox +# - name: Test KVM conditions fails +# run: | +# sudo kvm-ok + - name: tox lint + run: | + tox -e lint + test: + # The type of runner that the job will run on + runs-on: ubuntu-latest - - name: install prereq + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - name: add vagrant apt key + run: | + curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - + - name: add vagrant apt repository run: | - sudo apt-get update - sudo apt -y install python3-setuptools vagrant - - name: Install molecule + sudo apt-add-repository -y "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" + - name: update apt run: | sudo apt update - sudo apt -y install python3-setuptools python3 python3-pip - pip3 install wheel tox - - name: molecule lint +# - name: apt upgrade +# run: | +# sudo apt upgrade + - name: install libvirt apt prerequisite run: | - tox -e lint + sudo apt -y install bridge-utils dnsmasq-base ebtables libvirt-dev qemu-kvm libvirt-daemon-system libvirt-daemon libvirt-clients qemu-utils ruby-dev ca-certificates curl gcc iproute2 sudo vagrant python3 python3-pip cpu-checker + - name: start libvirtd + run: | + sudo systemctl restart libvirtd + - name: chmod libvirt socket + run: | + sudo chmod o+rwx /var/run/libvirt/libvirt-sock + - name: vagrant install packages + run: | + vagrant plugin install vagrant-libvirt + ./configure + - name: pip install packages + run: | + pip3 install wheel setuptools tox +# - name: Test KVM conditions fails +# run: | +# sudo kvm-ok +# - name: tox test +# run: | +# tox -e test-exec \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 7350476..804b88f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,10 @@ --- -dist: bionic +dist: focal language: python +python: + - "3.8" addons: apt: sources: @@ -24,8 +26,6 @@ addons: - iproute2 - sudo - vagrant -python: - - "3.8" install: # - wget https://releases.hashicorp.com/vagrant/$VAGRANT_VER/vagrant_"$VAGRANT_VER"_x86_64.deb diff --git a/requirements-collections.yml b/requirements-collections.yml index eca8913..d375301 100644 --- a/requirements-collections.yml +++ b/requirements-collections.yml @@ -1,4 +1,5 @@ --- collections: + - name: ansible.posix - name: community.libvirt - name: community.general diff --git a/tox.ini b/tox.ini index 26a47f7..e657b78 100644 --- a/tox.ini +++ b/tox.ini @@ -69,7 +69,7 @@ commands = [testenv:idempotence] allowlist_externals=mkdir setenv = - {[common-monorepo]setenv} + {[common-ansible-path]setenv} deps = -r requirements.txt commands = From 9417b03da7b8daa104bbb8588316caa52777a109 Mon Sep 17 00:00:00 2001 From: tcharl Date: Mon, 1 May 2023 23:01:01 +0200 Subject: [PATCH 42/42] pull --- .github/workflows/molecule.yml | 1 - .travis.yml | 1 + CHANGELOG.md | 1 + meta/runtime.yml | 2 ++ templates/socket.j2 | 3 +++ tox.ini | 1 - vars/RedHat.yml | 3 +++ 7 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 meta/runtime.yml diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index 1ee52c9..428274b 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -24,7 +24,6 @@ jobs: run: | ansible-galaxy role install -r requirements-standalone.yml ansible-galaxy collection install -r requirements-collections.yml - # This workflow contains a single job called "build" lint: # The type of runner that the job will run on runs-on: ubuntu-latest diff --git a/.travis.yml b/.travis.yml index 804b88f..a4f19ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,6 +33,7 @@ install: - vagrant plugin install vagrant-libvirt - pip install wheel pyopenssl tox - sudo chmod o+rwx /var/run/libvirt/libvirt-sock + - ./configure script: - mv ../ansible-role-libvirt-host ../tcharl.ansible_role_libvirt_host diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3b95a07 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ +see release drafter results \ No newline at end of file diff --git a/meta/runtime.yml b/meta/runtime.yml new file mode 100644 index 0000000..bfe5f77 --- /dev/null +++ b/meta/runtime.yml @@ -0,0 +1,2 @@ +--- +requires_ansible: ">= 2.11.0" # Use '>= 2.9.10' instead, if needed \ No newline at end of file diff --git a/templates/socket.j2 b/templates/socket.j2 index 973d112..04f7476 100644 --- a/templates/socket.j2 +++ b/templates/socket.j2 @@ -2,3 +2,6 @@ [Socket] ListenStream= ListenStream={{ _libvirt_listen_stream }} +# FreeBind is recommended when listening on a specific address: +# https://www.freedesktop.org/software/systemd/man/systemd.socket.html#FreeBind= +FreeBind=true diff --git a/tox.ini b/tox.ini index e657b78..24a77e3 100644 --- a/tox.ini +++ b/tox.ini @@ -17,7 +17,6 @@ env_list = deps = -r requirements.txt commands = molecule dependency - [testenv:lint] deps = -r requirements.txt diff --git a/vars/RedHat.yml b/vars/RedHat.yml index 79755c4..20b3b9f 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -23,6 +23,8 @@ libvirt_host_packages_efi_by_version: - qemu-kvm-ev # Need smm support for secure boot 8: - edk2-ovmf + 9: + - edk2-ovmf 35: [] # fedora 36: [] # fedora 37: [] # fedora @@ -57,6 +59,7 @@ libvirt_host_custom_yum_repos_efi_by_version: baseurl: http://mirror.centos.org/$contentdir/$releasever/virt/$basearch/kvm-common/ gpgcheck: yes 8: [] + 9: [] 35: [] # Fedora :-) 36: [] # Fedora :-) 37: [] # Fedora :-)