使用RDO搭建OpenStack POC环境

先说句题外话,因为最近两年参与了公司的一个微服务项目,整个系统可以由一套基于SaltScript的CD工具搭建起来,但是整套环境需要多个node,而且配置参数繁多,非常容易部署失败。这种情况下,环境成本非常高,直接造成开发测试效率的降低。所以我认为产品的系统设计必须包含开发视图,考虑到开发各阶段的环境搭建,特性验证,桩数据来源等问题并输出测试方案。不管产品部署后是分布式的还是多实例的,总要有一个能够让开发人员快速搭建的轻量化版本,可以运行在开发环境上,无需过多的依赖,这样才能够让开发人员聚焦在特性开发,而不必纠结于环境问题。

RDO的packstack就为很多OpenStack学习和开发用户提供了一种高效快速搭建环境的方式。
POC意味Proof of Concept,就是概念验证的意思,可以通俗理解为简单的测试环境,所以这种方式搭建的OpenStack肯定不能用于生产环境,通常是在个人环境(比如PC)上跑相关服务,能够快速开发验证相关特性。
Readhat/CentOS和Ubuntu上都有OpenStack的POC项目,个人感觉RDO(RPM Distribution of OpenStack)的更好用些。官方指导文档在 这里
我是在Macbook Pro上装的VirtualBox,在VirtualBox上装的CentOS7,用了两块虚拟网卡,一块是NAT,一块是host-only,分别用于跟外网和Mac连接,当然你也可以用bridge的方式,CPU 4核,内存6G,硬盘20G,这里不再详述。
使用root用户登录进CentOS后,需要进行一些设置。
1.配置环境变量
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
2.关闭SeLinux、防火墙等
systemctl disable firewalld
systemctl stop firewalld
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable network
systemctl start network
SeLinux的配置文件在/etc/selinux/config,里面配置disable,然后reboot

完成之后,很简单的几个命令
1.CentOS的extra repository提供了支持OpenStack repository的RPM,所以可以直接安装OpenStack的repository。
yum install -y centos-release-openstack-pike

2.更新package
yum update -y
3.安装packstack。packstack是红帽提供的用Puppet安装OpenStack的一套工具,虽然我只在一台虚拟机上安装OpenStack,但是packstack支持多个node。
yum install -y openstack-packstack
4.运行packstack,将OpenStack安装到一个node上。
packstack —allinone

安装成功后可以访问dashboard了,用户名密码在家目录的keystonerc_admin文件中。


在安装过程中遇到几个问题,所以实际上上面的过程反复重复了好几次,最后才安装成功。
首先,最容易出错的是在最后一步Applying 10.0.2.15_controller.pp时,有两次报了不同的错误,比如Timeout, 比如下面这个:
Error: Evaluation Error: Error while evaluating a Function Call, empty()
没有找到问题的具体原因,但是怀疑跟网络环境有关,最后一次使用了VPN连接到美国的服务器,没有再报错。
其次,安装成功后,浏览器打不开dashboard。我的环境可能因为配了两块网卡,从Mac访问时用的是host-only网络,检查了httpd的配置文件,在/etc/httpd/conf.d/15-horizon_vhost.conf中,将两个网卡的IP地址都配到了ServerAlias中,如下, 问题解决。
# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************

<VirtualHost *:80>
  ServerName centos7.jnpr.net

  ## Vhost docroot
  DocumentRoot "/var/www/"
  ## Alias declarations for resources outside the DocumentRoot
  Alias /dashboard/static "/usr/share/openstack-dashboard/static"

  ## Directories, there should at least be a declaration for /var/www/

  <Directory "/var/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
  </Directory>

  ## Logging
  ErrorLog "/var/log/httpd/horizon_error.log"
  ServerSignature Off
  CustomLog "/var/log/httpd/horizon_access.log" combined

  ## RedirectMatch rules
  RedirectMatch permanent  ^/$ /dashboard

  ## Server aliases
  ServerAlias 10.0.2.15
  ServerAlias 192.168.56.103
  ServerAlias localhost
  WSGIApplicationGroup %{GLOBAL}
  WSGIDaemonProcess apache group=apache processes=3 threads=10 user=apache
  WSGIProcessGroup apache
  WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
