2017-07-20 28 views
3

我想使用Python API来运行一些剧本,因为我想将它与Flash集成以启用基于Web的控件。这里是我的剧本(crondis.yaml):Ansible Python API:如何传递额外的变数到剧本

- hosts: "{{app_name}}-server" 
    tasks: 
    - name: disable cron 
     cron: 
     name: "{{app_name|upper}}_MONITOR" 
     job: "/{{app_name}}/monitor.sh" 
     disabled: yes 

从CML可以是这样的:

ansible-playbook --extra-vars="{'app_name': 'newapp'}" crondis.yaml 

但是Python的API中,我没有看到任何地方添加剧中的变数。我检查了Variable_Manager,DataLoaderPlaybookExecutor但没有找到任何函数可以添加增益的戏剧。 如果您有任何想法,请为我​​洒下一点点光。

回答

3

您可以通过设置.extra_vars属性来定义的其他变量,见ansible-playbook CLI code

# create the variable manager, which will be shared throughout 
    # the code, ensuring a consistent view of global variables 
    variable_manager = VariableManager() 
    variable_manager.extra_vars = load_extra_vars(loader=loader, options=self.options) 
+0

对不起已故的答复我无法在今天之前进行测试。是的,我测试了向Variable_Manager添加extra_vars,并且它非常完美! – felixc

+1

这是我试过的代码:'variable_manager.extra_vars = {'app_name':'test'}' – felixc