热门标签 | 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.


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
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社区 版权所有