Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ansible playbook:如何继承一组任务所共有的选项_Ansible - Fatal编程技术网

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

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

我从ansible开始。 我对ansible与管理工具中的其他配置进行深入研究的主要原因是它的协调能力,即在我的虚拟化环境中以编程方式创建虚拟机。目前ProxMoxVE

以下是我的第一本(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_用户、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过滤器将其与代码中已定义的默认集合并,作为额外选项。您可以制作自定义操作插件,并在调用实际模块之前从其他变量中填充公共参数。请参见以下代码示例: