remapping fstab entries from LABEL to UUID --- how?

908 views
Skip to first unread message

Dayton Jones

unread,
Mar 21, 2016, 11:18:21 AM3/21/16
to Ansible Project
I'm trying to read fstab and update any entry that uses "LABEL=" to use the UUID instead..

I can get the proper UUID mappings, but I can't seem to wrap my head around the actual replacement...

playbook:

  - name: Gather UUID mappings
    shell: "blkid -s UUID -o value -t LABEL={{item}}"
    with_items:
      - "/home"
      - "/var"
      - "/"
    ignore_errors: true
    register: "UUID"

  - name: Convert fstab LABEL entries to UUID format
    replace:
        dest=/etc/fstab
        regexp='LABEL={{ item }}'
        replace='UUID={{UUID.item}}'
        backup=yes
    with_items:
       - "/"
        - "/home"
        - "/var"

For the highlighted lines, what should I be using - or is there a better way (I've looked at the mount module, but didn't see a way to do this)

Brian Coca

unread,
Mar 21, 2016, 1:16:56 PM3/21/16
to ansible...@googlegroups.com
The issue is that with_ loops puts results in a list, under 'results' key, so `UUID.item` won't work, you need an index that matches, this might help.


--
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 ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/e30757f2-9437-4659-b2d5-d385db1a7910%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
----------
Brian Coca

Uditha Desilva

unread,
Mar 21, 2016, 1:21:49 PM3/21/16
to Ansible Project
I would suggest just getting the whole output of "blkid", then filtering the lines you want with the "search" filter, and then using "regex_replace" to get the bits you want, and finally passing those to the replace module.

Be aware, however, that "LABEL=/" is likely to match everything, so you probably want to put some whitespace around the regex.
Reply all
Reply to author
Forward
0 new messages