</VirtualHost> 
如果需要在host上直接访问OpenStack各个service的RESTful API,有可能需要将各service的proxy bind ip改
一下,这个问题也只有在NAT网络的情况下存在。以swift service为例,默认只绑定了NAT网卡的IP,这样从host就无法访问swift的REST,方式是修改/etc/swift/proxy-server.conf,将bind_ip改为0.0.0.0,然后重启swift proxy服务
systemctl restart openstack-swift-proxy.service 




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 CentOS搭建 OpenStack 的详细过程: 1. 安装 CentOS 首先需要安装 CentOS,建议使用最新版本的 CentOS 7。 2. 配置网络 OpenStack 需要使用网桥模式,所以需要配置网桥。在 CentOS 中,可以使用 `brctl` 工具来创建网桥。首先安装 `bridge-utils`: ``` yum install -y bridge-utils ``` 然后在 `/etc/sysconfig/network-scripts/` 目录下创建一个名为 `ifcfg-br0` 的文件,内容如下: ``` DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 ONBOOT=yes ``` 其中 `IPADDR` 和 `NETMASK` 需要根据实际情况进行修改。然后在 `/etc/sysconfig/network-scripts/` 目录下找到原来的网卡配置文件,例如 `ifcfg-eth0`,将其内容修改为: ``` DEVICE=eth0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes BRIDGE=br0 ``` 保存文件后,重启网络服务: ``` systemctl restart network ``` 3. 安装 OpenStack 接下来需要安装 OpenStackOpenStack 有多个组件,包括 Keystone、Glance、Nova、Neutron 等。这里以安装 Keystone、Glance、Nova 为例。 首先需要安装 OpenStack 的仓库和公钥: ``` yum install -y centos-release-openstack-queens yum install -y https://www.rdoproject.org/repos/rdo-release.rpm rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7 ``` 然后安装 Keystone: ``` yum install -y openstack-keystone httpd mod_wsgi ``` 安装完成后,需要配置 Keystone。首先需要修改 `/etc/keystone/keystone.conf` 文件,将其中的 `admin_token` 修改为一个安全的随机值,例如: ``` [DEFAULT] ... admin_token = 1234567890abcdef1234567890abcdef ... ``` 然后创建数据库和用户: ``` mysql -uroot -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack'; ``` 接着初始化 Keystone 数据库: ``` su -s /bin/sh -c "keystone-manage db_sync" keystone ``` 然后启动 Keystone 服务: ``` systemctl enable httpd.service systemctl start httpd.service systemctl enable openstack-keystone.service systemctl start openstack-keystone.service ``` 最后创建一个管理员用户: ``` export OS_USERNAME=admin export OS_PASSWORD=openstack export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://localhost:5000/v3 export OS_IDENTITY_API_VERSION=3 openstack domain create --description "An Example Domain" example openstack project create --domain default --description "Service Project" service openstack project create --domain default --description "Demo Project" demo openstack user create --domain default --password-prompt demo openstack role create user openstack role add --project demo --user demo user ``` 然后安装 Glance: ``` yum install -y openstack-glance ``` 修改 `/etc/glance/glance-api.conf` 文件,将其中的 `database`、`keystone_authtoken`、`paste_deploy` 等选项配置为正确的值。 创建 Glance 数据库: ``` mysql -uroot -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack'; ``` 初始化 Glance 数据库: ``` su -s /bin/sh -c "glance-manage db_sync" glance ``` 启动 Glance 服务: ``` systemctl enable openstack-glance-api.service openstack-glance-registry.service systemctl start openstack-glance-api.service openstack-glance-registry.service ``` 最后安装 Nova: ``` yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler ``` 修改 `/etc/nova/nova.conf` 文件,将其中的 `database`、`keystone_authtoken`、`glance`、`neutron`、`libvirt` 等选项配置为正确的值。 创建 Nova 数据库: ``` mysql -uroot -p CREATE DATABASE nova_api; CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; ``` 初始化 Nova 数据库: ``` su -s /bin/sh -c "nova-manage api_db sync" nova su -s /bin/sh -c "nova-manage db sync" nova ``` 启动 Nova 服务: ``` systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service ``` 然后就可以使用 OpenStack 了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值