热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu13.04系统安装OpenStackGrizzly云计算平台

基于网上的安装文档,根据自己的环境做出一些更改,并加入安装出错处理方法。1.计划Eth010.0.0.2Eth1192.168.66.168安装方式单机双网卡在虚拟机中安装2.前期准备2.1Ubuntu系统准备切换用户改为soho源cp/etc/apt/source.list/etc/apt/source.li

基于网上的安装文档,根据自己的环境做出一些更改,并加入安装出错处理方法。

1.   计划

Eth0

10.0.0.2

Eth1

192.168.66.168

安装方式

单机双网卡在虚拟机中安装

2.   前期准备 2.1 Ubuntu系统准备

切换用户

改为soho源

cp /etc/apt/source.list
/etc/apt/source.list_back

然后将源替换成下面的源

deb http://mirrors.sohu.com/ubuntu/
raring mainrestricted

deb-src http://mirrors.sohu.com/ubuntu/
raring mainrestricted

deb http://mirrors.sohu.com/ubuntu/
raring-updates mainrestricted

deb-src http://mirrors.sohu.com/ubuntu/
raring-updatesmain restricted

deb http://mirrors.sohu.com/ubuntu/
raring universe

deb-src http://mirrors.sohu.com/ubuntu/
raring universe

deb http://mirrors.sohu.com/ubuntu/
raring-updatesuniverse

deb-src http://mirrors.sohu.com/ubuntu/
raring-updatesuniverse

deb http://mirrors.sohu.com/ubuntu/
raring multiverse

deb-src http://mirrors.sohu.com/ubuntu/
raring multiverse

deb http://mirrors.sohu.com/ubuntu/
raring-updatesmultiverse

deb-src http://mirrors.sohu.com/ubuntu/
raring-updatesmultiverse

deb http://mirrors.sohu.com/ubuntu/
raring-backports mainrestricted universe
multiverse

deb-src http://mirrors.sohu.com/ubuntu/
raring-backportsmain restricted universe
multiverse

deb http://mirrors.sohu.com/ubuntu/
raring-security mainrestricted

deb-src http://mirrors.sohu.com/ubuntu/
raring-securitymain restricted

deb http://mirrors.sohu.com/ubuntu/
raring-securityuniverse

deb-src http://mirrors.sohu.com/ubuntu/
raring-securityuniverse

deb http://mirrors.sohu.com/ubuntu/
raring-securitymultiverse

deb-src http://mirrors.sohu.com/ubuntu/
raring-securitymultiverse

deb http://extras.ubuntu.com/ubuntu
raring main

deb-src http://extras.ubuntu.com/ubuntu
raring main

 升级系统:

apt-get update

apt-get upgrade

apt-get dist-upgrade

2.2网络设置

编辑/etc/network/interfaces


       address
192.168.66.168



       netmask
255.255.255.0



       network
192.168.66.0



       broadcast
192.168.66.255



       gateway
192.168.66.254



       dns-nameservers
192.168.66.254


设置好后重启网络:service networking restart

2.3 安装MySQL & RabbitMQ

安装MySQL:

apt-get install -y
mysql-serverpython-mysqldb

配置并重启MySQL:

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf

service mysql restart

安装RabbitMQ:

apt-get install -y rabbitmq-server

安装时若提示Startingrabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err} 

需在/etc/hosts中加入本机IP和主机名

       安装NTP:

2.4     其他

apt-get install -y vlan
bridge-utils

配置/etc/sysctl.conf

sed
-i's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/'
/etc/sysctl.conf

  3.   Keystone

安装并检查状态:

apt-get install -y keystone

建立数据库(蓝色标记的用户名和密码可改):

mysql -u root -p
CREATE DATABASE keystone;
GRANT ALL ON keystone.* TO 'keystoneUser'@'%' IDENTIFIED BY 'keystonePass';

修改/etc/keystone/keystone.conf中的数据库连接

connection
=mysql://keystoneUser:keystonePass@10.0.0.2/keystone

重启并同步数据库:

同步时若提示"Access denied foruser…”,检查数据库访问权限

用下面两个脚本去填充keystone数据库,也就是增加user,tenant,role和service以及service的endpoint

#Modify the HOST_IP and HOST_IP_EXT variables before executing the scripts
wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_SingleNode/KeystoneScripts/keystone_basic.sh
wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_SingleNode/KeystoneScripts/keystone_endpoints_basic.sh
修改权限:
chmod +x keystone_basic.sh
chmod +x keystone_endpoints_basic.sh

修改keystone_basic.sh中的HOST_IP为自己的Eth0的IP 

修改keystone_endpoints_basic.sh中的HOST_IP和EXT_HOST_IP,同时将连接keystone数据库的的用户名和密码进行修改:

./keystone_basic.sh
./keystone_endpoints_basic.sh

WARNING: Bypassing authentication using a token& endpoint (authentication credentials are being ignored).此提示可忽略

编辑文件creds

export OS_TENANT_NAME=admin
export OS_PASSWORD=admin_pass
export OS_AUTH_URL="http://192.168.66.168:5000/v2.0/"

引入环境变量中:

source creds

或者可以直接加入root(cat creds >> /root/.bashrc)的环境变量,这样重启后就无需再次引入了

查看创建的user

keystone user-list

若出现如下错误:Unable to communicate with identity service:{"error": {"message": "The request you have maderequires authentication.", "code": 401, "title":"Not Authorized"}}. (HTTP 401)可删除数据库keystone后重新创建keystone,从keystone-manage db_sync 开始重试一次

4.   Glance

apt-get install -y glance

service glance-api status

service glance-registry status

建立glance数据库(用户名和密码可改):

GRANT ALL ON glance.* TO 'glanceUser'@'%' IDENTIFIED BY 'glancePass';

修改/etc/glance/glance-api-paste.ini

和/etc/glance/glance-registry-paste.ini文件

注:红色为必须要修改(核对)的地方,建议把提到的这几项都核对一下:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
delay_auth_decision = true
auth_host = 10.0.0.2
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = service_pass

编辑/etc/glance/glance-api.conf和/etc/glance/glance-registry.conf,修改数据库连接:

sql_cOnnection=mysql://glanceUser:glancePass@10.0.0.2/glance

并且在[paste_deploy]下加上flavor = keystone

[paste_deploy]
flavor = keystone

重启服务

service glance-api restart; serviceglance-registry restart

同步数据库:

再次重启服务

service glance-registry restart; serviceglance-api restart

上传镜像测试glance的安装情况:

glance image-create--name myFirstImage--is-public true --container-format bare --disk-format qcow2 -?locationhttps://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

查看镜像:

2013.7.11更新

5.   Quantum 5.1. OpenVSwitch

安装OpenVSwitch

apt-get install -y openvswitch-switch
openvswitch-datapath-dkms

建立网桥br-int和br-ex:

#br-int will be used for VM integration

#br-ex is used to make to access the internet(not covered
in this guide)

apt-get install -y quantum-server
quantum-plugin-openvswitchquantum-plugin-openvswitch-agent dnsmasq
quantum-dhcp-agent quantum-l3-agent

创建quantum数据库(用户名和密码可修改):

GRANT ALL ON quantum.* TO 'quantumUser'@'%'IDENTIFIED BY
'quantumPass';

查看Quantum-*组件状态

cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i status;done

编辑 /etc/quantum/api-paste.ini

paste.filter_factory
=keystoneclient.middleware.auth_token:filter_factory

admin_tenant_name = service

admin_password = service_pass


编辑OVS插件配置文件/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini


#Under the database section

sql_connection =
mysql://quantumUser:quantumPass@10.0.0.2/quantum

tenant_network_type = gre

tunnel_id_ranges = 1:1000

integration_bridge = br-int

编辑 /etc/quantum/metadata_agent.ini

# The Quantum user information for accessingthe Quantum API.

auth_url = http://10.0.0.2:35357/v2.0

admin_tenant_name = service

admin_password = service_pass

# IP address used by Nova metadata server

nova_metadata_ip = 127.0.0.1

# TCP Port used by Nova metadata server

nova_metadata_port = 8775

metadata_proxy_shared_secret = helloOpenStack

编辑 /etc/quantum/quantum.conf

admin_tenant_name = service

admin_password = service_pass

signing_dir = /var/lib/quantum/keystone-signing

cd /etc/init.d/; for i in $( ls quantum-* ); dosudo service $i restart; done

6. Nova
6.1 KVM

确保硬件支持虚拟化:

apt-get install cpu-checker

若在虚拟机中安装,以下错误可忽略:


apt-get install -y kvm libvirt-bin pm-utils

编辑/etc/libvirt/qemu.conf文件,使得cgroup_device_acl与下面相同:

"/dev/null", "/dev/full","/dev/zero",

"/dev/random","/dev/urandom",

"/dev/ptmx", "/dev/kvm","/dev/kqemu",

"/dev/rtc","/dev/hpet","/dev/net/tun"

删除默认的网桥(也可以不删除,不会有影响)

virsh net-destroy default

virsh net-undefine default

编辑 /etc/libvirt/libvirtd.conf 文件以便支持动态迁移:

修改/etc/init/libvirt-bin.conf 中的libvirtd_opts变量

env libvirtd_opts="-d -l"

修改/etc/default/libvirt-bin中的libvirtd_opts变量

重启libvirt 服务使得修改生效

service libvirt-bin restart

6.2 Nova-*

安装nova组件:

apt-get install -y nova-api nova-cert novnc nova-consoleauthnova-scheduler nova-novncproxy nova-doc nova-conductor nova-compute-kvm

cd /etc/init.d/; for i in $( ls nova-* ); do service $i status; cd; done

GRANT ALL ON nova.* TO 'novaUser'@'%' IDENTIFIED BY
'novaPass';

修改/etc/nova/api-paste.ini文件::

paste.filter_factory =
keystoneclient.middleware.auth_token:filter_factory

admin_tenant_name = service

admin_password = service_pass

signing_dirname = /tmp/keystone-signing-nova

# Workaround for
https://bugs.launchpad.net/nova/+bug/1154809

修改 /etc/nova/nova.conf 文件(最好是把原来的文件备份,然后新建和下面一样的文件):

api_paste_cOnfig=/etc/nova/api-paste.ini


compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler


nova_url=http://10.0.0.2:8774/v1.1/


sql_cOnnection=mysql://novaUser:novaPass@10.0.0.2/nova


root_helper=sudo nova-rootwrap
/etc/nova/rootwrap.conf

use_deprecated_auth=false

glance_api_servers=10.0.0.2:9292


image_service=nova.image.glance.GlanceImageService



novncproxy_base_url=http://192.168.66.168:6080/vnc_auto.html


vncserver_proxyclient_address=10.0.0.2


network_api_class=nova.network.quantumv2.api.API


quantum_url=http://10.0.0.2:9696

quantum_auth_strategy=keystone

quantum_admin_tenant_name=service

quantum_admin_username=quantum

quantum_admin_password=service_pass


quantum_admin_auth_url=http://10.0.0.2:35357/v2.0



libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver



linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver



firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver


service_quantum_metadata_proxy = True

quantum_metadata_proxy_shared_secret =
helloOpenStack

metadata_listen = 127.0.0.1

metadata_listen_port = 8775

compute_driver=libvirt.LibvirtDriver

volume_api_class=nova.volume.cinder.API

osapi_volume_listen_port=5900

编辑 /etc/nova/nova-compute.conf:

#libvirt_type=kvm(物理机)


libvirt_type=qemu(虚拟机)


libvirt_ovs_bridge=br-int

libvirt_vif_type=ethernet


libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver


libvirt_use_virtio_for_bridges=True

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done

检查nova-*各项服务是否工作正常(笑脸为正常)

7. Cinder

安装Cinder以及必须的软件包

sudo apt-get install cinder-api

cinder-scheduler cinder-volume open-iscsi
python-cinderclient tgt

sed -i 's/false/true/g' /etc/default/iscsitarget

GRANT ALL ON cinder.* TO 'cinderUser'@'%' IDENTIFIED BY
'cinderPass';

修改/etc/cinder/api-paste.ini:

paste.filter_factory =
keystoneclient.middleware.auth_token:filter_factory

service_host = 192.168.66.168

admin_tenant_name = service

admin_password = service_pass

编辑 /etc/cinder/cinder.conf :

rootwrap_cOnfig=/etc/cinder/rootwrap.conf

sql_connection =
mysql://cinderUser:cinderPass@10.0.0.2/cinder

api_paste_config = /etc/cinder/api-paste.ini

volume_name_template = volume-%s

volume_group = cinder-volumes

#osapi_volume_listen_port=5900

state_path=/var/lib/cinder

volumes_dir=/var/lib/cinder/volumes

dd if=/dev/zero of=cinder-volumes bs=1 count=0 seek=2G

losetup /dev/loop2 cinder-volumes

vgcreate cinder-volumes /dev/loop2

为了重启后逻辑组cinder-volumes还在,可以在/etc/rc.local的exit 0之前加入

losetup /dev/loop2 cinder-volumes

cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i restart;done

apt-get install openstack-dashboard memcached

如果不喜欢OpenStack ubuntu的主题页面,可以去除改包:

dpkg --purge openstack-dashboard-ubuntu-theme

重启apache2 和memcached 服务

service apache2 restart; service memcached restart

然后就可以从网页上访问192.168.66.168/horizon 

如果没有改,则默认的账号和密码是:admin:admin_pass.


推荐阅读
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • PHP 图形函数中实现汉字显示的方法
    本文详细介绍了如何在 PHP 的图形函数中正确显示汉字,包括具体的步骤和注意事项,适合初学者和有一定基础的开发者阅读。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 使用IntelliJ IDEA高效开发与运行Shell脚本
    本文介绍了如何利用IntelliJ IDEA中的BashSupport插件来增强Shell脚本的开发体验,包括插件的安装、配置以及脚本的运行方法。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 解决ADODB连接Access时出现80004005错误的方法
    本文详细介绍了如何解决在使用ADODB连接Access数据库时遇到的80004005错误,包括错误原因分析和具体的解决步骤。 ... [详细]
author-avatar
江自流
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有