cloudstack-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carlos Reátegui <create...@gmail.com>
Subject Re: Cloudstack user-data empty for VMs
Date Wed, 04 Dec 2013 21:23:55 GMT
What you want to do should work. 
Not familiar with cloudstack_resources. Does it have a means to set user data when creating
an instance?  If so, have you checked the user data manually (ie querying the vr/dhcp server)
to see that it was set?


> On Dec 4, 2013, at 3:19 PM, Derek Cole <derek.cole@gmail.com> wrote:
> 
> Hrmm - Maybe I am not being exactly clear.
> 
> I originally started out trying to use puppet to not only configure my VMs,
> but provision them in the cloud as well. I started out with a template in
> cloudstack, and have been using cloudstack_resources to create new VMs
> automatically when my puppet manifest is applied.
> 
> Creating the VMs and all seems to work, however, I need a way to push
> specific configurations to specific boxes based on their role, so I was
> hoping to use the "role=whatever" userdata to be able to distinguish the
> different types of VMs that I have provisioned without having to have a
> bunch of node blocks to distinguish them by name.
> 
> Maybe using cloudmonkey or some other tool is more effective, however I
> guess I was just trying to figure out how to use the supposedly already
> written puppet types to give me something out of the box that is "one
> command" provisioning and configuring.
> 
> -Derek
> 
> 
> On Wed, Dec 4, 2013 at 2:56 PM, Hiroki Ohashi <silvernshell@gmail.com>wrote:
> 
>> Hi Derek
>> 
>> When you use user-data, you have to provide user-data and deliver it
>> to virtual router. Unfortunately, CloudStack only provides REST API to
>> deliver user-data to virtual router now. This API is
>> deployVirtualMachine that creates instance and set instance specific
>> data.
>> 
>> For example, I assume you want to deliver a shell script as user-data
>> below.
>> 
>>    ----------------------------------------------------------------------
>>    #! /bin/sh
>> 
>>    echo "Hello user-data!"
>>    ----------------------------------------------------------------------
>> 
>> In this case, you can call deployVirtualMachine by CloudMonkey like
>> this.
>> 
>>    $ cloudmonkey deploy virtualmachine serviceofferingid=XXX
>> templateid=XXX zoneid=XXX networkids=XXX
>> userdata='IyEgL2Jpbi9zaAoKZWNobyAiSGVsbG8gdXNlci1kYXRhISIK'
>> 
>> As a result of the command, a new instance is created with user-data
>> delivered to virtual router, so you can access user-data from the
>> instance.
>> 
>> CloudMonkey is CLI tool to call CloudStack REST API easily and you can
>> give parameters as key value pair. In the example, user-data is base64
>> encoded shell script and provied as a parameter.
>> 
>> Best regards
>> Hiroki Ohashi
>> 
>> 2013/12/5 Derek Cole <derek.cole@gmail.com>:
>>> I was kind of wondering about that, when I saw it earlier. It appears
>> that
>>> maybe the cloudstack_resources module has become out of date? I think you
>>> are the preparer of a slide-show I was following here:
>>> http://www.slideshare.net/PuppetLabs/cloudstack-18489665
>>> 
>>> It seems like in those slides, Group was being used to hold the roles?
>> This
>>> is why I assumed that was OK. I was doing something like
>>> 
>>>        case $::role {
>>>                'db': {
>>>                        notify {"detected a fact named role with value
>> db"
>>> :}
>>>                }
>>>        }
>>> because I thought that the custom fact here:
>>> 
>> https://github.com/jasonhancock/puppet-facts/blob/master/cloudstack_userdata.rb
>>> 
>>> Turned the cloudstack userdata into a fact where if you had
>>> "role=db,foo=bar" you would get two custom facts, role and foo, with
>> their
>>> respective values.
>>> 
>>> May I ask for some clarity if that is not the intended usage?
>>> 
>>> In my case, obviously cloudstack_userdata is not generating the correct
>>> facts, because the wget that is in that code returns nothing because
>>> userdata is empty.
>>> 
>>> Thanks,
>>> 
>>> -Derek
>>> 
>>> 
>>> 
>>>> On Wed, Dec 4, 2013 at 12:57 PM, David Nalley <david@gnsa.us> wrote:
>>>> 
>>>> Hi Derek:
>>>> 
>>>> Glad that the puppet resources are useful.
>>>> 
>>>> Setting user-data is different than setting group:
>>>> 
>>>> Look at the options here:
>>>> 
>>>> 
>> http://cloudstack.apache.org/docs/api/apidocs-4.2/user/deployVirtualMachine.html
>>>> 
>>>> --David
>>>> 
>>>> On Wed, Dec 4, 2013 at 11:54 AM, Derek Cole <derek.cole@gmail.com>
>> wrote:
>>>>> Hello,
>>>>> 
>>>>> I am attempting to use the cloudstack API to get user-data for my VMs.
>>>>> 
>>>>> I am creating the VMs with the puppet cloudstack-resources module,
>> and it
>>>>> seems to populate it (From the cloudstack GUI, under "Group" I see my
>>>> data)
>>>>> 
>>>>> However, when I do a
>>>>> 
>>>>> wget http://router/latest/user-data
>>>>> 
>>>>> I get back an empty file. On the VR itself I have checked and there
>> are a
>>>>> bunch of /var/www/html/userdata/IP/user-data files, but every one of
>> them
>>>>> is empty. This same applies to VMs that I added the "Group" user data
>>>>> manually.
>>>>> 
>>>>> The VM's are all FreeBSD10, and I am using xenserver 6.2, and
>> cloudstack
>>>> 4.2
>>>>> 
>>>>> Is this a bug? Is there a workaround or a fix?
>>>>> 
>>>>> Thanks
>>>> 
>> 
>> 
>> 
>> --
>> 大橋 宏樹
>> mail: silvernshell@gmail.com
>> 

Mime
View raw message