- name: 'Partition'
tags: ['fs', 'fs-ext4']
vars:
vdcnames: 'ls -l /dev/disk/by-id | grep "{{volume[items["name"]]}}" | head -1 | cut -d "/" -f 1'
tasks:
- name: 'Get vdcnames value'
shell:
cmd: '{{ vdcnames }}'
register: 'vdcnames_out'
- name: 'Resizing the partition'
shell:
cmd: >
sgdisk -e {{ items.device | d( volume[items["name"]] ) }} &&
parted -m -s -a opt {{ items.device | d( vdcnames_out.stdout ) }} resizepart 1 100%
when:
- 'not items.skipped | d(False)'
- 'items["drive"]["name"] | d("") == "trwer"'
- 'items["partitions"] | d([]) | count == 1'
loop: '{{ volumes.results }}'
loop_control:
label: '{{ items.name }}'
以上代码位于roles/abc/main.yml中。我收到上述代码的以下错误
ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>
The error appears to be in '/roles/abc/main.yml': line 20, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: 'Partition'
^ here
我修改了解决语法问题的代码如下,但仍然是相同的错误
- name: 'Partition'
tags: ['fs', 'fs-ext4']
vars:
vdcnames: 'ls -l /dev/disk/by-id | grep "{{volume[items["name"]]}}" | head -1 | cut -d "/" -f 1'
tasks:
- name: 'Get vdcnames value'
shell:
cmd: '{{ vdcnames }}'
register: 'vdcnames_out'
loop: '{{ volumes.results }}'
loop_control:
label: '{{ items.name }}'
when:
- 'not items.skipped | d(False)'
- 'items["drive"]["name"] | d("") == "trwer"'
- 'items["partitions"] | d([]) | count == 1'
- name: 'Resizing the partition'
shell: |
sgdisk -e {{ items.device | d( volume[items["name"]] ) }} &&
parted -m -s -a opt {{ items.device | d( vdcnames_out.stdout ) }} resizepart 1 100%
loop: '{{ volumes.results }}'
loop_control:
label: '{{ items.name }}'
我试图通过ansible调整磁盘大小,但遇到了这个错误。有人可以帮我看看错误到底是什么吗? 我尝试了很多通过修改代码来解决这个问题,但错误仍然是相同的,不知道为什么。
不知道这是否有帮助。但是,从 Ansible 2.0 开始,文件系统模块中有 resizefs 选项,默认情况下为 false,并且支持 ext4。
如果是,如果块设备和文件系统大小不同,请将文件系统增长到空间中。支持 ext2、ext3、ext4、ext4dev、f2fs、lvm、xfs、vfat、交换文件系统。
https://docs.ansible.com/ansible/latest/modules/filesystem_module.html
- name: 'Extend the FS'
filesystem:
fstype: 'ext4'
dev: '/dev/sda1'
resizefs: yes