Hi Team,

I am using RHEL v8.10 and I have  written ansible playbook to partition
disk /dev/sda3  created, logical volume vg-system-home  and vg-system-var
which i wanted to extend to 100G and 20G  but since this two are mounted
already .
 Either I am unmount them it gives resource busy or trying to extend the
disk or remove this native volume manager and add the new volume home and
mount on the /etc/fstab is not working . I  appreciate your immediate help
or guidance to fix this issue.

---
hosts: all

vars:
extra_volumes: "true"

logical_volumes:
  - name: home
    size: "100G"
    mount_path: "/home"
    vgroup: "system"
    fstype: "ext4"

  - name: var
    size: "7G"
    mount_path: "/var"
    vgroup: "system"
    fstype: "ext4"

  - name: opt
    size: "1G"
    mount_path: "/opt"
    vgroup: "system"
    fstype: "ext4"

  - name: opt_ibm
    size: "20G"
    mount_path: "/opt/ibm"
    vgroup: "system"
    fstype: "ext4"

tasks:
- name: "Get machine facts"
  ansible.builtin.setup:
  register: machine_facts

- name: "Set the variable start_4th_partition"
  ansible.builtin.set_fact:
    start_4th_partition: "{{
(machine_facts.ansible_facts.ansible_devices['sda'].partitions['sda3'].start|int
+
machine_facts.ansible_facts.ansible_devices['sda'].partitions['sda3'].sectors|int
+ 200)|int }}"

- name: "Create partition"
  become: true
  parted: # community.general.parted does not work in Ansible 2.9
    device: /dev/sda
    state: present
    number: 4
    unit: "s"
    part_start: "{{ start_4th_partition|int }}s"
    part_end: "100%"
    label: "gpt"
  when: extra_volumes is defined

- name: "Update the volume group (adding new partition)"
  become: true
  lvg: # community.general.lvg does not work in Ansible 2.9
    vg: system
    pvs: /dev/sda4
  when: extra_volumes is defined

- name: "Ensure the correct capacity for logical volume"
  become: true
  lvol: # community.general.lvol does not work in Ansible 2.9
    vg: "{{ item.vgroup }}"
    lv: "{{ item.name }}"
    size: "{{ item.size }}"
    resizefs: true
    force: true
  loop: "{{ logical_volumes }}"
  when: extra_volumes is defined

- name: Create or resize a volume group on top of /dev/sdb1 and /dev/sdc5.
  community.general.lvg:
    vg: vg.services
    pvs: /dev/sda3,/dev/sda4

- name: "Resize ext4 var Filesystem on logical volume"
  become: true
  filesystem: # community.general.filesystem does not work in Ansible 2.9
    dev: "/dev/system/home"
    fstype: "ext4"
    resizefs: true
  when: extra_volumes is defined

- name: "Ensure Logical Volume is mounted"
  become: true
  mount: # ansible.posix.mount does not work in Ansible 2.9
    path: "{{ item.mount_path }}"
    src: "/dev/{{ item.vgroup }}/{{ item.name }}"
    fstype: "{{ item.fstype }}"
    opts: "{{ item.opts | default('noatime') }}"
    state: mounted
  loop: "{{ logical_volumes }}"
  when: extra_volumes is defined
  notify: reboot-vm

[image: image.png]

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAF%3DeWb%2B_90-K_O%2BKi7UX0wkYEfKwh2iDzxc9LeyduQGwQzth2A%40mail.gmail.com.

Reply via email to