参考原版地址:https://github.com/mseknibilel/OpenStack-Grizzly-Install-Guide

图转自原版地址

部署拓扑:

部署环境:vmware station架设三台虚拟机 (ubuntu12.04操作系统)

我的配置:eth0 vmnet8 NAT 192.168.40.0/24

     eth1 vmnet3 host-only 192.168.10.0/24

       eth2 vmnet4 host-only 192.168.157.0/24

一、首先配置离线源:

(1)添加网络源、更新源、更新所有安装包

apt-get install -y ubuntu-cloud-keyring
echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y

(2)安装需要的服务和组件

mysql-server python-mysqld rabbitmq-server ntp vlan bridge-utils keystone glance quantum-server
nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy nova-doc nova-conductor
cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms
openstack-dashboard memcached
openvswitch-switch openvswitch-datapath-dkms
quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent quantum-metadata-agent
cpu-checker kvm libvirt-bin pm-utils   nova-compute-kvm

(3)制作源 ---方法http://blog.sina.com.cn/s/blog_6ab596b90100u4xh.html

二、控制节点的安装

(1)在network/interface中配置静态IP

# The loopback network interface
auto lo
iface lo inet loopback # The primary network interface
auto eth0
iface eth0 inet static
address 192.168.40.128
netmask 255.255.255.0
gateway 192.168.40.2 #控制节点暂不设eth1

并重启 service networking restart

(2)安装mysql数据库和消息队列rabbitmq

apt-get install -y mysql-server python-mysqldb
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
service mysql restart apt-get install -y rabbitmq-server

(3)安装ntp时间服务器 这个非常重要 用于组件之间的实时同步

apt-get install -y ntp

(4)更改数据库密码

修改MySQL密码为passwd:
[root@stonex ~]#  mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
...... 省略了一些行
mysql> select user,host,password from mysql.user;
查询用户的密码,都为空,用下面的命令设置root的密码为password
mysql> set password for root@localhost=password('password'); mysql> exit

(5)在mysql中添加各个组件的数据库并授权

mysql -u root -p

#Keystone
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystoneUser'@'%' IDENTIFIED BY 'keystonePass'; #Glance
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glanceUser'@'%' IDENTIFIED BY 'glancePass'; #Quantum
CREATE DATABASE quantum;
GRANT ALL PRIVILEGES ON quantum.* TO 'quantumUser'@'%' IDENTIFIED BY 'quantumPass'; #Nova
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'novaUser'@'%' IDENTIFIED BY 'novaPass'; #Cinder
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinderUser'@'%' IDENTIFIED BY 'cinderPass'; quit;

(6)安装vlan和管理网桥的工具

apt-get install -y vlan bridge-utils
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

# To save you from rebooting, perform the following 开启路由转发功能
sysctl net.ipv4.ip_forward=1

(7)安装keystone (前六步可以说是准备工作)

apt-get install -y keystone

将keystone.conf中

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

重启并同步数据库

service keystone restart
keystone-manage db_sync

下面要开始创建keystone的user、tenant、service和role,这里直接借用源地址作者提供的两个脚本。

#Modify the **HOST_IP** and **EXT_HOST_IP** variables before executing the scripts

wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_MultiNode/KeystoneScripts/keystone_basic.sh
wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_MultiNode/KeystoneScripts/keystone_endpoints_basic.sh
如果是离线安装,脚本事先要下好
chmod +x keystone_basic.sh
chmod +x keystone_endpoints_basic.sh ./keystone_basic.sh
./keystone_endpoints_basic.sh

创建一个credential 执行一些环境变量,这样才能使用openstack的命令

nano creds

#Paste the following:
#此处name和pass都要与上面两个脚本中的一一对应
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin_pass
export OS_AUTH_URL="http://192.168.40.128:5000/v2.0/" # Load it: 使用方法 source这个credential即可
source creds

测试keystone

keystone user-list
keystone service-list等

(8)安装glance

apt-get install -y glance

