У меня есть следующий fabfile.py:Как сделать выполнение Fabric следовать порядку списка env.hosts?
from fabric.api import env, run
host1 = '192.168.200.181'
host2 = '192.168.200.182'
host3 = '192.168.200.183'
env.hosts = [host1, host2, host3]
def df_h():
run("df -h | grep sda3")
И я получаю следующий результат:
[192.168.200.181] run: df -h | grep sda3
[192.168.200.181] out: /dev/sda3 365G 180G 185G 50% /usr/local/nwe
[192.168.200.183] run: df -h | grep sda3
[192.168.200.183] out: /dev/sda3 365G 41G 324G 12% /usr/local/nwe
[192.168.200.182] run: df -h | grep sda3
[192.168.200.182] out: /dev/sda3 365G 87G 279G 24% /usr/local/nwe
Done.
Disconnecting from 192.168.200.182... done.
Disconnecting from 192.168.200.181... done.
Disconnecting from 192.168.200.183... done.
Обратите внимание, что порядок выполнения отличается от спецификации env.hosts.
Почему это так? Есть ли способ сделать порядок выполнения таким же, как указано в env.hosts list?
Спасибо Трэвис, мне нравится ваш ответ. :) Порядок исполнения в моем случае не имеет особого значения. Мне просто интересно об этом поведении. –
Рад, что я мог бы помочь. Один из моих любимых советов - обратить особое внимание на раздел [Manage Output] [1] документации. Как только вы получите серию команд, выходящих на большой парк машин, на выходе может быть сложно проверить. Я смог удалить много шума с этими функциями. [1] http://docs.fabfile.org/0.9.0/usage/output_controls.html –