Thanks for the response.  It seems that -H works as long as you're not
defining env.hosts in your fabfile.

~Ryan



On Thu, Jul 12, 2012 at 11:06 AM, William Cannon
<[email protected]>wrote:

> Ryan,
>
> I have found it is very convenient to use fabric as a library (rather than
> using  "fab myfunction" ) for this type of purpose.
>
> For instance, you can alter the env.host_string at runtime with any target
> host as desired.
>
> -William
>
> On Thu, Jul 12, 2012 at 11:00 AM, <[email protected]> wrote:
>
>> Send Fab-user mailing list submissions to
>>         [email protected]
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>         https://lists.nongnu.org/mailman/listinfo/fab-user
>> or, via email, send a message with subject or body 'help' to
>>         [email protected]
>>
>> You can reach the person managing the list at
>>         [email protected]
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Fab-user digest..."
>>
>>
>> Today's Topics:
>>
>>    1. Execute the same tasks in local() and run() (Jorge Vargas)
>>    2. Dynamic hosts not supported by -H? (Ryan Bales)
>>    3. Re: Execute the same tasks in local() and run() (Todd DeLuca)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Thu, 12 Jul 2012 04:05:07 -0400
>> From: Jorge Vargas <[email protected]>
>> To: fab-user <[email protected]>
>> Subject: [Fab-user] Execute the same tasks in local() and run()
>> Message-ID:
>>         <
>> caosapwn5bmtz0s9eoyfu7g-sc684t_68leeh8qpguy_qsbr...@mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Hello,
>>
>> We are using fabric for development as well as deployment and I'm
>> wondering
>> how people are doing command like this.
>>
>> @task
>> def load_fixtures():
>>     """Load initial data."""
>>     run("venv/bin/python data/fixtures.py")
>>
>> This code should work for both the developer machine (ie: run local) and
>> the deployment machine (ie: use run)
>>
>> So far what I have done is something like
>>
>> @task
>> def install_db(command=local):
>>     """@onetime install of the database"""
>>     with prefix("source venv/bin/activate"):
>>         command("python manage.py syncdb --migrate")
>>
>> However that's a bit of a problem as I can't call that command from fab
>> just from other fabric scripts.
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <
>> http://lists.nongnu.org/archive/html/fab-user/attachments/20120712/941560fa/attachment.html
>> >
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Thu, 12 Jul 2012 08:26:38 -0500
>> From: Ryan Bales <[email protected]>
>> To: fab-user <[email protected]>
>> Subject: [Fab-user] Dynamic hosts not supported by -H?
>> Message-ID:
>>         <
>> cac5m4j2zofzmudz2qkcr6ifkbptpigiybknr++dv82dymck...@mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Hello all,
>>
>> I'm trying to build a web app around a few fabric scripts, and I need to
>> supply a dynamic list of hosts to the scripts.  I saw the -H switch, but
>> it
>> apparently only works when env.hosts is defined in the fabric script.  I
>> also looked at command-line kwargs for methods, but the methods won't even
>> be executed without env.hosts being defined.  Can someone point me in the
>> right direction?
>>
>> Thanks,
>> --
>> Ryan Bales
>> http://thinkt4nk.com/
>> http://twitter.com/#!/thinkt4nk
>> https://github.com/thinkt4nk
>>
>>
>>
>>
>>
>> --
>> Ryan Bales
>> http://thinkt4nk.com/
>> http://twitter.com/#!/thinkt4nk
>> https://github.com/thinkt4nk
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <
>> http://lists.nongnu.org/archive/html/fab-user/attachments/20120712/7a596f6e/attachment.html
>> >
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Thu, 12 Jul 2012 09:32:04 -0400
>> From: Todd DeLuca <[email protected]>
>> To: Jorge Vargas <[email protected]>
>> Cc: fab-user <[email protected]>
>> Subject: Re: [Fab-user] Execute the same tasks in local() and run()
>> Message-ID:
>>         <
>> cajropyadz_esxkyj1ssu37zhkzsc4ynriyqzu7_8u1vkak5...@mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> The way I deploy to localhost now is to run ssh on my local machine.  That
>> way I can access my local machine "remotely" in fabric scripts.  On my mac
>> laptop, here is how I enabled remote logins via ssh.  Go to System
>> Preferences, choose Sharing.  Select Remote login.  That's it.  This
>> approach seems to fit into the fabric model well.
>>
>> I used to deploy locally by following the advice at
>> http://stackoverflow.com/questions/6725244/running-fabric-script-locally.
>>  Basically, I would assign env.run = run or env.run = local, depending on
>> where I was deploying, perhaps in a task something like (warning: untested
>> code):
>>
>> ```
>> env.run = run
>>
>> @task
>> def localhost():
>>     env.run = local
>>
>> @task
>> def do_something():
>>     env.run('path/to/myscript.py')
>> ```
>>
>> Then I would do invoke it like:
>>
>> ```
>> fab local do_something
>> ```
>>
>> This got smellier when I started rsyncing, since I had to write a
>> local version and remote version of rsync.  Then when I started
>> using `fabric.api.get`, I realized that I would have to write a API
>> compatible version of `get` and `put` if I wanted to continue down this
>> path.  That pushed me to find the better way described above.
>>
>> Hope that helps.
>>
>> -Todd
>>
>>
>> On Thu, Jul 12, 2012 at 4:05 AM, Jorge Vargas <[email protected]
>> >wrote:
>>
>> > Hello,
>> >
>> > We are using fabric for development as well as deployment and I'm
>> > wondering how people are doing command like this.
>> >
>> > @task
>> > def load_fixtures():
>> >     """Load initial data."""
>> >     run("venv/bin/python data/fixtures.py")
>> >
>> > This code should work for both the developer machine (ie: run local) and
>> > the deployment machine (ie: use run)
>> >
>> > So far what I have done is something like
>> >
>> > @task
>> > def install_db(command=local):
>> >     """@onetime install of the database"""
>> >     with prefix("source venv/bin/activate"):
>> >         command("python manage.py syncdb --migrate")
>> >
>> > However that's a bit of a problem as I can't call that command from fab
>> > just from other fabric scripts.
>> >
>> > _______________________________________________
>> > Fab-user mailing list
>> > [email protected]
>> > https://lists.nongnu.org/mailman/listinfo/fab-user
>> >
>> >
>>
>>
>> --
>> Todd DeLuca
>> http://todddeluca.com
>> http://wall.hms.harvard.edu/
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <
>> http://lists.nongnu.org/archive/html/fab-user/attachments/20120712/c4a9c1af/attachment.html
>> >
>>
>> ------------------------------
>>
>> _______________________________________________
>> Fab-user mailing list
>> [email protected]
>> https://lists.nongnu.org/mailman/listinfo/fab-user
>>
>>
>> End of Fab-user Digest, Vol 54, Issue 6
>> ***************************************
>>
>
>
> _______________________________________________
> Fab-user mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/fab-user
>
>


-- 
Ryan Bales
http://thinkt4nk.com/
http://twitter.com/#!/thinkt4nk
https://github.com/thinkt4nk
_______________________________________________
Fab-user mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/fab-user

Reply via email to