После того, как я ударил головой о стол на пару дней. Вот где я.Доступ к вложенным результатам команды Ansible приводит к списку
Цель: Создайте запись в файле/etc/fstab, используя «UUID =» в качестве точки монтирования.
В этом случае будет й количеством дисков на у числа хостов так просто положить информацию в файле Варс, к сожалению, не возможно. Также не будет никаких разделов или lvms, для этого приложения нам нужен JBOD с файловыми системами.
Мой подход: После нескольких проб и ошибок я достиг точки, где мои диски все отформатированные и они имеют UUID-х. Поэтому я пытаюсь зациклиться на своих устройствах, а затем вернуть свой UUID, чтобы использовать модуль монтирования для добавления в fstab.
Застрял в: После получения моего списка устройств лучшим способом, который я открыл для создания списка UUID устройства, является использование команды blkid и регистрация результатов. (см. ниже). Я думал, что если бы я мог получить доступ к вложенному UUID в 'results2'. Затем я мог бы свести имя устройства/UUID в новый факт для более легкого доступа позже.
#######
#get new facts
#######
- command: "/sbin/blkid -o device"
register: "result1"
- shell: '/sbin/blkid "{{ item }}" -o value'
register: "result2"
with_items: "{{ result1.stdout_lines }}"
#- debug: var="{{ result2.results }}"
- debug: "{{item}}"
with_together:
- "{{result1.stdout_lines}}"
- "{{result2.results}}"
Выход
PLAY [disk-test-node] **********************************************************
TASK [setup] *******************************************************************
ok: [31.212.212.123]
TASK [common : set_fact] *******************************************************
task path: /ansible/roles/common/tasks/main.yml:5
ok: [31.212.212.123] => (item={u'uuid': u'', u'size_total': 8319852544, u'mount': u'/', u'size_available': 7187308544, u'fstype': u'ext4', u'device': u'/dev/xvda1', u'options': u'rw'}) => {"ansible_facts": {"mounted_drives": "/dev/xvda1"}, "changed": false, "item": {"device": "/dev/xvda1", "fstype": "ext4", "mount": "/", "options": "rw", "size_available": 7187308544, "size_total": 8319852544, "uuid": ""}}
TASK [common : command] ********************************************************
task path: /ansible/roles/common/tasks/main.yml:39
changed: [31.212.212.123] => {"changed": true, "cmd": ["/sbin/blkid", "-o", "device"], "delta": "0:00:00.003729", "end": "2016-11-15 22:11:13.348422", "rc": 0, "start": "2016-11-15 22:11:13.344693", "stderr": "", "stdout": "/dev/xvda1\n/dev/xvdd\n/dev/xvde\n/dev/xvdb\n/dev/xvdc\n/dev/xvdh\n/dev/xvdi\n/dev/xvdf\n/dev/xvdg", "stdout_lines": ["/dev/xvda1", "/dev/xvdd", "/dev/xvde", "/dev/xvdb", "/dev/xvdc", "/dev/xvdh", "/dev/xvdi", "/dev/xvdf", "/dev/xvdg"], "warnings": []}
TASK [common : command] ********************************************************
task path: /ansible/roles/common/tasks/main.yml:42
changed: [31.212.212.123] => (item=/dev/xvda1) => {"changed": true, "cmd": "/sbin/blkid \"/dev/xvda1\" -o value", "delta": "0:00:00.002619", "end": "2016-11-15 22:11:15.693323", "item": "/dev/xvda1", "rc": 0, "start": "2016-11-15 22:11:15.690704", "stderr": "", "stdout": "cdbab22a-45d6-4cce-95a3-681f42187a46\next4", "stdout_lines": ["cdbab22a-45d6-4cce-95a3-681f42187a46", "ext4"], "warnings": []}
changed: [31.212.212.123] => (item=/dev/xvdd) => {"changed": true, "cmd": "/sbin/blkid \"/dev/xvdd\" -o value", "delta": "0:00:00.002580", "end": "2016-11-15 22:11:17.984917", "item": "/dev/xvdd", "rc": 0, "start": "2016-11-15 22:11:17.982337", "stderr": "", "stdout": "61b23af1-44dd-46c4-8e4b-2af2bd928f98\next4", "stdout_lines": ["61b23af1-44dd-46c4-8e4b-2af2bd928f98", "ext4"], "warnings": []}
Ее там! Вы можете увидеть UUID в "стандартный вывод" и "stdout_lines [0]"
Final Debug Loop после спаривания
TASK [common : debug] **********************************************************
task path: /ansible/roles/common/tasks/main.yml:48
ok: [31.212.212.123] => (item=[u'/dev/xvda1', {'_ansible_parsed': True, '_ansible_item_result': True, u'stdout': u'cdbab22a-45d6-4cce-95a3-681f42187a46\next4', '_ansible_no_log': False, u'warnings': [], u'changed': True, u'rc': 0, u'end': u'2016-11-15 22:11:15.693323', u'start': u'2016-11-15 22:11:15.690704', u'cmd': u'/sbin/blkid "/dev/xvda1" -o value', 'item': u'/dev/xvda1', u'delta': u'0:00:00.002619', 'invocation': {'module_name': u'command', u'module_args': {u'warn': True, u'executable': None, u'_uses_shell': True, u'_raw_params': u'/sbin/blkid "/dev/xvda1" -o value', u'removes': None, u'creates': None, u'chdir': None}}, 'stdout_lines': [u'cdbab22a-45d6-4cce-95a3-681f42187a46', u'ext4'], u'stderr': u''}]) => {
"<type 'list'>": "VARIABLE IS NOT DEFINED!",
"item": [
"/dev/xvda1",
{
"_ansible_item_result": true,
"_ansible_no_log": false,
"_ansible_parsed": true,
"changed": true,
"cmd": "/sbin/blkid \"/dev/xvda1\" -o value",
"delta": "0:00:00.002619",
"end": "2016-11-15 22:11:15.693323",
"invocation": {
"module_args": {
"_raw_params": "/sbin/blkid \"/dev/xvda1\" -o value",
"_uses_shell": true,
"chdir": null,
"creates": null,
"executable": null,
"removes": null,
"warn": true
},
"module_name": "command"
},
"item": "/dev/xvda1",
"rc": 0,
"start": "2016-11-15 22:11:15.690704",
"stderr": "",
"stdout": "cdbab22a-45d6-4cce-95a3-681f42187a46\next4",
"stdout_lines": [
"cdbab22a-45d6-4cce-95a3-681f42187a46",
"ext4"
],
"warnings": []
}
]
}
ok: [31.212.212.123] => (item=[u'/dev/xvdd', {'_ansible_parsed': True, '_ansible_item_result': True, u'stdout': u'61b23af1-44dd-46c4-8e4b-2af2bd928f98\next4', '_ansible_no_log': False, u'warnings': [], u'changed': True, u'rc': 0, u'end': u'2016-11-15 22:11:17.984917', u'start': u'2016-11-15 22:11:17.982337', u'cmd': u'/sbin/blkid "/dev/xvdd" -o value', 'item': u'/dev/xvdd', u'delta': u'0:00:00.002580', 'invocation': {'module_name': u'command', u'module_args': {u'warn': True, u'executable': None, u'_uses_shell': True, u'_raw_params': u'/sbin/blkid "/dev/xvdd" -o value', u'removes': None, u'creates': None, u'chdir': None}}, 'stdout_lines': [u'61b23af1-44dd-46c4-8e4b-2af2bd928f98', u'ext4'], u'stderr': u''}]) => {
"<type 'list'>": "VARIABLE IS NOT DEFINED!",
"item": [
"/dev/xvdd",
{
"_ansible_item_result": true,
"_ansible_no_log": false,
"_ansible_parsed": true,
"changed": true,
"cmd": "/sbin/blkid \"/dev/xvdd\" -o value",
"delta": "0:00:00.002580",
"end": "2016-11-15 22:11:17.984917",
"invocation": {
"module_args": {
"_raw_params": "/sbin/blkid \"/dev/xvdd\" -o value",
"_uses_shell": true,
"chdir": null,
"creates": null,
"executable": null,
"removes": null,
"warn": true
},
"module_name": "command"
},
"item": "/dev/xvdd",
"rc": 0,
"start": "2016-11-15 22:11:17.982337",
"stderr": "",
"stdout": "61b23af1-44dd-46c4-8e4b-2af2bd928f98\next4",
"stdout_lines": [
"61b23af1-44dd-46c4-8e4b-2af2bd928f98",
"ext4"
],
"warnings": []
}
]
}