本文档以RDO的方式安装单节点、单网卡的Openstack。
RDO是可在Red Hat Enterprise Linux、Fedora及其变体上运行的社区支持OpenStack版本。部署简单方便,RDO中包含核心的OpenStack组件 – Nova、Glance、Keystone、Cinder、Neutron、Swift和Horizon,还有用于云应用协调的孵化项目 – Heat,以及用于资源监视和计量的Ceilometer。利用红帽开发的安装工具 – PackStack,可以实现非常简便轻松的安装过程。
RDO的ALL IN ONE安装方式主要用于测试环境,安装所需要的环境比较容易实现,生产环境推荐使用真实物理机,多节点并逐个安装各组件的方式进行。
一、安装环境:
服务器:vmware虚拟机 系统:CentOS6.5 内核版本:2.6.32-431.3.1.el6.x86_64
网卡:一块(eth0) IP:192.168.8.229 netmask:255.255.255.0 gateway:192.168.8.1(办公网络)
二、配置国内源
三、设置FQDN
因为RDO的安装方式是通过puppet进行安装需要用到FQDN的命名方式,所以主机名要这样设置,名字可以随意取
四、修改HOST文件
五、 配置cinder-volumes
给cinder-volumes单独一个分区,可以提高性能,我在安装系统的时候预留了一块分区未挂载。如果未预留,可以给虚拟机加一块硬盘做来此分区。
六、安装packstack
yum更新后重启服务器
七、关闭selinux
八、开始安装
因为我们提前配置了cinder-volumes所以在安装命令中取消cinder-volumes的配置
九、安装过程
安装过程中可能会因为源的问题中断,加上应答文件再次执行即可
安装完成后,重启服务器
十、配置网络
安装好以后配置网络
ifcfg-br-ex 是一个openvswitch 的连接外网的bridge。因为RDO目前的BUG,安装后成后并没有ifcfg-br-ex被创建,需要手动新增。
重启网卡
十、安装镜像
安装完成后,用户、密码以及认证地址等环境变量被保存在/root/keystonerc_admin中,命令行下执行命令的时候需要先导入此文件或写到/etc/profile中。
十一、配置安全组规则
打开tcp:22端口和icmp协议的访问权限
1
2
|
neutron
security
-
group
-
rule
-
create
--
protocol
icmp
--
direction
ingress
default
neutron
security
-
group
-
rule
-
create
--
protocol
tcp
--
port
-
range
-
min
22
--
port
-
range
-
max
22
--
direction
ingress
default
|
查看新增的2个规则
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
[
root
@
controller
~
(
keystone_admin
)
]
# neutron security-group-rule-list
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
--
+
--
--
--
--
--
-
+
--
--
--
--
--
+
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
+
|
id
|
security_group
|
direction
|
protocol
|
remote_ip_prefix
|
remote_group
|
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
--
+
--
--
--
--
--
-
+
--
--
--
--
--
+
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
+
|
058625eb
-
7ca6
-
4717
-
bc80
-
f3e645f1b664
|
default
|
ingress
|
|
|
default
|
|
1cf19202
-
07e4
-
4413
-
a4b2
-
566fb3aef72c
|
default
|
ingress
|
|
|
default
|
|
2482ca61
-
9f4d
-
4cf9
-
a81c
-
c1ee22df1cc0
|
default
|
egress
|
|
|
|
|
40c6cfb5
-
231f
-
4427
-
9655
-
9194268a33b5
|
default
|
egress
|
|
|
|
|
57df7a08
-
c3fd
-
4696
-
8f63
-
32571ccecb24
|
default
|
egress
|
|
|
|
|
8391e869
-
b371
-
46bf
-
958e
-
d89615165fd1
|
default
|
ingress
|
icmp
|
0.0.0.0
/
0
|
|
|
890dbd60
-
242c
-
4cfb
-
9eba
-
f8a755907d8c
|
default
|
ingress
|
tcp
|
0.0.0.0
/
0
|
|
|
96218b0c
-
338e
-
472c
-
befb
-
c2a3eb2db6ef
|
default
|
egress
|
|
|
|
|
a29a3323
-
595f
-
4c7b
-
bdae
-
53614a62cb1e
|
default
|
egress
|
|
|
|
|
adc87cfb
-
5a71
-
4549
-
bb15
-
ffc2ab1b862c
|
default
|
egress
|
|
|
|
|
c952a552
-
50cc
-
4432
-
8f64
-
2ad305fe5496
|
default
|
ingress
|
|
|
default
|
|
d0426da9
-
5c31
-
4670
-
878c
-
cdb5771dc71e
|
default
|
ingress
|
|
|
default
|
|
d4620fb7
-
19fc
-
41cb
-
be14
-
5f70858b1b01
|
default
|
ingress
|
|
|
default
|
|
e468de96
-
1593
-
495a
-
bda9
-
64657b53a9a0
|
default
|
ingress
|
|
|
default
|
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
--
+
--
--
--
--
--
-
+
--
--
--
--
--
+
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
+
[
root
@
controller
~
(
keystone_admin
)
]
# neutron security-group-rule-show 8391e869-b371-46bf-958e-d89615165fd1
+
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
|
Field
|
Value
|
+
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
|
direction
|
ingress
|
|
ethertype
|
IPv4
|
|
id
|
8391e869
-
b371
-
46bf
-
958e
-
d89615165fd1
|
|
port_range_max
|
|
|
port_range_min
|
|
|
protocol
|
icmp
|
|
remote_group_id
|
|
|
remote_ip_prefix
|
0.0.0.0
/
0
|
|
security_group_id
|
6d8aa78f
-
1f81
-
4a7d
-
ac25
-
5ac5483e82e2
|
|
tenant_id
|
02da2e92dd6b4478b09aa63b20a11b5a
|
+
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
[
root
@
controller
~
(
keystone_admin
)
]
# neutron security-group-rule-show 890dbd60-242c-4cfb-9eba-f8a755907d8c
+
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
|
Field
|
Value
|
+
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
|
direction
|
ingress
|
|
ethertype
|
IPv4
|
|
id
|
890dbd60
-
242c
-
4cfb
-
9eba
-
f8a755907d8c
|
|
port_range_max
|
22
|
|
port_range_min
|
22
|
|
protocol
|
tcp
|
|
remote_group_id
|
|
|
remote_ip_prefix
|
0.0.0.0
/
0
|
|
security_group_id
|
6d8aa78f
-
1f81
-
4a7d
-
ac25
-
5ac5483e82e2
|
|
tenant_id
|
02da2e92dd6b4478b09aa63b20a11b5a
|
+
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
+
|
(未完待续)
遇到的问题及解决方法:
(先把遇到的问题写在这里怕以后忘记)
配置域名访问web界面后报错:
1
2
3
4
5
6
7
8
9
|
2014
-
01
-
22
08
:
55
:
57
,
323
6935
ERROR
django
.request
Internal
Server
Error
:
/
dashboard
/
Traceback
(
most
recent
call
last
)
:
File
"/usr/lib/python2.6/site-packages/django/core/handlers/base.py"
,
line
89
,
in
get_response
response
=
middleware_method
(
request
)
File
"/usr/lib/python2.6/site-packages/django/middleware/common.py"
,
line
55
,
in
process_request
host
=
request
.get_host
(
)
File
"/usr/lib/python2.6/site-packages/django/http/__init__.py"
,
line
223
,
in
get
_host
"Invalid HTTP_HOST header (you may need to set ): %s"
%
host
)
SuspiciousOperation
:
Invalid
HTTP_HOST
header
(
you
may
need
to
set
ALLOWED_HOSTS
)
:
openstack
.domain
.cc
|
原因:django有个ALLOWED_HOSTS的配置,有允许的域名可以解析到服务器IP上。
解决方法:在/etc/openstack-dashboard/local_settings 里面找到ALLOWED_HOSTS在其中加入想要解析的域名,修改后的样子:
1
|
ALLOWED_HOSTS
=
[
'192.168.8.229'
,
'controller.domain.cn'
,
'localhost'
,
'openstack.domain.cc'
,
]
|
重启apache