сделать следующее:
У меня есть группы хостов, которые нельзя обрабатывать одновременно и я хочу, получив на вход кучу хостов, сперва обработать их так, чтобы получить группы, которые можно обрабатывать одновременно, а потом уже запускать несколько плеев один за другим.
Как это лучше сделать если сейчас есть вот такой пример инвентаря
hostA1:
linked_hosts:
- hostA1
- hostA2
hostA2:
linked_hosts:
- hostA1
- hostA2
hostB1:
linked_hosts:
- hostB1
- hostB2
hostB2:
linked_hosts:
- hostB1
- hostB2
как из этого получить группы
1. hostA1, hostB1
2. hostA2, hostB2
?
я попытался почитать про group_by, но не понимаю как оно работает.
Я могу модуль на питоне наваять, который просто вернет list of lists, но нет ли способа сделать проще средствами самого ансибла?
А по какому признаку вы хотите делить хосты?
у каждого хоста есть переменная linked_hosts в этой переменной указаны хосты, которые нельзя запускать одновременно
можно тоже 5 копеек? Я бы добавил в хосты название сервиса пусть это будет serviceN и в нем уже просто указал номер 1,2,3. Тогда вам нужно сформировать список пройдя по инвентори и выцепляя serviceN->number. + хостнейм. и отсортировав его. Получится что то вроде serviceN: hostA10.local, hostB200.local.
Обсуждают сегодня