Redhat的Openstack开源项目RDO,其实是一套Puppet的Openstack模块,不过Redhat做了很多的工作,甚至集成Foreman来管理Puppet。这个比较符合Redhat的风格,和上游合作,而不是自己造轮子。
以前的RDO,主要是针对Nova network,不过最新的版本,基于H版本,默认就是Neutron,已经全面支持Openstack的网络,Neutron,GRE,vxlan等高级功能。
本文档主要是参考 Openstack Havana + neutron setup on RHEL6.4 || CentOS + troubleshooting
不过现在应该已经有点变化,文章提到的问题已经搞定。网络的问题我还没测试,http://openstack.redhat.com/forum/discussion/577/howto-packstack-allinone-install-with-neutron-and-external-connectivity 应该可以解决所有的问题。
我是在双网卡的物理机器进行测试,用虚拟机,配置2块网卡,也是应该可以,老外都是在Virtualbox进行Openstack的测试。
登陆Dashboard,如何使用,可以参考http://www.chenshake.com/openstack-havana-dashboard-to-test-and-use/#Project
安装系统
我只是最小化安装系统,我本地有一个Centos的光盘制作的源,指向就可以。
源的设置比较重要,由于我以前使用本地源,优先级比较高,导致安装的时候出现冲突,包Selinux的错误,所以后来我就把我以前的源都删除,只使用163的mirror的设置。这个时候问题就解决。
我专门有一个分区 cinder-volumes,专门提供给cinder使用,这样性能会比文件模拟的更换。
有朋友反映需要设置正确的FQDN名字,否则安装可能会出错.所以建议大家把FQDN设置正确,避免不必要的麻烦。
设置网络
如果你是当网卡希望安装,可以参考 http://openstack.redhat.com/forum/discussion/577/howto-packstack-allinone-install-with-neutron-and-external-connectivity#Item_6
Eth0 设置
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=00:E0:81:D8:42:F6
TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.1.199.8
NETMASK=255.255.255.0
Eth1 设置
# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes DEVICETYPE=ovs OVS_BRIDGE=br-ex TYPE=OVSPort
重启网络,生效
/etc/init.d/network restart
cinder设置
[root@g134 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda5 354G 976M 335G 1% / tmpfs 32G 0 32G 0% /dev/shm /dev/sda1 194M 32M 153M 18% /boot /dev/sda2 193G 188M 183G 1% /cinder-volume [root@g134 ~]# umount /dev/sda2 [root@g134 ~]# pvcreate /dev/sda2 Physical volume "/dev/sda2" successfully created [root@g134 ~]# vgcreate cinder-volumes /dev/sda2 Volume group "cinder-volumes" successfully created
修改/etc/fstab 去掉cinder-volume的开机挂载
sed -i '/cinder-volume/s/^/#/' /etc/fstab
改为使用163源
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum list
Packstack
设置使用RDO源
yum install -y http://rdo.fedorapeople.org/openstack/openstack-havana/rdo-release-havana.rpm
安装packstack
yum install -y openstack-packstack
会给机器添加puppet lab和Foreman的源。
运行更新
yum -y update
会直接更新内核的版本。我测试的时候的版本
装完后,重启机器。
安装Openstack
Packstack脚本设置参数其实很多,不过对于第一次安装就直接采用默认就可以。Openstack默认的demo用户,会对测试造成很多困扰。所以可以增加参数,去掉demo的用户。如果你按照上面的文档,创建了cinder-volume,那么这里就需要加上后面的参数,如果你没创建,那么就不需要添加后面的参数,会自动用文件模拟一个cinder-volume。
packstack --allinone --provision-demo=n CONFIG_CINDER_VOLUMES_CREATE=n
如果你希望安装heat
packstack --allinone --provision-demo=n CONFIG_CINDER_VOLUMES_CREATE=n \ --os-heat-install=y --os-heat-cfn-install=y
安装成功,会看到下面的界面
重启机器,一定要重启机器,否则网络会有问题。
登陆Dashboard
Redhat的RDO,基本所有和密码有关的,都是随机生成,登陆Dashboard的账号
http://ip 就可以直接访问 user:admin 密码看下面。
# cat /root/keystonerc_admin export OS_USERNAME=admin export OS_TENANT_NAME=admin export OS_PASSWORD=d6433394e15f4175 export OS_AUTH_URL=http://10.1.199.8:35357/v2.0/ export PS1='[\u@\h \W(keystone_admin)]\$ '
高级功能
你可以通过生成配置文件,进行修改
packstack --gen-answer-file my_answers.txt
对my_answers.txt 进行设置,然后
packstack --answer-file my_answers.txt
如果你希望使用密钥登陆
创建密钥
ssh-keygen
copy公钥到
ssh-copy-id root@10.1.199.134
编辑my_answers.txt
CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub
这样安装过程,就不会提示输入密码.
请教一下陈老师,我是centos6.4 按照你的步骤按照,运行packstack –allinone –provision-demo=n命令的时候提示ERROR : Error appeared during Puppet run: 192.168.1.151_keystone.pp
Notice: /Stage[main]/Keystone::Db::Sync/Exec[keystone-manage db_sync]/returns: ImportError: No module named mysql
请问这个要怎么排查?