修改配置文件

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

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
delay_auth_decision = true
auth_host = 192.168.40.128
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = service_pass 修改the /etc/glance/glance-registry-paste.ini with: [filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 192.168.40.128
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = service_pass 修改/etc/glance/glance-api.conf with: sql_connection = mysql://glanceUser:glancePass@192.168.40.128/glance
And:
[paste_deploy]
flavor = keystone
Update the /etc/glance/glance-registry.conf with: sql_connection = mysql://glanceUser:glancePass@192.168.40.128/glance
And:
[paste_deploy]
flavor = keystone

重启并同步数据库

service glance-* restart
glance-manage db_sync

测试

glance image-create --name myFirstImage --is-public true --container-format bare --disk-format qcow2 --location http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img 此处的image是一个在线的镜像 镜像也可以自己做 教程以后再写

glance image-list

(9)安装quantum

apt-get install -y quantum-server

修改配置文件

编辑/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini with:

#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@192.168.40.128/quantum #Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = :
enable_tunneling = True #Firewall driver for realizing quantum security group function
[SECURITYGROUP]
firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver 编辑/etc/quantum/api-paste.ini [filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 192.168.40.128
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass 编辑the /etc/quantum/quantum.conf: [keystone_authtoken]
auth_host = 192.168.40.128
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing

重启quantum

service quantum-server restart

(10)安装nova

apt-get install -y nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy nova-doc nova-conductor

修改配置

编辑 /etc/nova/api-paste.ini file to this:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 192.168.40.128
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = service_pass
signing_dirname = /tmp/keystone-signing-nova
# Workaround for https://bugs.launchpad.net/nova/+bug/1154809
auth_version = v2.
编辑 /etc/nova/nova.conf like this: [DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler
rabbit_host=192.168.40.128
nova_url=http://192.168.40.128:8774/v1.1/
sql_connection=mysql://novaUser:novaPass@192.168.40.128/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf # Auth
use_deprecated_auth=false
auth_strategy=keystone # Imaging service
glance_api_servers=192.168.40.128:
image_service=nova.image.glance.GlanceImageService # Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.40.128:6080/vnc_auto.html
novncproxy_port=
vncserver_proxyclient_address=192.168.40.128
vncserver_listen=0.0.0.0 # Network settings
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.40.128:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=service_pass
quantum_admin_auth_url=http://192.168.40.128:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
#If you want Quantum + Nova Security groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=quantum
#If you want Nova Security groups only, comment the two lines above and uncomment line --.
#--firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver #Metadata
service_quantum_metadata_proxy = True
quantum_metadata_proxy_shared_secret = helloOpenStack # Compute #
compute_driver=libvirt.LibvirtDriver # Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=

重启并同步

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

(11)安装cinder

apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms

修改配置

配置 iscsi services:

sed -i 's/false/true/g' /etc/default/iscsitarget
Restart the services: service iscsitarget start
service open-iscsi start 编辑/etc/cinder/api-paste.ini like the following: [filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
service_protocol = http
service_host = 192.168.40.128
service_port =
auth_host = 192.168.40.128
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = cinder
admin_password = service_pass
signing_dir = /var/lib/cinder 编辑the /etc/cinder/cinder.conf to: [DEFAULT]
rootwrap_config=/etc/cinder/rootwrap.conf
sql_connection = mysql://cinderUser:cinderPass@192.168.40.128/cinder
api_paste_config = /etc/cinder/api-paste.ini
iscsi_helper=ietadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
iscsi_ip_address=192.168.40.128

同步

cinder-manage db sync

最后 创建volume-group

dd if=/dev/zero of=cinder-volumes bs= count= seek=2G
losetup /dev/loop2 cinder-volumes
fdisk /dev/loop2
#Type in the followings:
n
p ENTER
ENTER
t
8e
w Proceed to create the physical volume then the volume group:
pvcreate /dev/loop2
vgcreate cinder-volumes /dev/loop2

这种方法在重启后会失效  解决方法

https://github.com/mseknibilel/OpenStack-Folsom-Install-guide/blob/master/Tricks%26Ideas/load_volume_group_after_system_reboot.rst

重启

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

(12)安装horizon

apt-get install -y openstack-dashboard memcached

如何卸载openstack-ubuntu的主题

dpkg --purge openstack-dashboard-ubuntu-theme

重启

service apache2 restart; service memcached restart

通过

Check OpenStack Dashboard at http://192.168.40.128/horizon. We can login with the admin / admin_pass访问

OpenStack Grizzly版本部署(离线)的更多相关文章

  1. OpenStack Newton版本Ceph集成部署记录

    2017年2月,OpenStack Ocata版本正式release,就此记录上一版本 Newton 结合Ceph Jewel版的部署实践.宿主机操作系统为CentOS 7.2 . 初级版: 192. ...

  2. 使用openshit在ubuntu14.04下一键部署openstack(juno版本)

    一.基本介绍 本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本).采用的工具是openshit.open ...

  3. OpenStack Q版本新功能以及各核心组件功能对比

    OpenStack Q版本已经发布了一段时间了.今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N.O.P.Q各版本核心组件的主要 ...

  4. OpenStack Queens版本Horizon定制化开发

    工具环境 1.VMware workstation 12+: 2.Ubuntu系统+Linux Pycharm: 3.OpenStack Queens版本Horizon代码: 问题及解决 1.项目代码 ...

  5. [译] OpenStack Kilo 版本中 Neutron 的新变化

    OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...

  6. 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  7. OpenStack使用Bosh部署CloudFoundry(一)—准备OpenStack环境

    版本说明: CloudFoundry:V2版本 OpenStack:Folsom或者Grizzly版本 本篇文章采用OpenStack Folsom+nova-network的OpenStack环境, ...

  8. OpenStack最新版本Folsom架构解析

    OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分.F ...

  9. [译] OpenStack Pike 版本中的 53 个新功能盘点

      原文:https://www.mirantis.com/blog/53-things-to-look-for-in-openstack-pike/ 作者:Mirantis Nick Chase 发 ...

随机推荐

  1. Makefile2

    规范 target可以是Object file, 可执行文件或者标签(标签一般没有依赖) 越靠近最终结果的target卸载越前面 定义target前, 定义CC, SRC, CFLAGS, OBJS, ...

  2. 对于ESP、EBP寄存器的理解

    原文:http://blog.csdn.net/yeruby/article/details/39780943 esp是栈指针,是cpu机制决定的,push.pop指令会自动调整esp的值: ebp只 ...

  3. sqlmap注入技巧

    收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎接楼补充.分享. TIP1 当我们注射的时候,判断注入 http://site/script?id= ...

  4. ping过程详解

    原出处:http://wanicy.blog.51cto.com/509018/335207/ PS:这里只是给出了ping ip地址的例子,没有给出ping域名的例子. ping 域名还有域名转换成 ...

  5. 为什么要使用markdown?

    markdown是什么? markdown是一种标记语言,它不是编程语言 为什么要使用markdown? markdown可以使用任何文本编辑器编写和查看 markdown编写的文件可以转化为html ...

  6. Python介绍以及Python环境搭建

    Python介绍以及Python环境搭建 1.Python 发展历史 Python是由Guido van Rossum在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的,据说是在圣诞 ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——(2)、Android Studio基本配置与使用

    1.前言 在上一篇文章<Android Studio下载与安装>里我们已经介绍了Android Studio的下载与安装步骤,这一篇我们将针对Android Studio的基本常见使用做一 ...

  8. 夜色的 cocos2d-x 开发笔记 00

    第一次写博客,本人还是大二学生,纯新手,无论是文章的技术性,还是参考性,都不高,但却是根据我的经历,开发过的真实过程,对自己记载一些备忘的笔记,更希望也能帮到一些人. 本人用的win7 + vs201 ...

  9. django orm 多对多自定义第三张表

    # -*- coding: utf-8 -*-# Generated by Django 1.11.11 on 2018-09-02 08:07from __future__ import unico ...

  10. Entity Framework 6事务回滚

    使用EF6你有新的事务处理可以使用类似于: 复制代码 using (var context = new PostEntityContainer()) { using (var dbcxtransact ...