The kickstart path should be set in your ISO

It should look something like ks=http://example.com/ks.php kssendmac

The kssendmac parameter sends the VMs MAC address to the kickstart file. 

Here is an example play and and scripts I use. 

https://github.com/OneMainF/vmware-rhel-server-builder/blob/master/example_build.yaml

Hope this helps. 

> On Feb 28, 2016, at 11:39, afroz. khan <[email protected]> wrote:
> 
> Hi Jason,
> 
> Thanks for your quick response....
> Now i have made custom iso of linux. and upload it esxi datastore. do i need 
> to add any parameter in ansible playbook for kickstart or just need to run 
> same play book after define the customer iso path ? 
> 
>  vm_cdrom:
>             type: "iso"
>             iso_path: "datastore1/boot.iso"
> 
> boot.iso is a RHEL 7 iso file which i have customized..
> 
> 
> Regards,
> Afroz Khan
> 
> 
>> On Sat, Feb 27, 2016 at 6:06 AM, Jason Hiatt <[email protected]> wrote:
>> You will need to open up the ISO and add a few parameters to boot config. 
>> 
>> I added the location of my dynamic kickstart web service 
>> (ks=http://example.com/ks.php) and the kssendmac parameter. 
>> 
>> Once you modify that file recreate your ISO. 
>> This link should help. 
>> 
>> http://www.softpanorama.org/Commercial_linuxes/RHEL/Installation/Kickstart/modifing_iso_image_to_include_kickstart_file.shtml
>> 
>> Copy the new iso to your data store and reference it you Ansible play. 
>> 
>>> On Feb 26, 2016, at 14:31, [email protected] wrote:
>>> 
>>> Hi Mark, 
>>> 
>>> bit confusion, need your suggestion...
>>> 
>>> i made a play book to create vm machine and  attached iso_path. when i run 
>>> the playbook it creates a vm automatically boot from rhel6 iso. 
>>> if it is booting from iso automatically then why i need to use pxe ? can i 
>>> install rhel6 OS by kickstart ? if yes then what more syntax i need to 
>>> define in my script.
>>> please find the below mentioned my playbook and suggest me the right way.
>>> 
>>> ---
>>> - name: create some vms
>>>   hosts: localhost
>>>   connection: local
>>>   vars_prompt:
>>>     - name: "vcenter_host"
>>>       prompt: "Enter vcenter host"
>>>       private: no
>>>       default: "vcsa"
>>>     - name: "vcenter_user"
>>>       prompt: "Enter vcenter username"
>>>       private: no
>>>     - name: "vcenter_pass"
>>>       prompt: "Enter vcenter password"
>>>       private: yes
>>>     - name: "vcenter_datacenter"
>>>       prompt: "Enter datacenter name"
>>>       private: no
>>>     - name: "vcenter_datastore"
>>>       prompt: "Enter datastore name"
>>>       private: no
>>>     - name: "esxi_host"
>>>       prompt: "Enter vsphere host"
>>>       private: no
>>>   vars:
>>> #    - vcenter_folder: 'beta'
>>>     - vms:
>>>         - guest: 'test04'
>>>           state: 'powered_on'
>>>           vcpu_hotadd: 'yes'
>>>           mem_hotadd: 'yes'
>>>           notes: 'Ansible Created'
>>>           num_disks: '1'
>>>           disks:
>>>             disk1:
>>>               size: '10'
>>>               type: 'thin'
>>>           network: 'VM Network'
>>>           memory: '1024'
>>>           cpus: '1'
>>>           osid: 'rhel6_64Guest'
>>>   tasks:
>>>     - name: create vms (Single Disk)
>>>       vsphere_guest:
>>>         vcenter_hostname: "{{ vcenter_host }}"
>>>         username: "{{ vcenter_user }}"
>>>         password: "{{ vcenter_pass }}"
>>>         guest: "{{ item.guest }}"
>>>         state: "{{ item.state }}"
>>>         vm_extra_config:
>>>           vcpu.hotadd: "{{ item.vcpu_hotadd|default(omit) }}"
>>>           mem.hotadd: "{{ item.mem_hotadd|default(omit) }}"
>>>           notes: "{{ item.notes|default(omit) }}"
>>>  #         folder: "{{ vcenter_folder }}"
>>>         vm_disk:
>>>           disk1:
>>>             size_gb: "{{ item.disks.disk1.size }}"
>>>             type: "{{ item.disks.disk1.type }}"
>>>             datastore: "{{ vcenter_datastore }}"
>>>  #          folder: "{{ vcenter_folder }}"
>>>         vm_nic:
>>>           nic1:
>>>             type: "vmxnet3"
>>>             network: "{{ item.network }}"
>>>             network_type: "standard"
>>>         vm_hardware:
>>>           memory_mb: "{{ item.memory }}"
>>>           num_cpus: "{{ item.cpus }}"
>>>           osid: "{{ item.osid }}"
>>>           scsi: "paravirtual"
>>>           vm_cdrom:
>>>             type: "iso"
>>>             iso_path: "datastore1/rhel-server-6.6-x86_64-dvd.iso"
>>>         esxi:
>>>           datacenter: "{{ vcenter_datacenter }}"
>>>           hostname: "{{ esxi_host }}"
>>>       with_items: vms
>>>       when: item.num_disks == '1'
>>> 
>>> 
>>>> On Wednesday, November 11, 2015 at 10:48:29 PM UTC+5:30, Mark Phillips 
>>>> wrote:
>>>> Hello Mihai,
>>>> 
>>>> Well, it's two other products there that are in effect needing control of. 
>>>> You need vSphere to interact with the Linux boot disc menu - so not easy, 
>>>> really.
>>>> 
>>>> See my earlier post in this thread - set up a network boot (PXE) and have 
>>>> two menu items. Or, alternatively, use something like iPXE 
>>>> (http://ipxe.org) to make a specific boot disc image which you 'insert' 
>>>> into the VMware VM CDROM to boot.
>>>> 
>>>> Cheers
>>>> 
>>>>> On Wednesday, 11 November 2015 16:58:00 UTC, Mihai Cristian Satmarean 
>>>>> wrote:
>>>>> Thanks Mark,
>>>>> We are already doing both, I thought that there is a module or an Ansible 
>>>>> trick that you can specify the boot parameter in the vsphere boot :) that 
>>>>> would be helpful.
>>>>> 
>>>>> 
>>>>> vineri, 6 noiembrie 2015, 18:33:56 UTC+1, Mark Phillips a scris:
>>>>>> 
>>>>>> If it's from a CD boot Mihai just hit 'tab' then put ks= as Michael 
>>>>>> suggested.
>>>>>> 
>>>>>> Otherwise, with PXE boot you can specify the option on the kernel line, 
>>>>>> like:
>>>>>> 
>>>>>> kernel -n img 
>>>>>> http://ks.internal/centos/7/os/x86_64/images/pxeboot/vmlinuz 
>>>>>> ks=http://ks.internal/bootstrap/ks/7.ks
>>>>>> 
>>>>>> 
>>>>>>> On Friday, 6 November 2015 16:19:23 UTC, Mihai Cristian Satmarean wrote:
>>>>>>> @Michael, thanks! This might be exactly what I am looking for in this 
>>>>>>> stage, but I cannot find an example of how to insert the arguments at 
>>>>>>> boot to point to the remote kickstart.
>>>>>>> 
>>>>>>> Mihai Satmarean
>>>>>>> 
>>>>>>> 
>>>>>>> miercuri, 7 ianuarie 2015, 18:10:38 UTC+1, Michael DeHaan a scris:
>>>>>>>> 
>>>>>>>> If you don't want to bake in the ks.cfg (for instance, if you have 
>>>>>>>> different install profiles coming off the same OS), supplying the 
>>>>>>>> kernel argument ks=http://server.example.com/foo.ks also works.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Wed, Jan 7, 2015 at 11:28 AM, Earl Robinson <[email protected]> 
>>>>>>>>> wrote:
>>>>>>>>> Parimal,
>>>>>>>>> 
>>>>>>>>> To use kickstart you first need to present a boot media which is 
>>>>>>>>> configured to pull the kickstart file
>>>>>>>>> See: 
>>>>>>>>> http://www.centos.org/docs/5/html/5.2/Installation_Guide/s1-kickstart2-howuse.html
>>>>>>>>> 
>>>>>>>>> You can use ansible to present the VM with such bootable media by 
>>>>>>>>> launching it in a VLAN with a PXE boot server which will present the 
>>>>>>>>> media, or by presenting the VM with a CD image with the kickstart 
>>>>>>>>> file built in.
>>>>>>>>> 
>>>>>>>>> I've gone the CD image route with ansible, you can specify a cd image 
>>>>>>>>> to boot like this:
>>>>>>>>> 
>>>>>>>>> vsphere_guest:
>>>>>>>>>   vm_hardware:
>>>>>>>>>     vm_cdrom:
>>>>>>>>>       type: "iso"
>>>>>>>>>       iso_path: "DatastoreName/cd-image.iso"
>>>>>>>>> 
>>>>>>>>> Of course you need to give the vsphere_guest module all other 
>>>>>>>>> required arguments, but this is the simplest way I've found to 
>>>>>>>>> kiskstart a vm using ansible.
>>>>>>>>> 
>>>>>>>>> -earl
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Tue, Jan 6, 2015 at 4:07 AM, Patel Parimal <[email protected]> 
>>>>>>>>>> wrote:
>>>>>>>>>> Hi,
>>>>>>>>>> I am newbie to Ansible. 
>>>>>>>>>> 
>>>>>>>>>> I have gone through the online documentation and examples for 
>>>>>>>>>> creating new VM on Ansible Docs - vsphere_guest 
>>>>>>>>>> (http://docs.ansible.com/vsphere_guest_module.html).
>>>>>>>>>> 
>>>>>>>>>> I want to automate VM creation and OS installation process using 
>>>>>>>>>> Ansible.
>>>>>>>>>> 
>>>>>>>>>> Currently I have VMWare ESXi available which doesn't support VM 
>>>>>>>>>> cloning, so I need to create a new VM every time from scratch and 
>>>>>>>>>> install OS(RHEL 6) into it.
>>>>>>>>>> 
>>>>>>>>>> Is there any way to provide kickstart file URL in Ansible Playbook 
>>>>>>>>>> (for example, static HTTP URL like http://192.168.0.1/ks/ks.cfg) so 
>>>>>>>>>> after newly built VM is powered on, OS will be installed into it ?
>>>>>>>>>> 
>>>>>>>>>> Thanks and regards,
>>>>>>>>>> Parimal
>>>>>>>>>> -- 
>>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>>> Groups "Ansible Project" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>> https://groups.google.com/d/msgid/ansible-project/da56aeef-01f0-41f6-8dc9-3cd1bdd138d5%40googlegroups.com.
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>> 
>>>>>>>>> -- 
>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>> Groups "Ansible Project" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>> send an email to [email protected].
>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>> https://groups.google.com/d/msgid/ansible-project/CABGf5APRF_HeN%3Dgyvh0UGdBP%2BV8AeLsaXZZR1SYX833C17wrkQ%40mail.gmail.com.
>>>>>>>>> 
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>> 
>>> -- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "Ansible Project" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/ansible-project/Holm0CFBbLo/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to 
>>> [email protected].
>>> To post to this group, send email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/6fe8e245-4544-4310-a31a-e4ff2eed8f18%40googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>> 
>> -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Ansible Project" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/ansible-project/Holm0CFBbLo/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/4E8116A2-4337-4ED7-ADD5-5E7ABA9742CF%40gmail.com.
>> 
>> For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "Ansible Project" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/ansible-project/Holm0CFBbLo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/CABrh7Bo6eNfb-o1yVMmd%2B5BeRUba9XXsC7YsU7o6_PNVVob3Kw%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/5636DFA7-B61B-48C3-A462-2EF07EEC15F0%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to