Hey Jonathan,
Thanks for this.
I've figured it out using the previous examples and some more googleing :)
I got it to execute a shell command which i what I needed it to do:
- shell: pvcreate /dev/"{{ item.key }}"
with_dict: ansible_devices
when: not item.value.partitions and item.key != "sr0" and item.key !=
"fd0"
Thanks again
On Monday, November 16, 2015 at 5:34:32 PM UTC+2, Jonathan Davila wrote:
>
> 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/98e1c20d-c6fb-45a7-85a6-6297e00c0a73%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.