community.general.parted module – Configure block device partitions
Note
This module is part of the community.general collection (version 10.1.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.parted
.
Synopsis
This module allows configuring block device partition using the
parted
command line tool. For a full description of the fields and the options check the GNU parted manual.
Requirements
The below requirements are needed on the host that executes this module.
Parameters
Parameter |
Comments |
---|---|
Set alignment for newly created partitions. Use Choices:
|
|
The block device (disk) where to operate. Regular files can also be partitioned, but it is recommended to create a loopback device using |
|
A list of the flags that has to be set on the partition. |
|
If specified and the partition does not exist, will set filesystem type to given partition. Parameter optional, but see notes below about negative |
|
Sets the name for the partition number (GPT, Mac, MIPS and PC98 only). |
|
The partition number being affected. Required when performing any action on the disk, except fetching information. |
|
Where the partition will end as offset from the beginning of the disk, that is, the “distance” from the start of the disk. Negative numbers specify distance from the end of the disk. The distance can be specified with all the units supported by parted (except compat) and it is case sensitive, for example Default: |
|
Where the partition will start as offset from the beginning of the disk, that is, the “distance” from the start of the disk. Negative numbers specify distance from the end of the disk. The distance can be specified with all the units supported by parted (except compat) and it is case sensitive, for example Using negative values may require setting of Default: |
|
May be specified only with Neither Choices:
|
|
Call Choices:
|
|
Whether to create or delete a partition. If set to Choices:
|
|
Selects the current default unit that Parted will use to display locations and capacities on the disk and to interpret those given by the user if they are not suffixed by an unit. When fetching information about a disk, it is recommended to always specify a unit. Choices:
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: full |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
Notes
Note
When fetching information about a new disk and when the version of parted installed on the system is before version 3.1, the module queries the kernel through
/sys/
to obtain disk information. In this case the units CHS and CYL are not supported.Negative
part_start
start values were rejected iffs_type
was not given. This bug was fixed in parted 3.2.153. If you want to use negativepart_start
, specifyfs_type
as well or make sure your system contains newer parted.
Examples
- name: Create a new ext4 primary partition
community.general.parted:
device: /dev/sdb
number: 1
state: present
fs_type: ext4
- name: Remove partition number 1
community.general.parted:
device: /dev/sdb
number: 1
state: absent
- name: Create a new primary partition with a size of 1GiB
community.general.parted:
device: /dev/sdb
number: 1
state: present
part_end: 1GiB
- name: Create a new primary partition for LVM
community.general.parted:
device: /dev/sdb
number: 2
flags: [ lvm ]
state: present
part_start: 1GiB
- name: Create a new primary partition with a size of 1GiB at disk's end
community.general.parted:
device: /dev/sdb
number: 3
state: present
fs_type: ext3
part_start: -1GiB
# Example on how to read info and reuse it in subsequent task
- name: Read device information (always use unit when probing)
community.general.parted: device=/dev/sdb unit=MiB
register: sdb_info
- name: Remove all partitions from disk
community.general.parted:
device: /dev/sdb
number: '{{ item.num }}'
state: absent
loop: '{{ sdb_info.partitions }}'
- name: Extend an existing partition to fill all available space
community.general.parted:
device: /dev/sdb
number: "{{ sdb_info.partitions | length }}"
part_end: "100%"
resize: true
state: present
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Current partition information Returned: success Sample: |
|
Generic device information. Returned: success |
|
List of device partitions. Returned: success |
|
parted script executed by module Returned: success |