ansible playbook:我如何继承一组任务共有的一组选项

时间:2017-08-05 17:31:32

标签: ansible

我从ansible开始。 我与其他配置管理工具相关的主要原因是它能够协调,即在我的虚拟化环境中以编程方式创建虚拟机。目前是proxmox-ve。

这是我的第一个(与proxmox相关的)剧本的样子:

# Creates a host within proxmox environment
- hosts: localhost
  tasks:
  - name: "create vm"
    proxmox:
      node: cvirt
      api_user: user@pve
      api_password: password
      api_host: 192.168.5.4
      password: hostpass
      hostname: ansiblehost1
      storage: local-lvm
      timeout: 300
      ostemplate: 'local:vztmpl/centos-7-vagrant_amd64.tar.xz'
  - name: "start vm"
    proxmox:
      node: cvirt
      api_user: user@pve
      api_password: password
      api_host: 192.168.5.4
      hostname: ansiblehost
      state: started

现在,让我对这个剧本感到恼火的是,我必须为我定义的每个任务重复(一遍又一遍)节点,api_user,api_password,api_host选项。

我希望做的事情就是这样:

# Defines options which will be inherited
- commonvariables:
  node: cvirt
  api_user: user@pve
  api_password: password
  api_host: 192.168.5.4

# Creates a host within proxmox environment
- hosts: localhost
  tasks:
  - name: "create vm"
    proxmox:
      inherits_options_from: commonvariables
      hostname: ansiblehost1
      storage: local-lvm
      timeout: 300
      ostemplate: 'local:vztmpl/centos-7-vagrant_amd64.tar.xz'
  - name: "start vm"
    proxmox:
      inherits_options_from: commonvariables
      hostname: ansiblehost
      state: started

但我无法找到任何可以让我做这样的事情。

我想我可以用角色来做,或者我可以用循环来做。 但是,如果我想在某些情况下通过一个额外的选项(netif,比如说),该怎么办?

我知道如何实现这一选择继承'?

如果重要,我运行:ansible 2.3.1.0

0 个答案:

没有答案