如何解决Ansible:检查磁盘大小并根据其大小创建卷组
第一个节点的sdb大小为1GB 第二个节点sdb大小为600M 只是我无法检查磁盘的大小。执行以下剧本时出现错误(显示大小为0值)。
---
- hosts: all
become: yes
tasks:
- debug:
msg: "{{ ansible_devices.sdb.size }} is less than 800"
when: ansible_devices.sdb.size|int < 800
$ ansible-playbook lvm-new.yml
ansible-playbook lvm-new.yml
PLAY [all] ***********************************************************************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************************************************
ok: [servera]
ok: [serverb]
TASK [debug] *********************************************************************************************************************************************************************
ok: [serverb] => {
"msg": "600.00 MB is less than 800"
}
ok: [servera] => {
"msg": "1.00 GB is less than 800"
}
PLAY RECAP ***********************************************************************************************************************************************************************
servera : ok=2 changed=0 unreachable=0 failed=0
serverb : ok=2 changed=0 unreachable=0 failed=0
您能协助解决此任务吗?
解决方法
我已经通过以下方式解决了
---
- hosts: all
become: yes
tasks:
- block:
- parted: device=/dev/sdb unit=MiB
register: sdb_info
- debug:
msg: '{{ sdb_info.disk.size }}'
- debug:
msg: "{{ sdb_info.disk.size }} greater than 800"
when: " sdb_info.disk.size > 800"
- debug:
msg: "{{ sdb_info.disk.size }} less than 800"
when: " sdb_info.disk.size < 800"
ansible-playbook lvm-new.yml
PLAY [all] *************************************************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************************************
ok: [servera]
ok: [serverb]
TASK [parted] **********************************************************************************************************************************************************
fatal: [serverb]: FAILED! => {"changed": false,"err": "Error: Could not stat device /dev/sdb - No such file or directory.\n","msg": "Error while getting device information with parted script: '/sbin/parted -s -m /dev/sdb -- unit 'MiB' print'","out": "","rc": 1}
ok: [servera]
TASK [debug] ***********************************************************************************************************************************************************
ok: [servera] => {
"msg": "1024.0"
}
TASK [debug] ***********************************************************************************************************************************************************
ok: [servera] => {
"msg": "1024.0 greater than 800"
}
TASK [debug] ***********************************************************************************************************************************************************
skipping: [servera]
TASK [debug] ***********************************************************************************************************************************************************
ok: [serverb] => {
"msg": "No disk detected"
}
PLAY RECAP *************************************************************************************************************************************************************
servera : ok=4 changed=0 unreachable=0 failed=0
serverb : ok=2 changed=0 unreachable=0 failed=1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。