设为首页 收藏本站
查看: 1004|回复: 0

[经验分享] [网摘]Ubuntu12.04 安装 OpenStack Essex

[复制链接]

尚未签到

发表于 2015-4-12 12:53:37 | 显示全部楼层 |阅读模式
  以下文章摘自:http://hi.baidu.com/chenshake/blog/item/4551cc5812a1b39e810a1876.html
  原文
  我下面的步骤,也就全部参考原文。
  硬件要求很简单,双网卡的机器就可以。服务器可以上网。本文档是全部组件安装在一台机器上:nova,glance,keystone,dashboard。不包括swift。
  下面的文档,基本是照抄原文档,不过这是经过我验证过。后续我会附上图。
  为了简单和减少失误,你最好全部参考我的文档的设置,等你装成功后,再去变更相关的设置,包括账号的密码。
  目前Essex版本已经是RC1,基本稳定。
  
  一:准备系统
  1:下载ubuntu 12.04. 服务器版本
  ubuntu12.04正式版本,需要4月26号发布,目前是beta1阶段。不过beta1没有提供server的版本
  http://releases.ubuntu.com//precise/ubuntu-12.04-beta2-server-amd64.iso
  
  2:安装OS
  安装系统倒是简单。由于我的服务器是两块硬盘,显得比较简单。因为我们需要一个单独的分区专门给nova-volume使用。这个也可以通过变通的办法实现。
  IP地址的设置,可以等装完系统再修改,问题不大。最小化安装,只需要安装ssh server就可以。
  装完系统后。
  apt-get update
  apt-get upgrade
  更新源里的包,更新系统。确保你装的是最新版本的包。
  # apt-cache policy keystone
keystone:
Installed: 2012.1~rc1-0ubuntu1
Candidate: 2012.1~rc1-0ubuntu1
Version table:
*** 2012.1~rc1-0ubuntu1 0
500 http://cn.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages
100 /var/lib/dpkg/status
  
  3:设置root权限
  为了简单,全部都是用root来运行。
  sudo passwd
  就可以给root设置一个密码。直接用root运行。
  4:设置网络
  我的网络设置和文档是完全一样。这样也减少错误的几率。
  # cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.42.0.6
netmask 255.255.255.0
network 10.42.0.0
broadcast 10.42.0.255
gateway 10.42.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-search test.com
auto eth1
iface eth1 inet static
address 192.168.22.1
network 192.168.22.0
netmask 255.255.255.0
broadcast 192.168.22.255

  重启网络,让修改生效
  /etc/init.d/networking restart
  5:安装bridge
  apt-get install bridge-utils
  重启网络或者重启一下机器都可以
  /etc/init.d/networking restart
  6:设置NTP
  apt-get install ntp
编辑 /etc/ntp.conf 在末尾添加下面3行
server ntp.ubuntu.com iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10
重启服务
service ntp restart
  7:设置Iscsi
  apt-get install tgt
  重启服务
  service tgt start
  安装iscsi客户端
  apt-get install open-iscsi open-iscsi-utils
  8:安装rabbitmq
  apt-get install rabbitmq-server memcached python-memcache
apt-get install kvm libvirt-bin
  
  二:安装mysql和创建相关数据库
  Openstack的组件:nova,keystone,glance,都需要数据库。不过目前官方建议keystone,采用sqlite存储,而不用mysql存放。所以我们只需要创建nova和glance两个数据库就可以。
  1:安装mysql
  过程中,会提示你输入root密码。
  apt-get install -y mysql-server python-mysqldb
  让mysql支持外部访问
  sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
  重启服务
  service mysql restart
  2:安装phpmyadmin (可选)
  为了方便,可以把phpmyadmin装上,可以比较方便管理数据库
  apt-get install phpmyadmin
  安装的时候,第一个提示是让你输入root的密码。
  3:创建数据库
  nova数据库, 管理员:novadbadmin,密码是:dieD9Mie
  glance数据库,管理员:glancedbadmin,密码是:ohC3teiv
  如果你修改密码,后面很多配置都需要相应更改。
  mysql -uroot -p
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'%' IDENTIFIED BY 'dieD9Mie';
quit
mysql -uroot -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%' IDENTIFIED BY 'ohC3teiv';
quit
  
  三:安装和配置keystone
  Openstack的各个组件,keystone是最难配置。搞定keystone,后面应该就没啥麻烦。
  1:安装keystone
  apt-get install keystone python-keystone python-keystoneclient
  2:配置keystone
  需要修改 /etc/keystone/keystone.conf 两个地方
  默认定义的token就是ADMIN,我使用hastexo作为token

  [DEFAULT]
bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token =hastexo
  另外一个地方是
  [catalog]
#driver =
keystone.catalog.backends.sql.Catalog
driver = keystone.catalog.backends.templated.TemplatedCatalog
template_file = /etc/keystone/default_catalog.templates
  
  重启服务
  service keystone restart
  3: 导入数据
  这个比较有技术含量。通过修改devstack的keystone_data.sh 脚本。实现导入数据。如果你上面的设置都和我一样,那么其实直接运行这个脚本就可以。
  http://www.hastexo.com/system/files/user/4/keystone_data.sh_.txt
  下载脚本
  wget http://www.hastexo.com/system/files/user/4/keystone_data.sh_.txt
mv keystone_data.sh_.txt keystone_data.sh
  让脚本可运行
  chmod +x keystone_data.sh
  运行脚本, 如果你修改的默认的用户名和密码,你需要修改脚本。
  ./keystone_data.sh
  顺利运行,会什么都没有输出
   DSC0000.jpg
  
  #echo $?
  下面会输出0 ,表示正常。你就别再运行脚本
  keystone user-list
  看到这些,就说明keystone安装正常。
   DSC0001.jpg

  

  四:安装和配置glance
  1:安装软件
  apt-get install glance glance-api glance-client glance-common glance-registry python-glance
  2:配置/etc/glance/glance-api-paste.ini
  修改文件最后3行,这些设置都是keystone导入数据的时候设置的。
  admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
  改成
  admin_tenant_name = admin
admin_user = admin
admin_password = hastexo
  
  3:设置 /etc/glance/glance-registry-paste.ini
  也是修改文件最后3行,和上面是一样的。
  admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
  改成
  admin_tenant_name = admin
admin_user = admin
admin_password = hastexo
  4:配置/etc/glance/glance-registry.conf
  修改
  #sql_connection = sqlite:////var/lib/glance/glance.sqlite
sql_connection = mysql://glancedbadmin:ohC3teiv@10.42.0.6/glance
  
  在末尾添加两行
  [paste_deploy]
flavor = keystone
  5:配置/etc/glance/glance-api.conf
  在末尾添加两行
  [paste_deploy]
flavor = keystone
  6:重启服务
  service glance-api restart && service glance-registry restart
  7:验证glance服务是否正常
  下面的步骤照做就可以,具体原理可以看英文
  export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=hastexo
export OS_AUTH_URL="http://localhost:5000/v2.0/"
  检查检查
  # export | grep OS_
declare -x OS_AUTH_URL="http://localhost:5000/v2.0/"
declare -x OS_PASSWORD="hastexo"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"
  运行
  glance index
  没有任何的输出。表示正常。
  #echo $?
  下面会输出0 ,表示正常。
  # glance --version
glance 2012.1
  8:下载镜像并上传
  ubuntu官方专门提供image,http://uec-images.ubuntu.com。不过一定要注意
  这些镜像,都是必须使用密钥登录,直接用用户名密码是无法的登录的。
  下载镜像
  wget http://uec-images.ubuntu.com/releases/11.10/release/ubuntu-11.10-server-cloudimg-amd64-disk1.img
  上传镜像
glance add name="Ubuntu 11.10 cloudimg amd64" is_public=true container_format=ovf disk_format=qcow2 < /root/ubuntu-11.10-server-cloudimg-amd64-disk1.img
  这里还有一种方法上传,如果你没用环境变量。
  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/ubuntu-11.10-server-cloudimg-amd64-disk1.img
  上传完镜像后。在运行
  glance index
  或者
  glance --username=admin --password=hastexo --tenant=admin --auth_url=http://127.0.0.1:5000/v2.0 index
  就可以看到上传的image。
   DSC0002.jpg
  五:安装配置nova
  1:安装nova相关组件
  apt-get install nova-api nova-cert nova-common nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler nova-vncproxy nova-volume python-nova python-novaclient
  2:配置 /etc/nova/nova.conf
  把nova.conf 原来的内容删除掉。直接贴下面内容。重点需要注意的是,
  如果你是在虚拟机里测试Openstack。你需要把默认的虚拟化引擎从kvm改成qemu。

--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=10.42.0.6
--ec2_host=10.42.0.6
--rabbit_host=10.42.0.6
--cc_host=10.42.0.6
--nova_url=http://10.42.0.6:8774/v1.1/
--routing_source_ip=10.42.0.6
--glance_api_servers=10.42.0.6:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=192.168.22
--sql_connection=mysql://novadbadmin:dieD9Mie@10.42.0.6/nova
--ec2_url=http://10.42.0.6:8773/services/Cloud
--keystone_ec2_url=http://10.42.0.6:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
  --libvirt_type=kvm
  #--libvirt_type=qemu

--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
--vnc_enabled=true
--vncproxy_url=http://10.42.0.6:6080
--vnc_console_proxy_url=http://10.42.0.6:6080
  # network specific settings

--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.22.32/27
--floating_range=10.42.0.32/27
--network_size=32
--flat_network_dhcp_start=192.168.22.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose
  3:配置/etc/nova/api-paste.ini
  也是修改文件最后3行,
  admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
  改成
  admin_tenant_name = admin
admin_user = admin
admin_password = hastexo
  4:停止和重启nova相关服务
  for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler nova-volume nova-vncproxy; do service "$a" stop; done
for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler nova-volume nova-vncproxy; do service "$a" start; done
  5:同步数据库
  以前我运行同步数据库,如果正确是没有任何的输出,不知道为啥,这次是有一堆是输出。不过是没问题的。
  nova-manage db sync
DSC0003.jpg
  创建网络
nova-manage network create private --fixed_range_v4=192.168.22.32/27 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32
   DSC0004.jpg
  设定floating IP
  nova-manage floating create --ip_range=10.42.0.32/27
   DSC0005.jpg
  设置权限
  chown -R nova:nova /etc/nova
  再重启相关服务
  for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler nova-volume nova-vncproxy; do service "$a" stop; done
for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler nova-volume nova-vncproxy; do service "$a" start; done
  
  6:检查nova服务

nova list
  nova image-list
  nova floating-ip-create
   DSC0006.jpg

  六:创建第一个VM
  这是用命令行创建vm,这个步骤可以跳过。我没做。不影响后面的安装。
  
  七:安装和配置Dashbaord
  1:安装dashbaord
  apt-get install libapache2-mod-wsgi openstack-dashboard
  2:编辑/etc/apache2/conf.d/dashboard.conf
  # cat /etc/apache2/conf.d/dashboard.conf
WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
WSGIDaemonProcess horizon user=www-data group=www-data processes=3 threads=10
Alias /static /usr/share/openstack-dashboard/openstack_dashboard/static

Order allow,deny
Allow from all


  3:修一个bug
  这个步骤应该是目前才需要采取,等几天估计就不需要了
  cd /usr/share/pyshared/novaclient
mv base.py base.py.old && wget -O base.py.gz https://review.openstack.org/cat/5608%2C2%2Cnovaclient/base.py%5E0 && gunzip base.py.gz
  4:配置/etc/openstack-dashboard/local_settings.py
  把CACHE_BACKEND修改成下面

#CACHE_BACKEND = 'locmem://'
CACHE_BACKEND = 'memcached://127.0.0.1:11211/'

  重启服务
  service apache2 restart
  这个时候,你就可以登录dashboard
  http://10.42.0.6
  user:admin
  pass:hastexo
  
  
  
  5:理解project和user关系
  上面需要注意的一个地方,就是 project的含义。以前的版本是tenant,租户意思,基本可以理解成企业。
  你可以创建用户,用户属于一个project。创建用户的时候,就需要设置密码。
  我创建了一个project :招商银行,创建了一个用户 chenshake,属于project 招商银行
  
  
  八:euca2ools 工作
  euca2ools这套工具,其实以前是管理亚马逊aws,只要你兼容aws接口,都可以使用。应该Eucalyptus的一套管理工具。这套管理工具也是可以管理Openstack,和Openstack内置的命令,很多是相同的效果。
  1:安装euca2ools工具
  apt-get install -y euca2ools
  2:设置环境变量

export EC2_URL=$(keystone catalog --service ec2 | awk '/ publicURL / { print $4 }')
export CREDS=$(keystone ec2-credentials-create)
export EC2_ACCESS_KEY=$(echo "$CREDS" | awk '/ access / { print $4 }')
export EC2_SECRET_KEY=$(echo "$CREDS" | awk '/ secret / { print $4 }')

  3:运行命令
  大家可以比较一下列出所有镜像的命令,可以使用euca-describe-images,或者nova image-list
  现在Essex对Euca的工具支持应该比Diablo好很多。
  
  列出运行的虚拟机,可以用 nova list 或者 euca-describe-instances
  


  Appendix A:  
使用nova-volume

  Essex Dashboard可以管理nova-volume。这个我会后续补充。
  参考下面文档
  http://www.vpsee.com/2011/09/openstack-nova-storage-management/
  http://hi.baidu.com/chenshake/blog/item/581824db78607378d1164eeb.html
  
  
  Appendix C: Dashboard
创建vm,允许ping,ssh登录

  对于没有用过aws的用户,其实会比较困惑。不知道如何在dashbaord里设置,可以ssh访问虚拟机。无法ping虚拟机。
  不能ping,是因为关闭icmp包响应,不能ssh,是因为防护墙关闭的22端口。
  从ubuntu下载的image,只能用密钥登录,不能用密码登录。
  1:设置安全组 Security group
  安全组,其实就是虚拟机前面的防护墙。默认是关闭所有的包。需要打开防护墙。
  为了简单,我们把default的防护墙,端口全部打开。生产环境就不要这样操作。

  默认是default规则,直接修改default就可以。默认default,是阻止所有的访问。
  

  
  2:创建密钥
  为了安全考虑,ubuntu提供的模板,都是采用密钥登录。简单点说,你创建一对公钥和私钥。私钥下载到本地保存,公钥存放在服务器上,创建虚拟机的时候,会把公钥注入到虚拟机里。
  这个时候,你如果有私钥,就可以直接登录。
  
  
  下载私钥
  点击create keypair,就会提示你下载私钥。私钥是pem后缀。

  

  
  

  
  那么你就参考这个文档,就可以。
  3:创建vm
  创建vm的时候,你会选择keypair,安全组。
  
  
  
  创建完成后,得到其实是一个内网规定IP
  
  
  4:floating IP
  给虚拟机分配一个 floating IP,可以理解成是公网的IP
  
  分配完
  
  关联vm
  

  
  看看结果
  
  
  5:ssh 访问vm
  这个看你的客户端是什么,linux,SecureCRT,putty,都有所不同。
  对于ubuntu提供的image,ssh的用户名是:ubuntu,
  SecureCRT 6.x版本
  对于6.x版本,已经可以直接使用pem后缀的密钥
  
  
  putty登录
  对于putty,需要对密钥进行转换。
  http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  到官方网站下载:PuTTYgen这个工具
  PUTTYGEN,通过load,找到刚才下载的私钥,注意,要选择全部文件,才可以找到。通过转换,选择保存私钥就可以
  
  
  存放到本地。
  设置putty使用密钥
  
  
  
  
  linux客户端ssh登录vm
  如果你是linux服务器上,你可以上传密钥到服务器上
  ssh -i key_for_openstack.pem ubuntu@192.168.22.34
  就可以直接登录虚拟机。
  
  

  Appendix D:FAQ
  1:我登录服务器后,命令都无法运行
  ~# nova image-list
ERROR: You must provide a username via either --os_username or env[OS_USERNAME]
如何解决。
  这个问题,其实还是你的环境变量导致的。
  export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=hastexo
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export EC2_URL=$(keystone catalog --service ec2 | awk '/ publicURL / { print $4 }')
export CREDS=$(keystone ec2-credentials-create)
export EC2_ACCESS_KEY=$(echo "$CREDS" | awk '/ access / { print $4 }')
export EC2_SECRET_KEY=$(echo "$CREDS" | awk '/ secret / { print $4 }')
  这样就可以了。ecua 和nova的命令都可以使用。
  如果不希望每次ssh登录,都需要运行这个。可以直接修改 /etc/profile, 在最后面加上上面几行。这样运行命令就不会再出错。
  http://bbs.chinaunix.net/thread-1958386-1-1.html
  
  root@node6:~# nova image-list
+--------------------------------------+-----------------------------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+-----------------------------+--------+--------+
| 7491016e-bcf4-4357-90d2-ec228ce81cb8 | Ubuntu 11.10 cloudimg amd64 | ACTIVE | |
+--------------------------------------+-----------------------------+--------+--------+


  2:如何用curl去测试keystone
  替换红色部分,就可以了
  # curl -d '{"auth": {"tenantName": "admin", "passwordCredentials":{"username": "admin", "password": "hastexo"}}}' -H "Content-type: application/json" http://10.42.0.6:35357/v2.0/tokens | python -mjson.tool

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56289-1-1.html 上篇帖子: OpenStack安装与配置 下篇帖子: 云计算OpenStack讲座笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表