Fedora 16上源码建立pydev + eclipse的OpenStack开发环境笔记草稿 ( by quqi99 )
作者:张华 发表于:2012-3-30
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
( http://blog.csdn.net/quqi99 )
1网络桥接配置
首先,fedora16对网卡使用了新的命名方式,第一块网卡不叫eth0,我的T420上叫em1。它为什么做,有兴趣可参考文献:
Fedora15的新的网卡命名方式http://www.20ju.com/content/V168885.htm
总之,我不喜欢这种叫法,现在将网卡名称从em1改回eth0,具体做法请参考文献,(修改fedora16的网络接口名,使其变回eth0http://www.bitbi.biz/fedora-2/%E4%BF%AE%E6%94%B9fedora-16-%E7%9A%84%E7%BD%91%E7%BB%9C%E6%8E%A5%E5%8F%A3%E5%90%8D%EF%BC%8C%E4%BD%BF%E5%85%B6%E5%8F%98%E5%9B%9E-eth0-2685)
最后配置桥接(参考文献:http://blog.bodhizazen.net/linux/fedora-15-virt-manager-bridged-networking/):
sudoyuminstallbridge-utils
sudovi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
#changethehardwareaddresstomatchthehardwareaddressyourNICuses
HWADDR=00:21:CC:60:D6:1A
ONBOOT=yes
#BOOTPROTO=dhcp
#MODE=Managed
BRIDGE=br100
NM_CONTROLLED=no
sudovi/etc/sysconfig/network-scripts/ifcfg-br100
DEVICE=br100
TYPE=Bridge
BOOTPROTO=dhcp
#BOOTPROTO=static
#IPADDR=192.168.99.100
#NETWORK=192.168.99.0
#NETMASK=255.255.255.0
#GATEWAY=192.168.99.1
#DNS1=202.106.195.30
ONBOOT=yes
NM_CONTROLLED=no
最后重启网络服务,sudoservicenetworkrestart,需要注意的是,fedora默认使用NetworkManager来管理网卡,而briage不支持NetworkManager,所以需要关闭NetworkManager服务(sudoserviceNetworkManagerstop&sudoserviceNetworkManager
disable)。不然会报下列错(tail-f/var/log/message):
http://forums.fedoraforum.org/showthread.php?t=262356
Bringingupinterfaceeth0:Error:Connectionactivationfailed:DevicenotmanagedbyNetworkManagerorunavailable
[FAILED]
RTNETLINKanswers:Fileexists
不过,我没有使用上述方法,因为你关闭NetworkManager服务的话,你的无线网卡也不能用NetworkManager管理了,所以我在上述的配置中加了“NM_CONTROLLED=no”实现了同样的目的。
我机器的其他条件是:
1)你得确保安装了libvirtd(yuminstalllibvirtd&servicelibvirtdstart),可用virsh-cqemu:///systemlist命令测试
2)安装gcc,这个在安装pythonmodules时会用到
3)mysql的root用户应该有密码,可用echo"showdatabases"|mysql-uroot-ppassword
4)在命令行中先切换到root用户,然后再启动eclipse
2通过git下载源码
1) 安装java与eclipse,略
2)为eclipse安装pydev插件(help->installnewsoftwae...,http://pydev.org/updates),然后再"window->preferences":菜单中的Pydev->Interpreter–Python选项卡中点击AutoConfig按钮配置python
3) 为eclipse安装egit插件(http://download.eclipse.org/egit/updates)
4)为eclipse安装django插件:
installdjangopluginforpython,firstdownloadhttp://www.djangoproject.com/download/1.3.1/tarball/
sudo
python
setup.py
installexport
PATH=/usr/lib/python2.7/site-packages/django/bin:$PATH
django-admin.py
–
version
django-admin.py
startproject
myFirstDjango
cd
myFirstDjango
sudo
chmod
777
*
./manage.py
runserver
5)在eclipse中通过git插件clone下列组件的master分支(cloneagitrepository),注意,有的组件会下载失败,只需要将https协议换成git协议即可。我的代码下载在/bak/openstack目录下。
#computeservice
NOVA_REPO=https://github.com/openstack/nova.git
#storageservice
SWIFT_REPO=https://github.com/openstack/swift.git
#imagecatalogservice
GLANCE_REPO=https://github.com/openstack/glance.git
#unifiedauthsystem(managesaccounts/tokens)
KEYSTONE_REPO=https://github.com/openstack/keystone.git
#awebsockets/html5orflashpoweredVNCconsoleforvminstances
NOVNC_REPO=https://github.com/cloudbuilders/noVNC.git
#djangopoweredwebcontrolpanelforopenstack
HORIZON_REPO=https://github.com/openstack/horizon.git
#pythonclientlibrarytonovathathorizon(andothers)use
NOVACLIENT_REPO=https://github.com/openstack/python-novaclient.git
#pythonkeystoneclientlibrarytonovathathorizonuses
KEYSTONECLIENT_REPO=https://github.com/openstack/python-keystoneclient
#quantumservice
QUANTUM_REPO=https://github.com/openstack/quantum
#quantumclient
QUANTUM=https://github.com/openstack/python-quantumclient
#Tempesttestsuite
https://github.com/openstack/tempest.git
#melangeservice
https://github.com/openstack/melange.git
#pythonmelangeclientlibrary
https://github.com/openstack/python-melangeclient.git
#swiftclient
https://github.com/chmouel/python-swiftclient.git
3在eclipse中导入工程
1)在"GitRepositories"视图上上步clone下来的每一个工程的"WorkingDirector"目录上右键点击选"importprojects"导入工程,再选“importasgeneralproject",直接见下图吧。
2)依次做完上步之后,然后可以进入java视图,在每个工程上点右键选"Pydev->setasPydevproject",即使是horizon工程也不例外,设置的是pydevproject,而不是django工程
3安装一些依赖包
-
install
python-pip,nowpipisareplacementfor`easy_install`
sudo yumsearchpython-pip
sudo yuminstallpython-pip.noarch
sudo yuminfopython-pip.noarch
-
sudo yuminstallgcc;
sudo yuminstallpython-devel
sudo yuminstallpython-greenlet
sudo yuminstallMySQL-python
sudo yuminstalleuca2ools
sudo yuminstalldnsmasq
sudo yuminstallscsi-target-utils
-
install
MQ
rabbitmqconfiguration
sudoyuminstallrabbitmq-server
sudoservicerabbitmq-serverstart
sudochkconfigrabbitmq-serveron
changetherabbitpasswordsincethedefaultis"guest"
sudorabbitmqctlchange_passwordguestpassword
sudorabbitmqctlstatus
-
install
mysql
sudoyuminstallmysql-serverphp-mysql
sudoservicemysqldstart
sudochkconfigmysqldon
mysql-uroot-ppasswordSETPASSWORDFOR'root'@'localhost'=PASSWORD('password');
sudomysql-uroot-ppassword-h127.0.0.1-e"GRANTALLPRIVILEGESON*.*TO'root'@'%'identifiedby'password';"
sudocp/usr/share/mysql/my-small.cnf/etc/my.cnf
sudosed-i