[one-users] Ubuntu Cloud Images
Tobias Brunner
tobias at tobru.ch
Wed Oct 23 08:25:46 PDT 2013
Hi Ricardo,
Thanks a lot for the explanation, it's now way more clear how the
metadata server works!
Cheers,
Tobias
On 23.10.2013 16:41, Ricardo Duarte wrote:
> Hi Tobias,
>
> As there is no standard "dns" suffix, I just added a .cloud to the
> hostname.
> You can change it by doing the following:
>
> - Edit /usr/lib/one/ruby/cloud/metadata/MetadataServer.rb
> - And replace .cloud with your domain:
> when 'local-hostname' # 2007-01-19
>
> @value = "i-#{vm.id}.cloud"
> when 'public-hostname'
> @value = "i-#{vm.id}.cloud"
>
> If you use the econe-* commands, userdata and public key should work
> without any change.
> If you create your own template, just add the following to context:
>
> CONTEXT = [
>
> (...)
> EC2_USER_DATA = <YOUR USER DATA>
> EC2_PUBLIC_KEY = <YOUR PUBLIC KEY>
> EC2_KEYNAME = <THE NAME OF THE KEY>
> ]
>
> If you want to use your own variables instead, just change them on
> /usr/lib/one/ruby/cloud/metadata/MetadataServer.rb.
> Search and replace with your own data:
>
> TEMPLATE/CONTEXT/EC2_KEYNAME
> TEMPLATE/CONTEXT/EC2_PUBLIC_KEY
> TEMPLATE/CONTEXT/EC2_USER_DATA
>
> The metadata server was thought to work with instances launched by
> eucatools, hybridfox or econe-* , and assumes that you are using the
> standard /etc/one/ec2query_templates/*.erb .
> But it can be easily modified to be more generic.
>
> Regards,
> Ricardo Duarte
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
> For reference, this is the ec2 template I'm currently using:
>
> NAME = eco-vm-<%= erb_vm_info[:instance_type ]%>
>
> <% if erb_vm_info[:instance_type ] == "m1.small" %>
> CPU = 0.1
> MEMORY = 256
> <% elsif erb_vm_info[:instance_type ] == "m1.medium" %>
> CPU = 0.2
> MEMORY = 1024
> <% elsif erb_vm_info[:instance_type ] == "m1.large" %>
> CPU = 0.4
> MEMORY = 2048
> <% elsif erb_vm_info[:instance_type ] == "m1.xlarge" %>
> CPU = 0.8
> MEMORY = 4096
> <% end %>
> OS = [ ARCH="x86_64", BOOT="hd" ]
> DISK = [ IMAGE_ID = <%= erb_vm_info[:img_id] %> , CACHE="none",
> TARGET="vd", DRIVER="qcow2" ]
> NIC = [NETWORK_ID=0, MODEL="virtio"]
> IMAGE_ID = <%= erb_vm_info[:ec2_img_id] %>
> INSTANCE_TYPE = <%= erb_vm_info[:instance_type]%>
> GRAPHICS = [ TYPE="vnc" ]
> FEATURES = [ ACPI="yes" ]
> RAW = [ DATA="<devices><serial type='pty'><target
> port='0'/></serial></devices>", TYPE="kvm" ]
> CONTEXT = [
> HOSTNAME = "i-$VMID",
> ETH0_DNS = "$NETWORK[DNS, NETWORK_ID=0]",
> ETH0_GATEWAY = "$NETWORK[GATEWAY, NETWORK_ID=0]",
> ETH0_IP = "$NIC[IP]",
> ETH0_MASK = "$NETWORK[MASK, NETWORK_ID=0]"
> <% if @password %>, PASSWORD = "<%= @password %>"<% end %>
> <% if erb_vm_info[:user_data] %>, EC2_USER_DATA = "<%=
> erb_vm_info[:user_data] %>"<% end %>
> <% if erb_vm_info[:public_key] %>, EC2_PUBLIC_KEY = "<%=
> erb_vm_info[:key_name] %>"<% end %>
> <% if erb_vm_info[:public_key] %>, EC2_KEYNAME = "<%=
> erb_vm_info[:public_key] %>"<% end %>
> ]
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>> Date: Wed, 23 Oct 2013 16:26:49 +0200
>> From: tobias at tobru.ch
>> To: rjtd21 at hotmail.com
>> CC: users at lists.opennebula.org
>> Subject: RE: [one-users] Ubuntu Cloud Images
>>
>> Hi,
>>
>> Ok, I got this working now! Thanks a lot for your ideas... I very
>> appreciate the nice help.
>>
>> Now the metadata server returns the following values:
>>
>> ubuntu at ip-192-168-49-152:~$ ./ec2-metadata-mod --all
>> ami-id: not available
>> ami-launch-index: 76
>> ami-manifest-path: none
>> ancestor-ami-ids: not available
>> block-device-mapping:
>> not available
>> instance-id: i-76
>> instance-type: not available
>> local-hostname: one-76.cloud
>> local-ipv4: 192.168.49.152
>> kernel-id: not available
>> placement: not available
>> product-codes: not available
>> public-hostname: one-76.cloud
>> public-ipv4: 192.168.49.152
>> public-keys:
>> not available
>> ramdisk-id: not available
>> reservation-id: r-76
>> security-groups: not available
>> user-data: not available
>>
>> Some questions regarding the values:
>>
>> > local-hostname: one-76.cloud
>> > public-hostname: one-76.cloud
>> How are these values created? Shouldn't the value correspond to the
> vm
>> name I've chosen in OpenNebula?
>>
>> > public-keys:
>> > not available
>> There is a public key available in the template, so I'm wondering
> why
>> it's not available.
>>
>> Will the metadata server find it's way into the official OpenNebula
>> distribution, or will it stay separate?
>>
>> Cheers,
>> Tobias
>>
>>
>> On 23.10.2013 10:58, Ricardo Duarte wrote:
>> > Hi Tobias,
>> >
>> > I would say that the NAT method will not work if both the
>> > metadata-server and the instances are on the same IP network.
>> >
>> > You can try to do the following:
>> >
>> > - On your router, add a new IP to the VLAN => 169.254.169.253/30
>> > - On the metadata-server, add the IP 169.254.169.254/30 to the
>> > interface
>> > - Edit the /etc/one/metadata.conf to listen on 169.254.169.254,
> and
>> > port 80
>> > - Make sure your router forwards packets from your instance
> network to
>> > this network
>> >
>> > To ensure metadata server is working fine, before making the
> changes,
>> > just change the IP address and port on the ec2-metadata script to
> the
>> > real ip and port of the server, and check if it returns any value.
>>
>>
More information about the Users
mailing list