我是ansible的新手,所以如果这个问题一团糟,我深表歉意......
我有一个 ansible 脚本,当“count”设置为高于 1 时,通过 one_vm 为多个 VM 提供 OpenNebula。稍后在同一个脚本中,我想在新 VM 上安装应用程序,但 ansible 只会针对最后一个运行已配置虚拟机。任何帮助,将不胜感激。
- name: Generate VM
community.general.one_vm:
template_name: "{{ template_name }}"
api_url: "{{ api_url }}"
api_username: "{{ api_username }}"
api_password: "{{ api_password }}"
vcpu: "{{ vcpu }}"
memory: "{{ memory }}"
count: "{{ count }}"
disk_size:
"{{ disk_size }}"
networks:
"{{ networks }}"
attributes:
name: "{{ vm_name }}"
register: vm
any_errors_fatal: true
有什么方法可以让稍后的任务循环通过新创建的虚拟机?
例子:
- name: Install java
community.general.one_vm:
instance_ids: "{{ item }}"
yum:
name: java-1.8.0-openjdk
state: latest
loop: "{{ vm.instances_ids }}"