Hi Bill,
Thanks for your answer and example scripts. I have a few more questions or
issues regarding your examples:
- I tried out your small hostname script which I have copied on my Debian 7 VM
under /etc/one-context.d/98-hostname. I have then set in my VM a tag called
HOSTNAME with a value and rebooted the VM. Unfortunately the hostname did not
get changed. Did I miss something here?
- I suppose I would have to re-create the one-context package manually if I
would like to include the aforementioned 98-hostname script in the official
one-context package, correct? or I could manually copy it into my image before
deploying it?
Regards,
ML
On Wednesday, February 26, 2014 3:08 PM, "Campbell, Bill"
<[email protected]> wrote:
We don't have the automatic lookup from DNS (that would rely on the DNS record
being created first prior to VM deployment), but we use a script that is placed
in our base images /etc/one-context.d/ directory that does this (which relies
on option 2 as you mention below, a HOSTNAME context variable):
#!/bin/bash
if [ -f /mnt/context.sh ]; then
. /mnt/context.sh
else
exit 0
fi
hostname $HOSTNAME
echo $HOSTNAME > /etc/hostname
exit 0
The above example is for our Ubuntu instances, so it may need to be modified
for RHEL or SUSE based virtuals, if that's what you use.
In addition, if using 4.4, use the files datastore and create an 'init.sh'
script that can then load up additional files that you assign to the template
(so you don't need to manually update each image). We use an init.sh script
like this to inject new configuration/contextualization options so we don't
need to update our base image very often:
#!/bin/sh
#
# OpenNebula Init Script
#
# init.sh
#
# Copies additional context scripts to the appropriate directory
#
## Set environment
SOURCE=/mnt
DEST=/etc/one-context.d
if [ -f /etc/redhat-release ]; then
OSVERSION=RHEL
else
OSVERSION=UBUNTU
fi
if [ -f /usr/bin/rsync ]; then
echo "Applying additional contextualization scripts..."
else
if [ "$OSVERSION" != "UBUNTU" ]; then
yum -y install rsync
else
apt-get update && apt-get -y install rsync
fi
fi
## Copy Files. This will IGNORE any *.sh files in the source/destination
directories, as all context scripts
## should NOT have the .sh extension.
for i in $(ls $SOURCE --ignore=*.sh)
do
if [ -f $DEST/$i ]; then
echo "$i exists in context directory. Skipping..."
else
rsync -au $SOURCE/$i /etc/one-context.d/
chown root.root /etc/one-context.d/*
chmod 700 /etc/one-context.d/*
service vmcontext restart
fi
done
exit 0
This will check the OS Version and install the appropriate package. It will
NOT copy any file that has the .sh extension, but if you follow the context
script standard of ##-<scriptname> then you can add additional context upon
deployment. Rudimentary, sure, but works well enough for us.
________________________________
From: "ML mail" <[email protected]>
To: [email protected]
Sent: Wednesday, February 26, 2014 5:39:46 AM
Subject: [one-users] ONE context package
Hi,
I am very happy with the ONE context package for automated contextualization on
Debian and CentOS but I miss one feature: automatically and manually setting
the hostname of the VM.
Basically it would be great to have the following two options:
- automatically set the hostname of the VM based doing a reverse DNS lookup on
the IP address, for example I have as reverse DNS entry
"one-vm-1-0-16-172.mydomain.com" then the hostname of my VM would be
automatically set to "one-vm-1-0-16-172".
- using a HOSTNAME tag in the VM to manually enter a hostname and overriding
the automatic hostname attribution described above
What do you think?
Regards,
ML
_______________________________________________
Users mailing list
[email protected]
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
NOTICE: Protect the information in this message in accordance with the
company's security policies. If you received this message in error, immediately
notify the sender and destroy all copies.
_______________________________________________
Users mailing list
[email protected]
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
_______________________________________________
Users mailing list
[email protected]
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org