Skip to content

Instantly share code, notes, and snippets.

@Aricg
Last active August 29, 2015 14:02
Show Gist options
  • Save Aricg/db7301a6ef3975e1157c to your computer and use it in GitHub Desktop.
Save Aricg/db7301a6ef3975e1157c to your computer and use it in GitHub Desktop.
Prepare Fedora cloud image for rackspace public cloud
#Get Fedora cloud image
wget http://download.fedoraproject.org/pub/fedora/linux/updates/20/Images/x86_64/Fedora-x86_64-20-20140407-sda.qcow2
#Set a root password so that you can modify your image
sudo yum install libguestfs-tools
sudo libguestfs-test-tool
sudo virt-sysprep -a Fedora-x86_64-20-20140407-sda.qcow2 --root-password password:SomePassword
#start modified image in kvm and connect via console:
root@fedoracloud ~]# yum install vim
#File: /etc/ssh/ssdconfig
permitrootlogin yes
#password authentication no
root@fedoracloud ~]# /etc/init.d/sshd restart
Log in over ssh. (consoles suck)
# Make needed changes for networking to start in rackspace
##Networking###
#nova agent and xe-daemon work together to start the networking
#Nova Agent
root@fedoracloud ~]# wget http://boot.rackspace.com/files/nova-agent/nova-agent-Linux-x86_64-1.39.0.tar.gz
root@fedoracloud ~]# mkdir nova-agent
root@fedoracloud ~]# pushd nova-agent
root@fedoracloud ~]# tar zxf ../nova-agent-Linux-x86_64-1.39.0.tar.gz
root@fedoracloud ~]# ./installer.sh
root@fedoracloud ~]# sed '1i### BEGIN INIT INFO\n# Provides: Nova-Agent\n# Required-Start: $remote_fs $syslog\n# Required-Stop: root@fedoracloud ~]# $remote_fs $syslog\n# Default-Start: 2 3 4 5\n# Default-Stop: 0 1 6\n# Short-Description: Start daemon at boot time\n# Description: Enable service provided by daemon.\n### END INIT INFO\n' /usr/share/nova-agent/1.39.0/etc/generic/nova-agent > /usr/share/nova-agent/1.39.0/etc/generic/nova-agent.lsb
root@fedoracloud ~]# popd
root@fedoracloud ~]# chkconfig nova-agent on
#xs-tools
root@fedoracloud ~]# wget http://boot.rackspace.com/files/xentools/xs-tools-6.2.0.iso
root@fedoracloud ~]# mkdir tmp
root@fedoracloud ~]# mount -o loop xs-tools-6.2.0.iso tmp
root@fedoracloud ~]# pushd tmp/Linux
root@fedoracloud ~]# ./install.sh
root@fedoracloud ~]# popd
root@fedoracloud ~]# umount tmp
root@fedoracloud ~]# rmdir tmp
#File /etc/sysconfig/network
NETWORKING=yes
NOZEROCONF=yes
NETWORKING_IPV6=no
#File /etc/sysconfig/network-scripts/route-eth0
default via 10.30.11.1 dev eth0
Uh will this work? http://docs.openstack.org/image-guide/content/ch_converting.html
qemu-img convert -f qcow2 -O vpc ~/Downloads/Fedora-x86_64-20-20140407-sda-clone-clone.qcow2 Fedora.vhd
Clone the VM and scp it to a Ubuntu 14.04 host
root@ubuntu1404:~# apt-get install qemu-img qemu-utils git python-novaclient
root@ubuntu1404:~# git clone https://github.com/metral/rpc_rd.git
root@ubuntu1404:~# cd rpc_rd/qcow_image/ && bash -x compile_vhdutil.sh
root@ubuntu1404:~# sudo ./qcow_to_vhd.sh ~/Fedora-x86_64-20-20140407-sda-clone.qcow2 .
root@ubuntu1404:~# pip install git+git://github.com/rackspace/pyrax.git
#File ~/pyrax_rc
[rackspace_cloud]
username = rackspace-username
api_key = 00000
#This step took 4hours on my machine
root@ubuntu1404:~# python upload_to_cloudimages.py DFW ~/Fedora-x86_64-20-20140407-sda-clone.vhd "Some_uniq_name"
#boot the machine
source keystonerc_rackspace
time nova boot some.machine.fqdn \
--image "$(nova image-list | grep Some_uniq_name | awk '{print $2}')"\
--poll \
--no-service-net \
--no-public \
--nic net-id=ce359490-5cd0-4717-a0cd-41fbd3b522b2 \
--key-name Your_key_name \
--flavor performance1-8 \
--config-drive=false
References
http://developer.rackspace.com/blog/bootstrap-your-qcow-images-for-the-rackspace-public-cloud.html
http://www.syntheticworks.com/rackspace-cloud/linux-rackspace-cloud/all-about-nova-agent-linux/
http://developer.rackspace.com/blog/unlimited-jenkins-slaves-in-5-quick-steps.html
http://jclouds.apache.org/guides/rackspace/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment