Ansible - 替换kickstart文件中的变量

时间:2016-12-10 16:08:12

标签: ansible libvirt

我正在尝试使用kickstart文件安装几个带有ansible和virt-install的kvm。

tasks:
- name: Create VMs 
  command: /usr/bin/virt-install --connect=qemu:///system --network network=default 
  --initrd-inject=/tmp/anaconda-ks.cfg 
  --extra-args="console=tty0 console=ttyS0,115200 serial rd_NO_PLYMOUTH ks=file:/anaconda-ks.cfg" 
  --name={{ item }} 
  --disk path=/var/lib/libvirt/images/{{ item }}.qcow2,format=qcow2,size=10,cache=none 
  --ram 1024 --vcpus=1 --check-cpu --accelerate 
  --os-type linux --os-variant fedora19 --hvm 
  --location=/tmp/Fedora-20-x86_64-DVD.iso --nographics
  with_items:
    - vm1
    - vm2
    - vm3

问题是如何制作" - hostname = {{item}}"在kickstart文件(/tmp/anaconda-ks.cfg)中为每个vm动态替换。因此,安装完成后,每个vm都将使用自己的主机名。

1 个答案:

答案 0 :(得分:0)

好吧,正如@nikobelia所建议我使用了一个模板

 - name: Create template  
   template: src=templates/anaconda-ks-jenkins.j2 dest=/tmp/anaconda-ks-{{ item }}.cfg
   with_items: "{{ groups.all }}"

其中groups.all是库存(主机)文件中的所有主机。 因此,对于每个主机,它在模板本身内用主机名

替换了{{item}}