DS, 

Try this. 

This simple example will print the device name whenever the device has no 
partitions


- name: Loop facts
  hosts: localhost
  connection: local
  tasks:
    - name: looping
      debug:
        msg: "{{ item.key }}"
      when: "not {{ item.value.partitions }}"
      with_dict: ansible_devices





On Saturday, November 14, 2015 at 5:34:11 PM UTC-5, DS wrote:
>
> Hey Guys,
>
> I have the exact same issue where I need to find the drive that does not 
> have any partitions on it.
>
> so I have the exact same output from ansible_devices but I can't figure 
> out how I load the output into ansible so I can run the filter on it
>
> basically i need an output like /dev/sdb  or /dev/sdb or whatever the 
> actual device name is that does not have partitions on it so I can then use 
> that value in a subsequent - command: /usr/sbin//fdisk -l <device> for 
> example - command: /usr/sbin/fdisk -l /dev/sdb
>
> any help will be much appreciated
>
> Thanks
>
> On Tuesday, March 24, 2015 at 12:23:41 PM UTC+2, Edgars wrote:
>>
>> Hi
>>
>> I have some troubles to understand how to loop over facts in playbook. 
>> Suppose I have the following:
>>
>>
>> ansible node01 -m setup -a 'filter=ansible_devices'
>> SSH password:
>> SU password[defaults to SSH password]:
>> node01 | success >> {
>>     "ansible_facts": {
>>         "ansible_devices": {
>>             "sda": {
>>                 "holders": [],
>>                 "host": "Serial Attached SCSI controller: VMware PVSCSI 
>> SCSI Controller (rev 02)",
>>                 "model": "Virtual disk",
>>                 "partitions": {
>>                     "sda1": {
>>                         "sectors": "204800",
>>                         "sectorsize": 512,
>>                         "size": "100.00 MB",
>>                         "start": "2048"
>>                     },
>>                     "sda2": {
>>                         "sectors": "104650752",
>>                         "sectorsize": 512,
>>                         "size": "49.90 GB",
>>                         "start": "206848"
>>                     }
>>                 },
>>                 "removable": "0",
>>                 "rotational": "1",
>>                 "scheduler_mode": "noop",
>>                 "sectors": "104857600",
>>                 "sectorsize": "512",
>>                 "size": "50.00 GB",
>>                 "support_discard": "0",
>>                 "vendor": "VMware"
>>             },
>>             "sdb": {
>>                 "holders": [],
>>                 "host": "Serial Attached SCSI controller: VMware PVSCSI 
>> SCSI Controller (rev 02)",
>>                 "model": "Virtual disk",
>>                 "partitions": {
>>                     "sdb1": {
>>                         "sectors": "10469376",
>>                         "sectorsize": 512,
>>                         "size": "4.99 GB",
>>                         "start": "16384"
>>                     }
>>                 },
>>                 "removable": "0",
>>                 "rotational": "1",
>>                 "scheduler_mode": "noop",
>>                 "sectors": "10485760",
>>                 "sectorsize": "512",
>>                 "size": "5.00 GB",
>>                 "support_discard": "0",
>>                 "vendor": "VMware"
>>             },
>>             "sdc": {
>>                 "holders": [],
>>                 "host": "Serial Attached SCSI controller: VMware PVSCSI 
>> SCSI Controller (rev 02)",
>>                 "model": "Virtual disk",
>>                 "partitions": {},
>>                 "removable": "0",
>>                 "rotational": "1",
>>                 "scheduler_mode": "noop",
>>                 "sectors": "14680064",
>>                 "sectorsize": "512",
>>                 "size": "7.00 GB",
>>                 "support_discard": "0",
>>                 "vendor": "VMware"
>>             }
>>         }
>>     },
>>     "changed": false
>> }
>>
>> So there are 3 disks: sda, sdb and sdc. Two of them has partitions, one 
>> does not. So I want to loop over all disks and check which disk have 
>> partitions and which does not have and then do something about it. I know I 
>> can do something like this:
>>
>> {{ ansible_devices['sda']['partitions'] }}
>>
>> But when I will run this playbook I will not know neither disk labels nor 
>> number of disks.
>>
>> Any ideas?
>>
>> Thanks
>> Edgars
>>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/337bbbd9-b4db-4614-80a8-e191f01512a0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to