2017-07-20 26 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