Erstellen VM

From
Jump to: navigation, search
---
- hosts: all
  gather_facts: false
  connection: local
  user: remote

  vars:
    vcenter_hostname: 'IP'
    vcenter_user: 'administrator@testlab.lan'
    vcenter_pass: 'PASSWORD'
    datacenter: 'testlab'
    esxi_host: 'IP'
    notes: 'Created by Ansible'
  tasks:
    - vsphere_guest:
        validate_certs: False
        vcenter_hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_user }}"
        password: "{{ vcenter_pass }}"
        guest: "{{ inventory_hostname }}"
        state: present
        vm_extra_config:
          notes: "{{ notes }}"
        vm_disk:
          disk1:
            size_gb: "{{ disk }}"
            type: thin
            datastore: "{{ datastore }}"
        vm_nic:
          nic1:
            type: vmxnet3
            network: "{{ network }}"
            network_type: standard
        vm_hardware:
          memory_mb: "{{ memory }}"
          num_cpus: "{{ cpucount }}"
          osid: "{{ osid }}"
          scsi: paravirtual
        esxi:
          datacenter: "{{ datacenter }}"
          hostname: "{{ esxi_host }}"
    - name: Gather VM facts
      vsphere_guest:
        vcenter_hostname: "{{ vcenter_hostname }}" 
        username: "{{ vcenter_user }}"
        password: "{{ vcenter_pass }}"
        guest: "{{ inventory_hostname }}"
        validate_certs: False
        vmware_guest_facts: yes
      register: newvm
      tags: mac

    - name: create forward lookup entry DNS"
      nsupdate:
        key_name: "testlab.lan"
        key_secret: "U93nnwyHGYr20Ro6YNTDng=="
        server: "172.16.0.1"
        zone: "testlab.lan."
        record: "{{ inventory_hostname }}"
        value: "{{ip}}"

    - name: create reverse lookup entry DNS"
      nsupdate:
        key_name: "testlab.lan"
        key_secret: "U93nnwyHGYr20Ro6YNTDng=="
        server: "172.16.0.1"
        zone: "16.172.in-addr.arpa"
        type: PTR
        record: "{{ rip }}"
        value: "{{ inventory_hostname }}.testlab.lan."

    - name: Prepare for PXE install
      file: >
        path=/tftpboot/pxelinux.cfg/01-{{ newvm.ansible_facts.hw_eth0.macaddress_dash }}
        src=/tftpboot/pxelinux.cfg/centos70
        state=hard
      sudo: yes
      tags: mac

    - name: Power on VMs
      vsphere_guest:
        vcenter_hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_user }}"
        password: "{{ vcenter_pass }}"
        guest: "{{ inventory_hostname }}"
        validate_certs: False
        state: powered_on
        force: yes

    - pause:
        seconds: 15

    - name: Remove kickstart link 
      file: >
        path=/tftpboot/pxelinux.cfg/01-{{ newvm.ansible_facts.hw_eth0.macaddress_dash }}
        src=/tftpboot/pxelinux.cfg/centos70
        state=absent
      sudo: yes
      tags: mac