Merge pull request #970 from higebu/niftycloud

add(coreos-base/oem-niftycloud): added initial oem for niftycloud
This commit is contained in:
Michael Marineau 2014-12-13 16:41:02 -08:00
commit 20784dd141
5 changed files with 183 additions and 0 deletions

View File

@ -0,0 +1,57 @@
#cloud-config
coreos:
units:
- name: oem-ens192.network
content: |
[Match]
Name=ens192
[Network]
DHCP=v4
DNS=8.8.8.8
DNS=8.8.4.4
- name: vmtoolsd.service
command: start
content: |
[Unit]
Description=VMware Tools Agent
Documentation=http://open-vm-tools.sourceforge.net/
ConditionVirtualization=vmware
[Service]
ExecStartPre=/usr/bin/ln -sfT /usr/share/oem/vmware-tools /etc/vmware-tools
ExecStart=/usr/share/oem/bin/vmtoolsd
ExecStartPost=/usr/share/oem/bin/vmware-toolbox-cmd timesync enable
TimeoutStopSec=5
- name: niftycloud-coreos-cloudinit.service
command: restart
runtime: yes
content: |
[Unit]
After=coreos-setup-environment.service
After=vmtoolsd.service
Requires=coreos-setup-environment.service
Requires=vmtoolsd.service
[Service]
Type=oneshot
EnvironmentFile=/etc/environment
ExecStart=/usr/share/oem/bin/niftycloud-coreos-cloudinit
- name: niftycloud-ssh-key.service
command: restart
runtime: yes
content: |
[Unit]
Description=Sets SSH key from vmtoolsd
[Service]
Type=oneshot
StandardOutput=journal+console
ExecStart=/usr/share/oem/bin/niftycloud-ssh-key
oem:
id: niftycloud
name: NIFTY Cloud
version-id: @@OEM_VERSION_ID@@
home-url: http://cloud.nifty.com/
bug-report-url: https://github.com/coreos/bugs/issues

View File

@ -0,0 +1,35 @@
#!/bin/bash -e
ENV=$1
if [ -z "$ENV" ]; then
echo usage: $0 /etc/environment
exit 1
fi
# test for rw
touch $ENV
if [ $? -ne 0 ]; then
echo exiting, unable to modify: $ENV
exit 1
fi
sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \
-e '/^COREOS_PRIVATE_IPV4=/d' \
"${ENV}"
function get_ip () {
IF=$1
IP=
while [ 1 ]; do
IP=$(ip addr show $IF | awk '/inet /{print $2}' | awk -F'/' '{print $1}')
if [ "$IP" != "" ]; then
break
fi
sleep .1
done
echo $IP
}
echo COREOS_PUBLIC_IPV4=$(get_ip ens192) >> $ENV
echo COREOS_PRIVATE_IPV4=$(get_ip ens224) >> $ENV

View File

@ -0,0 +1,30 @@
#!/bin/bash
VMTOOLSD=""
if [ -x /usr/share/oem/bin/vmtoolsd ]; then
VMTOOLSD="/usr/share/oem/bin/vmtoolsd"
else
exit 1
fi
USER_DATA_DIR=/var/lib/coreos-niftycloud
USER_DATA_PATH=${USER_DATA_DIR}/user-data
USER_DATA_FLAG=$(${VMTOOLSD} --cmd 'info-get guestinfo.set_user_data')
if [ "$USER_DATA_FLAG" == "1" ]; then
TMPFILE=$(mktemp /tmp/XXXXXX-cloud-init)
${VMTOOLSD} --cmd 'info-get guestinfo.user_data' | openssl enc -d -base64 > "${TMPFILE}"
if [ -s "${TMPFILE}" ]; then
coreos-cloudinit --from-file="${TMPFILE}" || exit $?
if [ "$(head -n 1 ${TMPFILE} | tr -d '\r' | tr -d '\n')" = "#cloud-config" ]; then
mkdir -p ${USER_DATA_DIR}
cp -p ${TMPFILE} ${USER_DATA_PATH}
fi
else
echo "guestinfo.user_data undefined." >&2
exit 1
fi
${VMTOOLSD} --cmd 'info-set guestinfo.set_user_data 0'
elif [ -f ${USER_DATA_PATH} ]; then
coreos-cloudinit --from-file="${USER_DATA_PATH}" || exit $?
fi

View File

@ -0,0 +1,25 @@
#!/bin/bash -e
set -e
VMTOOLSD=""
if [ -x /usr/share/oem/bin/vmtoolsd ]; then
VMTOOLSD="/usr/share/oem/bin/vmtoolsd"
else
exit 1
fi
INIT=$(${VMTOOLSD} --cmd 'info-get guestinfo.init' 2>&1)
if [ $? -ne 0 ]; then
echo "guestinfo.init undefined."
${VMTOOLSD} --cmd 'info-set guestinfo.init_result 9999'
exit 0
fi
echo "guestinfo.init: $INIT"
if [ $INIT == "1" ]; then
${VMTOOLSD} --cmd 'info-get guestinfo.ssh_authorized_key' | update-ssh-keys -a "niftycloud" -
${VMTOOLSD} --cmd 'info-set guestinfo.init 0'
fi
${VMTOOLSD} --cmd 'info-set guestinfo.init_result 1'

View File

@ -0,0 +1,36 @@
# Copyright (c) 2014 NIFTY Corp.. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=5
DESCRIPTION="OEM suite for NIFTY Cloud images"
HOMEPAGE=""
SRC_URI=""
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64"
IUSE=""
# no source directory
S="${WORKDIR}"
DEPEND="
app-emulation/open-vm-tools
"
RDEPEND="${DEPEND}"
src_prepare() {
sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \
${FILESDIR}/cloud-config.yml > ${T}/cloud-config.yml || die
}
src_install() {
into "/usr/share/oem"
dobin ${FILESDIR}/niftycloud-ssh-key
dobin ${FILESDIR}/niftycloud-coreos-cloudinit
dobin ${FILESDIR}/coreos-setup-environment
insinto "/usr/share/oem"
doins ${T}/cloud-config.yml
}