分享

一键部署OpenStack中文英文对照安装指导

rsgg03 发表于 2014-1-12 00:17:36 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 9698
本帖最后由 nettman 于 2014-1-14 00:53 编辑



readme.txt
  1. ## 1. deploy OpenStack from scrach.
  2. ## 部署All-in-one的OpenStack系统
  3. Only checkout and run it!
  4. 1. Setup a fresh Ubuntu Precise(12.04) OS.
  5. 2. Clone onestack:
  6. ##svn checkout http://onestack.googlecode.com/svn/trunk/ onestack-read-only
  7. git clone git://github.com/Kayven/OneStack.git
  8. 3. run it.
  9. #cd onestack-read-only/ && ./oneStack.sh
  10. cd OneStack && ./oneStack.sh
  11. or
  12. ## set up OpenStack in 2 steps:
  13. ## 分拆oneStack.sh,首先安装基本系统包括5大组件和必要的服务,然后上传镜像,创建实例,需要先做网络等配置,参照oneStack.sh里面的说明
  14. base: ./setup_base.sh
  15. img and instance: ./setup_test.sh
  16. ## usefull tools
  17. ## 2. delete OpenStack
  18. ./delStack.sh
  19. ## 3. delete all
  20. ./delAll.sh
  21. ## 4. reset OpenStack
  22. ./resetStack.sh clear
  23. ./resetStack.sh
  24. ## 5. add OpenStack compute node
  25. ./addComputeNode.sh
  26. ## 6. add OpenStack client manage node
  27. ./addClient.sh
  28. ## 8. otherwise, contact me at Hily.Hoo@gmail.com, thanks.
复制代码
欢迎大家如about云官方群371358502,更新咨询,更新资源,随时关注

没找到任何评论,期待你打破沉寂

nettman 发表于 2014-1-14 00:48:58
本帖最后由 nettman 于 2014-1-14 00:52 编辑

下面为中文一键部署指导,可以中文和英文相互对照
本文工具可以在裸机和虚拟机一键部署真实的 OpenStack云计算平台,主要步骤是配置网络、数据库、keystone、glance、nova、dashboard、创建镜像和启动实例等,代 码内有详细注释。
一、项目(OneStack)地址:
http://onestack.googlecode.com
喜欢git或者github的请去 https://github.com/Kayven/OneStack
不希望同行们把过多精力花在OpenStack的安装部署上(以后应该会改进),而是对其机制原理、工程实践、性能调优、应用服务等深入研究探讨。 所以提供这个一键部署的工具,帮助大家快速建立环境实验生产实践。项目结构如下:

  • oneStack.sh(一键部署 all-in-one 的 OneStack,简单安装的主要文件);
  • setup_base.sh(安装基本系统);
  • setup_test.sh(添加镜像和实例);
  • addComputeNode.sh(增加计算节点);
  • delStack.sh(只卸载nova、glance、keystone等);
  • delAll.sh(卸载所有安装的组件和工具);
  • resetStack.sh(清空数据库,镜像、网络和实例等,重新上传镜像、创建实例);
  • addClient.sh(添加客户端,nova管理等);
  • HAStack 目录(OneStack 的高可用性,希望更多人可以提出自己的解决方案)。
二、部署(OneStack)步骤

简单部署OneStack:
  1. wget http://onestack.googlecode.com/files/oneStack.sh && chmod +x oneStack.sh && ./oneStack.sh
复制代码
完整部署OneStack:

Just checkout and run it!

1. Setup a fresh Ubuntu Precise(12.04) Sever OS.

2. checkout
  1. svn checkout http://onestack.googlecode.com/svn/trunk/ onestack-read-only
复制代码
3. run it!
  1. cd onestack-read-only/ && ./oneStack.sh
