<div dir="ltr">Hi,<div><br></div><div style>I'm glad you found a way to make it work.</div><div style><br></div><div style>If it is really needed, we could add support to reference other context attributes. Please open a request If you still think it would be better.</div>

<div style><br></div><div style>Cheers,</div><div style>Carlos</div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">--<br>Join us at <a href="http://opennebulaconf.com" target="_blank">OpenNebulaConf2013</a> in Berlin, 24-26 September, 2013<br>

--<div>Carlos Martín, MSc<br>Project Engineer<br>OpenNebula - The Open-source Solution for Data Center Virtualization<div><span style="border-collapse:collapse;color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"><a href="http://www.OpenNebula.org" target="_blank">www.OpenNebula.org</a> | <a href="mailto:cmartin@opennebula.org" target="_blank">cmartin@opennebula.org</a> | <a href="http://twitter.com/opennebula" target="_blank">@OpenNebula</a></span><span style="border-collapse:collapse;color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"><a href="mailto:cmartin@opennebula.org" style="color:rgb(42,93,176)" target="_blank"></a></span></div>

</div></div></div>
<br><br><div class="gmail_quote">On Thu, May 16, 2013 at 2:14 PM, Valentin Bud <span dir="ltr"><<a href="mailto:valentin.bud@gmail.com" target="_blank">valentin.bud@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hello Community,<br>
<br>
First of all, I apologise I forgot to say hi in my previous E-Mail :|.<br>
<div><div class="h5"><br>
On Thu, May 16, 2013 at 10:28:14AM +0300, Valentin Bud wrote:<br>
> I am trying to reference the CONTEXT variables from within CONTEXT.<br>
><br>
> For example, I define the DOMAIN="domain.tld" and the HOSTNAME="host".<br>
> I would like to have a variable FQDN="$HOST.$DOMAIN.".<br>
><br>
> I have tried to achieve the above using the following in CONTEXT section<br>
> of the template.<br>
><br>
> Case I<br>
> --<br>
><br>
> $ onetemplate show vars<br>
><br>
> TEMPLATE CONTENTS<br>
> CONTEXT=[<br>
>   DOMAIN="domain.tld",<br>
>   FQDN="$DOMAIN.$HOSTNAME.",<br>
>   HOSTNAME="host" ]<br>
><br>
> [... output omitted for brevity ...]<br>
><br>
> Instantiating the template results in the following variables added to<br>
> the VM.<br>
><br>
> $ onevm show vars<br>
><br>
> VIRTUAL MACHINE TEMPLATE<br>
> CONTEXT=[<br>
>   DISK_ID="1",<br>
>   DOMAIN="domain.tld",<br>
>   *FQDN="..",*<br>
>   HOSTNAME="host",<br>
>   TARGET="hda" ]<br>
><br>
> Case II<br>
> --<br>
><br>
> $ onetemplate show vars<br>
><br>
> CONTEXT=[<br>
>   DOMAIN="domain.tld",<br>
>   FQDN="$CONTEXT[$DOMAIN].$CONTEXT[$HOSTNAME].",<br>
>   HOSTNAME="host" ]<br>
> [... output omitted for brevity ...]<br>
><br>
> Same result in the VM.<br>
><br>
> $ onevm show vars<br>
><br>
> VIRTUAL MACHINE TEMPLATE<br>
> CONTEXT=[<br>
>   DISK_ID="1",<br>
>   DOMAIN="domain.tld",<br>
>   *FQDN=".."*,<br>
>   HOSTNAME="host",<br>
>   TARGET="hda" ]<br>
> [... output omitted for brevity ...]<br>
><br>
> Is it possible to achieve what am I trying or should I search for a new<br>
> solution?<br>
><br>
> I have a simple use case. I am generating, via a hook, the ssh keys for<br>
> the VM in question. At boot I copy the keys from /mnt to /etc/ssh via<br>
> a crafted one-context script. Awesome mechanism by the way :-).<br>
><br>
> I am generating the keys in<br>
> CONTEXT_FILES_LOCATION=/var/lib/cloud/context/host.domain.tld.<br>
><br>
> I would like to use the following in the CONTEXT section:<br>
><br>
> CONTEXT=[<br>
> CONTEXT_FILES_LOCATION=/var/lib/cloud/context/host.domain.tld./,<br>
> DOMAIN="domain.tld",<br>
> FILES="$CONTEXT_FILES_LOCATION/$FQDN/ssh_host_rsa_key ...",<br>
> HOSTNAME="host",<br>
> FQDN="$HOSTNAME.$DOMAIN." ]<br>
><br>
> This makes the template much more dynamic. I would just change the HOSTNAME<br>
> and the paths would get generated dynamically.<br>
><br>
<br>
</div></div>Writing the HOSTNAME, DOMAIN, CONTEXT_FILES_LOCATION outside the CONTEXT<br>
section and referencing them from within CONTEXT works :-).<br>
<br>
Example<br>
<div class="im">--<br>
<br>
$ onetemplate show vars<br>
<br>
TEMPLATE CONTENTS<br>
CONTEXT=[<br>
</div>  CONTEXT_FILES_LOCATION="$CONTEXT_FILES_LOCATION",<br>
  DOMAIN="$DOMAIN",<br>
  FILES="$CONTEXT_FILES_LOCATION/$FQDN/ssh_host_rsa_key<br>
  $CONTEXT_FILES_LOCATION/$FQDN/ssh_host_rsa_key.pub",<br>
  FQDN="$HOSTNAME.$DOMAIN.",<br>
  HOSTNAME="$HOSTNAME" ]<br>
CONTEXT_FILES_LOCATION="/var/lib/cloud/context"<br>
CPU="1"<br>
DISK=[<br>
  IMAGE="vars" ]<br>
DOMAIN="domain.tld"<br>
GRAPHICS=[<br>
  LISTEN="0.0.0.0",<br>
  TYPE="vnc" ]<br>
HOSTNAME="host"<br>
MEMORY="2048"<br>
NIC=[<br>
  NETWORK="host.domain.tld" ]<br>
OS=[<br>
  ARCH="x86_64" ]<br>
VCPU="4"<br>
<br>
After instantiating the machine I have the desired results.<br>
<div class="im"><br>
$ onevm show vars<br>
<br>
VIRTUAL MACHINE TEMPLATE<br>
CONTEXT=[<br>
</div>  CONTEXT_FILES_LOCATION="/var/lib/cloud/context",<br>
  DISK_ID="1",<br>
  DOMAIN="<a href="http://dev.corview.de" target="_blank">dev.corview.de</a>",<br>
  FILES="/var/lib/cloud/context//ssh_host_rsa_key<br>
  /var/lib/cloud/context//ssh_host_rsa_key.pub",<br>
  FQDN="vars.domain.tld.",<br>
  HOSTNAME="vars",<br>
  TARGET="hda" ]<br>
<br>
Now I can easily generate SSH host keys for each machine if this wasn't<br>
done already in a previous VM instantation.<br>
<br>
Thanks and sorry for the noise. If this is mentioned somewhere in the<br>
docs, my bad.<br>
<div class="im"><br>
Cheers and Goodwill,<br>
<br>
--<br>
Valentin Bud<br>
</div><a href="http://databus.pro/" target="_blank">http://databus.pro/</a> | <a href="mailto:valentin@databus.pro">valentin@databus.pro</a><br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opennebula.org">Users@lists.opennebula.org</a><br>
<a href="http://lists.opennebula.org/listinfo.cgi/users-opennebula.org" target="_blank">http://lists.opennebula.org/listinfo.cgi/users-opennebula.org</a><br>
</div></div></blockquote></div><br></div>