On Thu, Oct 30, 2014 at 12:39 PM, Shahar Havivi <shaharh(a)redhat.com> wrote:
On 30.10.14 12:30, Branimir Pejakovic wrote:
> On Thu, Oct 30, 2014 at 12:02 PM, Shahar Havivi <shaharh(a)redhat.com>
wrote:
>
> > On 30.10.14 10:06, Branimir Pejakovic wrote:
> > > On Thu, Oct 30, 2014 at 7:22 AM, Shahar Havivi <shaharh(a)redhat.com>
> > wrote:
> > >
> > > > On 29.10.14 17:35, Branimir Pejakovic wrote:
> > > > > Hi list,
> > > > >
> > > > > I was wondering is there a way to add multiple files to a vm
via
> > > > cloud-init
> > > > > using python SDK. I was able to add /etc/resolv.conf and
> > additionally I
> > > > > would like to add config files for NICs (ifcfg-ethX) with
appropriate
> > > > > values (ip,gw,netmask). I used an example given here:
> > > > >
http://www.ovirt.org/Features/Cloud-Init_Integration . But
> > > > unfortunately I
> > > > > cannot do the same thing If I want to write multiple files to a
vm in
> > > > > params.Action class.
> > > > >
> > > > > Thank you in advance!
> > > > you can use the custom script text box in oVirts cloud-init
section,
> > > > there you can add any cloud-init section - adding files examples
can be
> > > > found
> > > > here:
> > > >
> > > >
> >
http://cloudinit.readthedocs.org/en/latest/topics/examples.html#writing-o...
> > > >
> > > > Shahar Havivi.
> > > >
> > > >
> > > Hi Shahar,
> > >
> > > Thank you for the reply.
> > >
> > > To be honest I knew for those scripts but I want to do it in automate
> > > fashion just like in that example that I put in my original message.
I
> > have
> > > tried to specify in params.Files class multiple files:
> > >
> > > vm_file1 = params.Files(file=[params.File(name = 'file1', content
=
> > > file1_content, type_= 'PLAINTEXT')])
> > > vm_file2 = params.Files(file=[params.File(name = 'file2', content
=
> > > file2_content, type_= 'PLAINTEXT')])
> > >
> > > and then give them as arguments to params.CloudInit _init_
constructor
> > > (files=...) just like in that example above but it seems that I am
doing
> > > something wrong because it does not write multiple files - it writes
only
> > > when you specify one file all right. The exception is "Error:
'list'
> > object
> > > has no attribute 'export'" (I tried to specify those files as
a list
-
> > > files=[vm_file1,vm_file2]).
> > >
> > > Thanks for any help.
> > The custom script is currently the only option to add files via
Cloud-Init
> >
> > Thanks,
> > Shahar Havivi.
> >
> >
> Hi Shahar,
>
> Granted. But the example in python
>
http://www.ovirt.org/Features/Cloud-Init_Integration uses custom script
:)
> I just want to know how to do the same thing in case when I want to write
> more than one file to a VM - and yes - all those multiple files that I
> want to write are specified via custom scripts.
>
> From the link - (The "Python SDK" paragraph: scontent object holds the
> custom script):
>
> scontent = "write_files:\n- content: |\n search
> example.com\n nameserver 10.10.10.1\n nameserver
> 10.10.10.2\n path: /etc/resolv.conf"
>
> For example (and just for example), I want to write to /etc/issue and
> /etc/hosts not only /etc/resolv.conf. In essence, when vm goes to
run-once
> mode I want to write more than one file to a vm via Python (using
> CloudInit) in automated fashion (and not touching oVirt GUI at all).
You don't need to use the GUI,
the sdks initialization have custom_script as string which is equivalent to
the text box that you see in the GUI, and you can put the same content
there
(ie multiple files).
Is that sufficient enough?
Hi Shahar,
Thanks! I will try this one. I was not aware of this feature. Although I
can see that it was mentioned on the list (my bad).
Thank you for your effort! I really do appreciate it!
Best regards,
Branimir