复制代码
(如何简单配置参数见留言说明,或者见http://onestack.googlecode.com,或者见脚本注释)

(多节点的部署类似,只需要在计算节点设置并执行addComputeNode.sh)



三、项目(OneStack)说明:
  • 在Ubuntu12.04(precise)上安装部署Opentack Essex
  • 只需要一个文件即可完成全部功能组件的部署:http://onestack.googlecode.com/files/oneStack.sh
  • 里面含有详细的注释说明,看完整个脚本相当于看完了安装文档;
  • svn整个项目只是多一些辅助工具,包括重置、重新安装、卸载等;
  • 也欢迎同道人补充和完善更多的功能,适用于更多的操作系统和应用场景。
四、项目(OneStack)来源:
  • 类似项目有DevStack,但是DevStack是使用screen安装OpenStack,重启服务器会出现一些问题,没有提供重启、重置等有用功能;
  • 由于组件独立分散,安装过程过于繁琐,可以抽象成通用的项目供大家方便使用;
  • 官方提供了一个比较完善的入门文档,但是,这一步一步下来得做很多无用功,容易漏错而引起很多莫名和头疼的问题;
  • 本项目不像devstack只是提供实验环境,而是可以实际部署使用,可以自己修改配置,按需增加组件和功能,实现一键部署,可扩展使用。
五、项目(OneStack)描述:
一键完整部署OpenStack,可以自定义配置、方便地扩展功能组件,无交互地自动部署;
安装过程不需要等待配置:
  • 功能齐全,附带了卸载、重置、添加计算节点等工具
  •       可以卸载主要的opentack组件,包括nova、glance、keystone等;
  •       可以重置数据库和配置,重新安装openstack组件;
  •       可以根据需要自行更改脚本,方便部署自己的云计算平台。


  • 经过多次测试,完整在VMware虚拟机上部署OpenStack
  测试环境:VMware ESXi 5.0虚拟Dell R210服务器,其中一个虚拟机上部署Opentack,启动多个实例,正常运行;远程访问和web管理正常;重启、重置、重新安装都正常。
      系统要求:双网卡,64位机器,支持VT技术

  • 脚本运行过程会做如下工作:

  • 配置网络相关;
  • 安装和配置数据库;
  • 安装和部署身份管理组件keystone;
  • 安装和部署镜像管理组件glance;
  • 安装和部署控制与计算组件nova;
  • 安装和部署web管理组件dashboard;
  • 上传和添加ubuntu12.04镜像;
  • 设置项目安全规则和密钥;
  • 启动实例,并正常运行。


为了方便大家查阅、讨论、交流、review和完善,在此贴出主要代码。
  1. #!/usr/bin/env bash
  2. # **oneStack.sh** is a tool to deploy complete and real OpenStack cloud computing service.
  3. # This script installs and configures various combinations of *Glance*,
  4. # *Horizon*, *Keystone*, *Nova*, *Mysql* and others.
  5. # Hily.Hoo@gmail.com (Kayven)
  6. # Learn more and get the most recent version at http://code.google.com/p/onestack/
  7. set -o xtrace
  8. ## 请使用root执行本脚本!
  9. ## Ubuntu 12.04 ("Precise") 部署 OpenStack Essex(或者ubuntu11.10版本)
  10. ## 一:准备系统
  11. ## 1:下载ubuntu 12.04. 服务器版本
  12. ## http://mirrors.ustc.edu.cn/ubuntu-releases/12.04/ubuntu-12.04-server-amd64.iso
  13. ## 2:安装OS
  14. ## 最小化安装,只需要安装ssh server就可以。
  15. ## 装完系统后 更新源里的包,更新系统。确保你装的是最新版本的包。
  16. ## 3:设置root权限
  17. ## 为了简单,全部都是用root来运行。
  18. if [ `whoami` != "root" ]; then
  19.         sudo passwd
  20.         exec su -c 'sh ./oneStack.sh'
  21. fi
  22. ## 4:设置参数和环境配置,直到两行#号结束
  23. ## 这个配置以后就不需要更改了,比如看到192.168.139.50等ip,不用更改,脚本会自动替换这些初始值。
  24. ## 可以变动的是,第500行的image的下载;或者去掉第七步开始的部分(上传镜像,创建实例)
  25. ##########################################################################
  26. ##########################################################################
  27. ## 如果原来安装过OpenStack,请先执行 ./delStack.sh
  28. ## 1)配置参数
  29. ## 数据库相关
  30. MYSQL_PASSWD=${MYSQL_PASSWD:-"cloud1234"}
  31. NOVA_DB_USERNAME=${NOVA_DB_USERNAME:-"novadbadmin"}
  32. NOVA_DB_PASSWD=${NOVA_DB_PASSWD:-"cloud1234"}
  33. GLANCE_DB_USERNAME=${GLANCE_DB_USERNAME:-"glancedbadmin"}
  34. GLANCE_DB_PASSWD=${GLANCE_DB_PASSWD:-"cloud1234"}
  35. ## 注意:单网卡的去掉interfaces的eth1,并把nova.conf里面eth1改完eth0即可!
  36. ## 自行检查下面network/interfaces的两个网卡设置
  37. ## 本机器外网ip (包括局域网的内网ip,相对于OpenStack内网而言的)
  38. OUT_IP="192.168.139.50"
  39. OUT_IP_PRE="192.168.139"
  40. ## nova-network内网ip
  41. IN_IP="10.0.0.1"
  42. IN_IP_PRE="10.0.0"
  43. ## flat的起始ip
  44. FLAT_IP="10.0.0.40"
  45. ## 浮动ip的起始值
  46. FLOAT_IP="192.168.139.225"
  47. ## 选择虚拟技术,裸机使用kvm,虚拟机里面使用qemu
  48. VIRT_TYPE="qemu"
  49. ## token, 登录dashboard密码(用户名admin)
  50. ADMIN_TOKEN="admin"
  51. ##########################################################################
  52. ## 2)检查系统是否ubuntu12.04,据反映11.10也可以正常安装,可以去掉这一段检查
  53. # Determine what system we are running on.  This provides ``os_VENDOR``...
  54. # Determine OS Vendor, Release and Update
  55. #if [[ -x "`which lsb_release 2>/dev/null`" ]]; then
  56.     os_VENDOR=$(lsb_release -i -s)
  57.     os_RELEASE=$(lsb_release -r -s)
  58.     os_UPDATE=""
  59.     os_CODENAME=$(lsb_release -c -s)
  60. #fi
  61. if [ "Ubuntu" = "$os_VENDOR" ]; then
  62.     DISTRO=$os_CODENAME
  63. else
  64.     echo "The os didn't seems to be Ubuntu."
  65.     exit 1
  66. fi
  67. echo $DISTRO
  68. if [ "precise" != ${DISTRO} -a "oneiric" != ${DISTRO} ]; then
  69.     echo "WARNING: this script has been tested on oneiric or precise"
  70.     exit 1
  71. fi
  72. ############################################################################
  73. ## 3)以下系统配置,语言中文支持、国内APT源、网络设置(两个网卡),可以自行配置,注释掉这些步骤。
  74. ## locale
  75. ############################################################################
  76. ## 4:设置网络
  77. SOURCE_FILE=${SOURCE_FILE:-"/etc/apt/sources.list"}
  78. cp $SOURCE_FILE $SOURCE_FILE.bak
  79. cat <<apt>$SOURCE_FILE
  80. deb http://debian.ustc.edu.cn/ubuntu/ precise main restricted universe multiverse
  81. deb http://debian.ustc.edu.cn/ubuntu/ precise-backports restricted universe multiverse
  82. deb http://debian.ustc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
  83. deb http://debian.ustc.edu.cn/ubuntu/ precise-security main restricted universe multiverse
  84. deb http://debian.ustc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
  85. deb-src http://debian.ustc.edu.cn/ubuntu/ precise main restricted universe multiverse
  86. deb-src http://debian.ustc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
  87. deb-src http://debian.ustc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
  88. deb-src http://debian.ustc.edu.cn/ubuntu/ precise-security main restricted universe multiverse
  89. deb-src http://debian.ustc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
  90. APT
  91. #sed -i 's/debian.ustc.edu.cn/mirrors.163.com/g' $SOURCE_FILE
  92. # network configure
  93. NETWORK_CONF=${NETWORK_CONF:-"/etc/network/interfaces"}
  94. if ! grep -q eth1 $NETWORK_CONF; then
  95.         cat <<interfaces>$NETWORK_CONF
  96. auto lo
  97. iface lo inet loopback
  98. # The primary network interface
  99. auto eth0
  100. iface eth0 inet static
  101. pre-up ifconfig eth0 hw ether b8:ac:6f:9a:ee:e4
  102.         address 192.168.139.50
  103.         netmask 255.255.255.0
  104.         network 192.168.139.0
  105.         broadcast 192.168.139.255
  106.         gateway 192.168.139.253
  107.         dns-nameservers 210.72.128.8
  108. auto eth1
  109. iface eth1 inet static
  110. pre-up ifconfig eth1 hw ether b8:ac:6f:9a:ee:e4
  111.         address 10.0.0.1
  112.         netmask 255.255.255.0
  113.         network 10.0.0.0
  114.         broadcast 10.0.0.255
  115. INTERFACES
  116.         /etc/init.d/networking restart
  117. fi
  118. ## 以上系统配置,可以自行配置,注释掉这些步骤。
  119. ############################################################################
  120. ############################################################################
  121. apt-get update
  122. ## 5:安装bridge
  123. apt-get install -y bridge-utils
  124. ## 6:设置NTP
  125. apt-get install -y ntp
  126. if ! grep -q fudge "/etc/ntp.conf"; then
  127.         cat <<ntpconf> /etc/ntp.conf
  128. server ntp.ubuntu.com iburst
  129. server 127.127.1.0
  130. fudge 127.127.1.0 stratum 10
  131. NTPconf
  132. fi
  133. service ntp restart
  134. ## 7:设置Iscsi
  135. apt-get install -y tgt ssh w3m unzip wget curl expect
  136. ## 安装iscsi客户端、安装rabbitmq
  137. apt-get install -y open-iscsi open-iscsi-utils
  138. apt-get install -y rabbitmq-server memcached python-memcache
  139. apt-get install -y kvm libvirt-bin qemu qemu-kvm
  140. ## 二:安装mysql和创建相关数据库
  141. ## Openstack的组件:nova,keystone,glance,都需要数据库。不过目前官方建议keystone,采用sqlite存储,而不用mysql存放。所以我们只需要创建nova和glance两个数据库就可以。
  142. ## 1:安装mysql
  143. ## 过程中,会提示你输入root密码。通过debconf-set-selections读取跳过这一步.
  144. #MYSQL_PASSWD=${MYSQL_PASSWD:-"cloud1234"}
  145. ## apt-get install debconf debconf-utils
  146. cat <<mysql_preseed localhost?="" ?servername="" echo="" then="" ];="" httpd.conf="" apache2="" -s="" !="" [="" if="" restart="" service="" my.cnf="" etc="" g?="" 0.0.0.0="" 127.0.0.1="" s="" ^bind-address="" ?="" -i="" sed="" 让mysql支持外部访问="" on="" mysql="" chkconfig="" ##="" python-mysqldb="" -y="" --no-install-recommends="" install="" apt-get="" mysql_preseed="" true="" boolean="" start_on_boot="" root_password_again="" $mysql_passwd="" password="" root_password="" mysql-server="" mysql-server-5.1="" debconf-set-selections="" |="">> /etc/apache2/httpd.conf
  147.         /etc/init.d/apache2 restart
  148. fi
  149. ## 2:安装phpmyadmin (可选)
  150. cat <<phpmyadmin then="" ];="" apache2="" [="" if="" restart="" service="" etc="" g?="" -i="" sed="" on="" mysql="" ##="" -y="" --no-install-recommends="" install="" apt-get="" true="" boolean="" $mysql_passwd="" password="" debconf-set-selections="" |="" <<env_auth="" cat="" 看到这些,就说明keystone安装正常。="" user-list="" --auth_url="http://127.0.0.1:5000/v2.0" --password="hastexo" --username="admin" --tenant="admin" ,表示正常。你就别再运行脚本="" 下面会输出0="" $?="" #echo="" 顺利运行,会什么都没有输出="" .="" hastexo="" service_tenant_name="${SERVICE_TENANT_NAME:-service}" service_endpoint="http://localhost:35357/v2.0" export="" service_token="hastexo" #export="" service_password="${SERVICE_PASSWORD:-$ADMIN_PASSWORD}" admin_password="${ADMIN_PASSWORD:-admin}" #admin_password="${ADMIN_PASSWORD:-hastexo}" 第二个就是keystone的token="" 第一个是登录dashboard的admin的密码="" 如果你修改的默认的用户名和密码,你需要修改脚本。修改两个地方="" 运行脚本,="" +x="" chmod="" gen_keystone_data.sh="" onestack.googlecode.com="" keystone_data.sh="" -o="" keystone_data.sh_.txt="" 4="" user="" files="" system="" www.hastexo.com="" http:="" wget="" 脚本。实现导入数据。如果你上面的设置都和我一样,那么其实直接运行这个脚本就可以。="" 这个比较有技术含量。通过修改devstack的keystone_data.sh="" 导入数据="" 3:="" $admin_token="" admin="" ?s="" keystone.catalog.backends.templated.templatedcatalog\ntemplate_file="\/etc\/keystone\/default_catalog.templates/g'" keystone.catalog.backends.sql.catalog="" template_file="/etc/keystone/default_catalog.templates" driver="keystone.catalog.backends.templated.TemplatedCatalog" #driver="keystone.catalog.backends.sql.Catalog" [catalog]="" 另外一个地方是="" admin_token="ADMIN" admin_port="35357" public_port="5000" bind_host="0.0.0.0" [default]="" 默认定义的token就是admin,web登录admin就是这个密码="" 两个地方="" keystone.conf="" 如果更改token,需要修改="" 2:配置keystone="" python-keystoneclient="" python-keystone="" 1:安装keystone="" openstack的各个组件,keystone是最难配置。搞定keystone,后面应该就没啥麻烦。="" 三:安装和配置keystone="" fi="" -rf="" rm="" keystone.db="" keystone="" lib="" var="" ?$glance_db_passwd?;?="" ?$glance_db_username?@?%?="" glance;?="" ?$nova_db_passwd?;?="" ?$nova_db_username?@?%?="" ?grant="" ?create="" nova;?="" exists="" ?drop="" -e="" -p$mysql_passwd="" quit="" ?glancedbadmin?@?%?="" glance.*="" glance;="" ?cloud1234?;="" by="" identified="" ?novadbadmin?@?%?="" to="" nova.*="" privileges="" all="" grant="" nova;="" database="" create="" -p="" -uroot="" 如果你修改密码,后面很多配置都需要相应更改。="" glance数据库,管理员:glancedbadmin,密码是:cloud1234="" 管理员:novadbadmin,密码是:cloud1234="" nova数据库,="" 3:创建数据库="" -yq="" app-pass="" setup-password="" password-confirm="" admin-pass="" app-password-confirm="" dbconfig-install="" text="" reconfigure-webserver="" phpmyadmin="">> /etc/profile
  151. export OS_TENANT_NAME=admin
  152. export OS_USERNAME=admin
  153. export OS_PASSWORD=ADMIN
  154. export OS_AUTH_URL="http://localhost:5000/v2.0/"
  155. ENV_AUTH
  156. sed -i -e "s/ADMIN/$ADMIN_TOKEN/g" /etc/profile
  157. export OS_TENANT_NAME=admin
  158. export OS_USERNAME=admin
  159. export OS_PASSWORD=$ADMIN_TOKEN
  160. export OS_AUTH_URL="http://localhost:5000/v2.0/"
  161. #source /etc/profile
  162. ## 检查检查
  163. ## # export | grep OS_
  164. ## declare -x OS_AUTH_URL="http://localhost:5000/v2.0/"
  165. ## declare -x OS_PASSWORD="hastexo"
  166. ## declare -x OS_TENANT_NAME="admin"
  167. ## declare -x OS_USERNAME="admin"
  168. ## 这个时候,直接运行
  169. ## root@node6:~# keystone user-list
  170. ## 四:安装和配置glance
  171. ## 1:安装软件
  172. apt-get install -y glance glance-api glance-client glance-common glance-registry python-glance
  173. ## 2:配置/etc/glance/glance-api-paste.ini
  174. ## 修改文件最后3行,这些设置都是keystone导入数据的时候设置的。
  175. sed -i -e "
  176.        s/%SERVICE_TENANT_NAME%/admin/g;
  177.        s/%SERVICE_USER%/admin/g;
  178.        s/%SERVICE_PASSWORD%/$ADMIN_TOKEN/g;
  179.     " /etc/glance/glance-api-paste.ini
  180. ## 3:设置 /etc/glance/glance-registry-paste.ini
  181. sed -i -e "
  182.        s/%SERVICE_TENANT_NAME%/admin/g;
  183.        s/%SERVICE_USER%/admin/g;
  184.        s/%SERVICE_PASSWORD%/$ADMIN_TOKEN/g;
  185.     " /etc/glance/glance-registry-paste.ini
  186. ## 4:配置/etc/glance/glance-registry.conf
  187. ## 修改
  188. ## #sql_connection = sqlite:////var/lib/glance/glance.sqlite
  189. ## sql_connection = mysql://glancedbadmin:ohC3teiv@10.42.0.6/glance
  190. ## 在末尾添加两行
  191. ## [paste_deploy]
  192. ## flavor = keystone
  193. GLANCE_API_CONF=${GLANCE_API_CONF:-"/etc/glance/glance-api.conf"}
  194. GLANCE_REGISTRY_CONF=${GLANCE_REGISTRY_CONF:-"/etc/glance/glance-registry.conf"}
  195. PUBLIC_IP=${PUBLIC_IP:-"192.168.139.50"}
  196. sed -i '/sql_connection = .*/{s|sqlite:///.*|mysql://'"$GLANCE_DB_USERNAME"':'"$GLANCE_DB_PASSWD"'@'"$PUBLIC_IP"'/glance|g}' $GLANCE_API_CONF
  197. cat <<eof>>$GLANCE_API_CONF
  198. [paste_deploy]
  199. flavor = keystone
  200. EOF
  201. sed -i '/sql_connection = .*/{s|sqlite:///.*|mysql://'"$GLANCE_DB_USERNAME"':'"$GLANCE_DB_PASSWD"'@'"$PUBLIC_IP"'/glance|g}' $GLANCE_REGISTRY_CONF
  202. cat <<eof>>$GLANCE_REGISTRY_CONF
  203. [paste_deploy]
  204. flavor = keystone
  205. EOF
  206. ## 5:配置/etc/glance/glance-api.conf
  207. ## 6:同步数据库
  208. glance-manage version_control 0
  209. glance-manage db_sync         
  210. service glance-api restart && service glance-registry restart
  211. ## 7:验证glance服务是否正常
  212. # glance index
  213. ## 没有任何的输出。表示正常。
  214. ## #echo $?
  215. ## 下面会输出0 ,表示正常。
  216. ## # glance --version
  217. ## glance 2012.1
  218. ## 8:下载镜像并上传
  219. ## ubuntu官方专门提供image,http://uec-images.ubuntu.com。不过一定要注意
  220. ## 这些镜像,都是必须使用密钥登录,直接用用户名密码是无法的登录的。
  221. ## 下载镜像
  222. ## http://cloud-images.ubuntu.com/precise/current/
  223. ## 这应该是ubuntu提供的最新的稳定的镜像。
  224. #wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
  225. ##  expect -c "spawn /usr/bin/scp  yuan@192.168.139.84:/home/yuan/precise-server-cloudimg-amd64-disk1.img .; expect {
  226. ##     "password:"; {
  227. ##    send "yyhu\r\n";
  228. ##    }; "Are you sure you want to continue connecting (yes/no)?" {
  229. ##    send "yes\r\n" ;
  230. ##    expect "password:";
  231. ##    send "yyhu\r\n";
  232. ##    }
  233. ##  } ; set timeout -1; expect -re "100%";"
  234. ##^^####sleep 5; expect -re "password"; send "yyhu\r\n";
  235. # glance add name="Ubuntu12.04-amd64" is_public=true container_format=ovf disk_format=qcow2 < precise-server-cloudimg-amd64-disk1.img
  236. ## 这里还有一种方法上传,如果你没用环境变量。
  237. ## glance --tenant=admin--username=admin --password=hastexo  --auth_url=http://127.0.0.1:5000/v2.0 add name="Ubuntu 11.10 cloudimg amd64" is_public=true container_format=ovf disk_format=qcow2 < /root/precise-server-cloudimg-amd64-disk1.img
  238. ## 上传完镜像后。在运行
  239. ## glance index
  240. ## 五:安装配置nova
  241. ## 1:安装nova相关组件
  242. apt-get install -y nova-api nova-cert nova-common nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler  nova-volume python-nova python-novaclient  nova-consoleauth python-novnc novnc
  243. ## 2:配置 /etc/nova/nova.conf
  244. ## 如果你是在虚拟机里测试Openstack。你需要把默认的虚拟化引擎从kvm改成qemu。
  245. cat <<novaconf> /etc/nova/nova.conf
  246. --dhcpbridge_flagfile=/etc/nova/nova.conf
  247. --dhcpbridge=/usr/bin/nova-dhcpbridge
  248. --logdir=/var/log/nova
  249. --state_path=/var/lib/nova
  250. --lock_path=/var/lock/nova
  251. --allow_admin_api=true
  252. --use_deprecated_auth=false
  253. --auth_strategy=keystone
  254. --scheduler_driver=nova.scheduler.simple.SimpleScheduler
  255. --s3_host=192.168.139.50
  256. --ec2_host=192.168.139.50
  257. --rabbit_host=192.168.139.50
  258. --cc_host=192.168.139.50
  259. --nova_url=http://192.168.139.50:8774/v1.1/
  260. --routing_source_ip=192.168.139.50
  261. --glance_api_servers=192.168.139.50:9292
  262. --image_service=nova.image.glance.GlanceImageService
  263. --iscsi_ip_prefix=10.0.0
  264. --sql_connection=mysql://novadbadmin:cloud1234@192.168.139.50/nova
  265. --ec2_url=http://192.168.139.50:8773/services/Cloud
  266. --keystone_ec2_url=http://192.168.139.50:5000/v2.0/ec2tokens
  267. --api_paste_config=/etc/nova/api-paste.ini
  268. --libvirt_type=kvm
  269. --libvirt_use_virtio_for_bridges=true
  270. --start_guests_on_host_boot=true
  271. --resume_guests_state_on_host_boot=true
  272. #novnc
  273. --novnc_enabled=true
  274. --novncproxy_base_url= http://192.168.139.50:6080/vnc_auto.html
  275. --vncserver_proxyclient_address=127.0.0.1
  276. --vncserver_listen=127.0.0.1
  277. # network specific settings
  278. --network_manager=nova.network.manager.FlatDHCPManager
  279. --public_interface=eth0
  280. --flat_interface=eth1
  281. --flat_network_bridge=br100
  282. --fixed_range=10.0.0.1/27
  283. --floating_range=192.168.139.225/27
  284. --network_size=32
  285. --flat_network_dhcp_start=10.0.0.40
  286. --flat_injected=False
  287. --force_dhcp_release
  288. --iscsi_helper=tgtadm
  289. --connection_type=libvirt
  290. --root_helper=sudo nova-rootwrap
  291. #--verbose
  292. --verbose=False
  293. NOVAconf
  294. ## if ! kvm-ok 1>/dev/null 2>&1; then
  295. ##      sed -i -e "s/kvm/qemu/" /etc/nova/nova-compute.conf
  296. ## fi
  297. sed -i -e "s/novadbadmin/$NOVA_DB_USERNAME/g;s/cloud1234/$NOVA_DB_PASSWD/g" /etc/nova/nova.conf
  298. sed -i -e "s/192.168.139.50/$OUT_IP/g;s/192.168.139.225/$FLOAT_IP/g;" /etc/nova/nova.conf
  299. sed -i -e "s/10.0.0.1/$IN_IP/g;s/10.0.0.40/$FLAT_IP/g;s/10.0.0/$IN_IP_PRE/g;" /etc/nova/nova.conf
  300. ## kvm or qemu?
  301. sed -i -e "s/kvm/$VIRT_TYPE/g" /etc/nova/nova.conf
  302. sed -i -e "s/kvm/$VIRT_TYPE/g" /etc/nova/nova-compute.conf
  303. ## 3:配置/etc/nova/api-paste.ini
  304. sed -i -e "
  305.        s/%SERVICE_TENANT_NAME%/admin/g;
  306.        s/%SERVICE_USER%/admin/g;
  307.        s/%SERVICE_PASSWORD%/$ADMIN_TOKEN/g;
  308.     " /etc/nova/api-paste.ini
  309. # 4:停止和重启nova相关服务
  310. for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler novnc nova-volume nova-consoleauth; do service "$a" restart; done
  311. ## 六:安装和配置Dashbaord
  312. ## 1:安装dashbaord
  313. apt-get install -y libapache2-mod-wsgi openstack-dashboard
  314. /etc/init.d/apache2 restart
  315. ## 这个时候,你就可以登录dashboard
  316. ## http://192.168.139.50
  317. ## user:admin
  318. ## pass:ADMIN
  319. ## 之后通过前端web管理
  320. ## 七:创建第一个VM,可以通过上面安装的web管理系统创建。
  321. # 0:同步数据库
  322. ## 以前我运行同步数据库,如果正确, 当nova.conf
  323. ## --verbose=False
  324. ## 是没有任何的输出,否则有一堆是输出。
  325. nova-manage db sync
  326. # 创建网络
  327. nova-manage network create private --fixed_range_v4=10.0.0.1/27 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32
  328. ## 设定floating IP
  329. nova-manage floating create --ip_range=192.168.139.225/27
  330. ## 设置权限
  331. chown -R nova:nova /etc/nova
  332. ## 再重启相关服务
  333. for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler novnc nova-volume nova-consoleauth; do service "$a" restart; done
  334. sleep 10
  335. ## 1:检查nova服务
  336. ## 一路回车,就可以了。通过expect可以不用输入。
  337. if [ ! -e ~/.ssh/id_rsa ]; then
  338. expect -c "spawn ssh-keygen ; set timeout 5; expect ":"; send "\r\n"; set timeout 3; expect  ":"; send "\r\n";set timeout 3; expect ":"; send "\r\n"; expect eof;"
  339. fi
  340. ## 2:上传密钥到数据库
  341. nova keypair-add --pub_key ~/.ssh/id_rsa.pub key1
  342. ## nova keypair-list
  343. ## 打开防火墙
  344. nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0
  345. nova secgroup-add-rule default udp 1 65535 0.0.0.0/0
  346. nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
  347. ## 4:开始创建虚拟机
  348. ## nova image-list
  349. ## nova flavor-list
  350. ## 创建虚拟机
  351. # nova-manage flavor create --name=m1.minitest --memory=384 --cpu=1 --root_gb=1 --flavor=6 --ephemeral_gb=1
  352. ## 上面的下载镜像移到这一步,可以去掉以下的步骤
  353. wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
  354. glance add name="Ubuntu12.04-amd64" is_public=true container_format=ovf disk_format=qcow2 < precise-server-cloudimg-amd64-disk1.img
  355. nova boot --flavor 1 --image "Ubuntu12.04-amd64" --key_name key1 cloud01
  356. # nova show cloud01
  357. # nova console-log cloud01
  358. ##关联vm
  359. sleep 10
  360. ## nova floating-ip-create
  361. ## nova add-floating-ip cloud01 192.168.139.226
  362. nova show cloud01
  363. nova add-floating-ip cloud01 `nova floating-ip-create | awk 'FNR==4{print $2}'`
  364. nova list
  365. nova show cloud01
  366. # ssh instance
  367. # ssh-keygen -f "/home/cloud/.ssh/known_hosts" -R 10.0.0.2
  368. # ssh -i ~/.ssh/id_rsa ubuntu@10.0.0.2
  369. ## 八、完成安装部署
  370. cat <<eof>&1
  371. 1. login the dashboard
  372.    http://192.168.139.50
  373.    user:admin
  374.    pass:admin or $ADMIN_TOKEN
  375. 2. login a instance("cloud01")
  376.    ssh -i ~/.ssh/id_rsa ubuntu@10.0.0.2
  377. 3. view & manage
  378.    nova list
  379.    nova show cloud01
  380.    ...
  381. 4. enjoy yourself! (Contact Hily.Hoo@gmail.com)
  382. EOF</eof></novaconf></eof></eof></phpmyadmin></mysql_preseed></ntpconf></interfaces></apt>
复制代码
附录2:安装后web登录(dashboard)截图
[img]file:///C:/%5CDocuments%20and%20Settings%5CAdministrator%5CApplication%20Data%5CTencent%5CUsers%5C703690802%5CQQ%5CWinTemp%5CRichOle%5CI$%60YF_TD@QH40QKVY88HHYA.jpg[/img]
20120714165004_208.jpg


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条