2016-11-29 11 views
1

Теперь я испытываю типичную проблему в незаменимом V 2.1.0. В приведенном ниже случае,Несогласованный порядок родительских: имена дочерних групп в файле инвентаря

[DEV:children] 
DEV8 
[DEV8] 
thehost ansible_ssh_host=10.2.131.26 ansible_ssh_user=someuser1 

Теперь, когда я бегу

{{hostvars[inventory_hostname].group_names, it outputs 

TASK [debug]   ************************************************************ 
ok: [thehost] => { 
"msg": [ 
"DEV", 
"DEV8" 
] 
} 

Теперь, для другой группы машин

[PRODCTE:children] 
CTE3 
[CTE3] 
thehost1 ansible_ssh_host=10.2.131.30 ansible_ssh_user=someuser2 

output: 
TASK [debug] ******************************************************************* 
ok: [thehost] => { 
"msg": [ 
"CTE3", 
"PRODCTE" 
] 
} 

ПРОБЛЕМА:

[PROD] 
PRODA 
[PRODA] 
PROD1 
[PROD1] 
thehost2 ansible_ssh_host=10.2.3.33 ansible_ssh_user=someuser3 

output: 
TASK [debug] ******************************************************************* 
ok: [thehost] => { 
"msg": [ 
"PROD", 
"PROD1" 
"PRODA" 
] 
} 

Теперь, Если исполняемый код должен выполняться в алфавитном порядке, тогда y не может быть достигнуто. Выход всегда должен быть последовательным. Я имею в виду, что если group_names [0] или group_names [1] показывает мне разные значения для разных групп, основанных в алфавитном порядке, то эти книги не могут быть стандартизированы.

В любом случае, даже если вы придерживаетесь такого поведения, я пытаюсь понять, на каких факторах могут быть получены эти значения?

Если в алфавитном порядке, то как PROD1 был выбран через PRODA? Может ли anseable считать числовые символы приоритетными, чем алфавиты здесь?

ответ

0

Почему он должен быть родителем-> детьми?

Я предполагаю, что он должен быть отсортирован по алфавиту. От code:

results['group_names'] = sorted([ g.name for g in self.get_groups() if g.name != 'all']) 
+0

обновленный вопрос! – Jninja