如何将自定义选项传递给 fab 命令
How to pass custom options to fab command
我想为多个项目重复使用 fabfile。
config.ini
[project1]
git_repo = git@github/project1
project_path = '/path/project1'
[project2]
git_repo = git@github/project22
project_path = '/path/project2'
fabfile.py
from fabric import task
config = configparser.ConfigParser()
config.read("conf.ini")
@task
def getcode(connection, project, git_repo):
args = config['project]
connection.run("git clone {}".format(git_repo))
@task
def pushcode(connection, project, git_repo):
args = config['project]
connection.run("git push {}".format(git_repo))
如何避免在每个方法中使用 args = config['project]
。我可以使用 fab 命令 fab -H web1 --project=project1 pushcode
传递自定义参数吗?需要帮助。
是的。
实际上,fab
CLI 工具与 Invoke 的 inv
CLI 工具具有相同的选项。
看看 that part of Invoke's docs,您会发现它与您提出的语法相同:)
当然,您可以将参数传递给从 invoke.task
调用屋顶任务的 fab 任务。
我将举例说明如何做到这一点:
fabfile.py
from fabric import task
@task
def sampleTask(connection, name, laste_name, age):
print("The firstname is ", name)
print("The lastname is ", laste_name)
print("The age is ", age)
然后您可以像这样从命令行调用它:
命令行
fab sampleTask -n peshmerge -l Mo -a 28
输出应该是这样的:
[vagrant@localhost fabric]$ fab sampleTask -n peshmerge -l Mo -a 28
The firstname is Peshmerge
The lastname is Mo
The age is 28
注意:为您的任务指定一个包含下划线 (_) 的名称将导致错误
No idea what 'sample_task' is!
命名任务参数也是如此。
我想为多个项目重复使用 fabfile。
config.ini
[project1]
git_repo = git@github/project1
project_path = '/path/project1'
[project2]
git_repo = git@github/project22
project_path = '/path/project2'
fabfile.py
from fabric import task
config = configparser.ConfigParser()
config.read("conf.ini")
@task
def getcode(connection, project, git_repo):
args = config['project]
connection.run("git clone {}".format(git_repo))
@task
def pushcode(connection, project, git_repo):
args = config['project]
connection.run("git push {}".format(git_repo))
如何避免在每个方法中使用 args = config['project]
。我可以使用 fab 命令 fab -H web1 --project=project1 pushcode
传递自定义参数吗?需要帮助。
是的。
实际上,fab
CLI 工具与 Invoke 的 inv
CLI 工具具有相同的选项。
看看 that part of Invoke's docs,您会发现它与您提出的语法相同:)
当然,您可以将参数传递给从 invoke.task
调用屋顶任务的 fab 任务。
我将举例说明如何做到这一点:
fabfile.py
from fabric import task
@task
def sampleTask(connection, name, laste_name, age):
print("The firstname is ", name)
print("The lastname is ", laste_name)
print("The age is ", age)
然后您可以像这样从命令行调用它: 命令行
fab sampleTask -n peshmerge -l Mo -a 28
输出应该是这样的:
[vagrant@localhost fabric]$ fab sampleTask -n peshmerge -l Mo -a 28
The firstname is Peshmerge
The lastname is Mo
The age is 28
注意:为您的任务指定一个包含下划线 (_) 的名称将导致错误
No idea what 'sample_task' is!
命名任务参数也是如此。