I'm wanting to move my hosts off into config files so that I can apply
the same sets of commands in my fabfile to different hosts by
switching config files instead of editing fabric.py.
I have a simple test fabfile.py:
# fabfile.py
# ------------
from fabric.api import env, run, sudo
from fabric.context_managers import cd
from fabric.operations import put
from os import path
env.user = "root"
env.hosts = ["xxx.yyy.zzz.kkk"]
# NOTE: LIB
def ls():
"""ls whatever directory you're in"""
return sudo("ls -Gla")
I want to just move the env.host declaration out to the config file
like so:
my.cfg
----------------
hosts = ["xxx.yyy.zzz.kkk"]
So, I comment out the env.hosts line in fabfile.py, and call fabric
like so:
fab --config=my.cfg ls
After the annoying deprecation warnings from Parimiko I get:
No hosts found. Please specify (single) host string for connection:
I've tried rearranging the assignment in my.cfg in all the obvious
ways but I either I get a message about not being able to open "'["1"
or some other fragment, or am just prompted for a host to connect to.
I looked through the code and it seems to just parse the config file
with a nested list comprehension, dense but not particularly obtuse,
then send the resulting dict back to the env dictionary for updating.
I'm running of the master just pulled from github a few minutes ago.
What idiotically simple thing am I missing?
Clues anyone?
Thanks,
S
_______________________________________________
Fab-user mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/fab-user