ansible playbook:如何继承一组任务所共有的选项
我从ansible开始。 我对ansible与管理工具中的其他配置进行深入研究的主要原因是它的协调能力,即在我的虚拟化环境中以编程方式创建虚拟机。目前ProxMoxVE 以下是我的第一本(proxmox相关)剧本:ansible playbook:如何继承一组任务所共有的选项,ansible,Ansible,我从ansible开始。 我对ansible与管理工具中的其他配置进行深入研究的主要原因是它的协调能力,即在我的虚拟化环境中以编程方式创建虚拟机。目前ProxMoxVE 以下是我的第一本(proxmox相关)剧本: # Creates a host within proxmox environment - hosts: localhost tasks: - name: "create vm" proxmox: node: cvirt api_user: u
# 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_用户、api_密码、api_主机选项
我想做的事情大致如下:
# 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您可以传入一个命令行变量,然后使用j2过滤器将其与代码中已定义的默认集合并,作为额外选项。您可以制作自定义操作插件,并在调用实际模块之前从其他变量中填充公共参数。请参见以下代码示例: