Какова альтернатива Fabric2 для env.hosts и env.hosts_name Fabric1?

В моем коде я хочу иметь список хостов и отправлять разные параметры каждому хосту.

В настоящее время я нахожу индекс в массиве и использую его для определения ввода

index = env.hosts.index(env.host_name)

Hosts и host_name больше не используются в структуре 3 с пометкой.

The primary API is now properly OOP: instantiate Connection objects and call their methods. These objects encapsulate all connection state (user, host, gateway, etc) and have their own SSH client instances.

person RonanMacF    schedule 24.05.2018    source источник


Ответы (1)


В Fabric 2 вы подключаетесь к хосту, создавая экземпляр объекта Connection. Вы можете получить доступ к его хосту, вызвав атрибут host:

conn = Connection('192.168.11.12')
print(conn.host)

Если вам нужно подключиться к нескольким серверам, вам нужно будет создать экземпляр SerialGroup, состоящий из нескольких подключений.

g = SerialGroup('192.168.11.12', '192.168.11.13')
for conn in g:
    print(conn.host)

Вы можете ознакомиться с (обновленными!) документами здесь и (обновленное!) репозиторий git здесь

person Ismaïl Mourtada    schedule 24.05.2018
comment
Просто передав объект соединения в качестве аргумента вашей задачи и перебрав все соединения в группе. Пример здесь: docs.fabfile.org/en /2.4/ - person Ismaïl Mourtada; 03.10.2018
comment
Я использую его командную строку fab task, поэтому сам не передаю объект подключения. - person Suor; 04.10.2018