我从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