2015-04-10 5 views
1

Вся моя целевая машина на самом деле андроид и не питонанзибль сырым модуль: сравнить местное время с целевыми узлами время

Так что я хочу знать, время каждого аппарата по сравнению с моим местным временем.

ansible all -m raw -a "echo $(date +%s); date +%s" 

не работает, так как $(date +%s) оценивается с начала выполнения, и есть очень много узлов, которые выполняют гораздо позже.

Есть ли способ отложить оценку?

+0

возможно более подходящим решение для каждого из ваших устройств запускать «ntp» или аналогичную службу, и они будут уверены, что они синхронизируются по времени? – Mxx

+0

@mxx Это PITA, чтобы установить дополнительные инструменты на узлах Android. Вся ОС находится на кольцевом устройстве. – est

ответ

1

ИМХО, использующий простой ssh, проще, чем это возможно для этой цели.

Если вы хотите продолжать использовать анзибль проверить the --forks|-f option, как если у вас есть 100 андроидов, чтобы поговорить с потом:

ansible all -f 100 -m raw -a "echo $(date +%s); date +%s" 

или сделать хороший старый SSH:

for h in `ansible all -i inventory.ini --list-hosts`; do d=`date +%s`; ssh $h "echo \$HOSTNAME - $(date +%s) - $d" & done 
+2

Используя «добрый старый ssh» через что-то вроде [parallel ssh] (https://code.google.com/p/parallel-ssh/), вы также получите возможность распараллеливания, которое Ansible обеспечивает без дополнительных накладных расходов. –

+0

@BruceP nice, не знал abt 'pssh' .. теперь я могу заменить кучу моих псевдонимов, перебирающих списки хостов .. :-) – Kashyap

 Смежные вопросы

  • Нет связанных вопросов^_^