OpenStack云计算平台初体验

简介

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目;是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。

构建思路

第一步是设置正确的硬件和网络环境。尽管OpenStack允许在一个单一的平面网络上部署一切,从安全的角度来看并不安全。取决于你所使用的管理程序以及虚拟网络接口,它会允许guest虚拟机嗅探管理流量。建议至少使用两个网络:一个用来管理流量,一个用来进行虚拟机之间的对话。这意味着所有的云计算结点中你需要两个网卡(一个运行实例)和网络管理者。这些应该运行在不同的IP范围中。计算结点和实例的网络也需要支持VLAN标记,因为这是在“项目”之间隔绝流量所使用的机制。一个项目等价于你的亚马逊EC2账户,除了你不能按照你所希望的数目创建和分配之外。每一个项目都有自己的管理员和用户,在既定项目中的所有实例可以彼此通信。通过指派每一个项目自己的VLAN以及内部和外部的IP地址池来执行。

一旦硬件和网络设置好,下一步就是确定在哪里部署所有的OpenStack组件。标准部署应有一个控制器和一系列计算结点。控制器运行消息服务器,数据库和其他的组件来编排云,同时计算结点运行实例。但是你也可以分解控制器为地理的部分,从而改善性能,像把MySQL放在不同的物理盒中。对于安全而言,最关键的是确保每一部分都安装在安全的主机上,你只需要将其附加在网络上,让云运转即可。

只有两部分需要暴露给外面的世界(即使那只是你的企业网络):API服务器/Web 控制台(如果开启)和网络管理者。这些服务器需要过硬,你甚至可以使用第三方网络接口来隔离后端管理用户连接产生的流量。

操作

准备

环境: windows系统,openstack云平台(172.17.142.2 cloud.X.X.cn)

修改windows系统主机名称&IP地址映射文件:/windows/system32/drivers/etc/hosts

追加:172.17.142.2    cloud.X.X.cn

           172.17.143.130  controller

ip地址172.17.143.130要根据后面绑定控制节点浮动ip来修改。

以用户名test,密码test登录云平台https://cloud.X.X.cn。

网络管理

1、创建网络

 网络名称:135043204_network

 网络地址:192.32.4.0/24

 gateway: 192.32.4.254

 地址池:192.32.4.10,192.32.4.200

  DNS:211.71.232.65


2、创建路由器135043204_router

     选择外部网络:admin_floating_net     

     配置路由器135043204_router,增加接口:选择子网135043204_network

安装配置控制节点

1、以快照镜像mitaka-controller启动虚拟机;

2、实例名称为:135043204_controller,可用域:nova,实例数:1

     源选实例快照:mitaka-controller

     flavor:4core8gram10gdisk 

     网络先选:135043204_network,再选ext_network(tips:在选择网络时,系统默认为第一个网卡的网   络建立路由)

     安全组选:default

     秘钥对选:创建135043204

     启动实例。

     绑定浮动ip(tips根据此浮动ip,修改/windows/system32/drivers/etc/hosts文件中的controller对应的ip.)


3、通过浮动ip远程连接controller

     直接通过Xshell,选择public key认证方法,导入创建的私钥135043204,用户名为:centos连接。

     连接后,切换到root身份,root密码为huawei

         su -

     修改/etc/ssh/sshd_config

         快速定位password

     将PasswordAuthentication no行中的no修改为yes

         PasswordAuthentication yes

     存盘退出。

     重启sshd服务。

         systemctl restart sshd

     服务查看,注意颜色为红色的服务名称。

         systemctl

     禁用cloud相关服务

         systemctl disable cloud-config cloud-init cloud-final cloud-init-local

     主机名查看

          hostname

          cat /etc/hostname                       

     主机名设置

         hostnamectl set-hostname controller

         cat /etc/hostname 

     ip 查看

         ip a

     配置ip&host映射

         vi /etc/hosts

     修改controller对应的ip,(tips:compute对应的ip根据计算节点ip来修改。)

         192.32.4.13 controller

         192.32.4.15 compute


     配置nosql数据库,修改bind_ip为192.32.4.13

         vi /etc/mongod.conf 

         systemctl restart mongod


     配置mysql数据库,修改bind-address为192.32.4.13

         vi /etc/my.cnf.d/openstack.cnf 

         systemctl restart mariadb


     重启rabbitmq-server

         systemctl

         systemctl restart rabbitmq-server


     配置 linuxbridge_agent,配置physical_interface_mappings,local_ip ,配置local_ip为192.32.4.13

         vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini 

     重启neutron-linuxbridge-agent

         systemctl restart neutron-linuxbridge-agent

     查看日志:

         cat /var/log/neutron/linuxbridge-agent.log

         cat /var/log/neutron/dhcp-agent.log

         cat /var/log/neutron/server.log

     重启controller

         reboot

安装配置计算节点

以快照镜像mitaka-compute启动虚拟机;

实例名称为:135043204_compute,可用域:nova,实例数:1

源选实例快照:mitaka-compute

flavor:2core4g_10g

网络选:135043204_network,ext_network

安全组选:default

秘钥对选:135043204

单击启动实例。绑定浮动ip。


通过浮动ip远程连接compute

直接通过Xshell,选择public key认证方法,使用私钥135043204,用户名为:centos连接。

连接后,切换到root身份

su -

修改/etc/ssh/sshd_config

快速定位password

将PasswordAuthentication no行中的no修改为yes

PasswordAuthentication yes

存盘退出。

重启sshd服务。

systemctl restart sshd


服务查看

systemctl

禁用cloud相关服务

systemctl disable cloud-config cloud-init cloud-final cloud-init-local

主机名查看

  hostname

  cat /etc/hostname 

主机名设置

  hostnamectl set-hostname compute

  cat /etc/hostname 

ip 查看

  ip a


配置ip&host映射

     vi /etc/hosts

配置 linuxbridge_agent,配置physical_interface_mappings,local_ip 

    vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini 

    local_ip =  192.32.4.15

重启neutron-linuxbridge-agent

   systemctl restart neutron-linuxbridge-agent

   查看日志:

   cat /var/log/neutron/linuxbridge-agent.log 

   cat /var/log/neutron/dhcp-agent.log 

   cat /var/log/neutron/server.log 

配置/etc/nova/nova.conf,配置my_ip

  my_ip = 192.32.4.15

重新启动openstack-nova-compute

systemctl restart openstack-nova-compute

 reboot

测试

1、以管理员身份登录http://controller/dashboard

domain:default

user name:admin

password:ADMIN_PASS

创建云主机类型

S135043199:1vcpu,64Mram,1g硬盘




2、以普通用户身份登录http://controller/dashboard

domain:default

user name:demo

password:DEMO_PASS

创建2个云主机

实例名称:s135043199

镜像:cirros

flavor:s135043199

network: selfservice


3、通过控制台访问创建好的虚拟机s135043199-2

用户名cirros、密码cubswin:)


测试两台虚拟机的连通性。


到此私有云平台就部署并测试成功。

 

安全性建议(–取自百度百科):

MySQL服务器使用指定的用户账户,不是根MySQL管理账户。这个账户和密码将会暴露在每一个云结点上,即使使用基于证书的认证,因此所有结点需要访问这个数据库服务器。

MySQL配置文件中,限制访问服务器,OpenStack用户账户为唯一授权IP地址。

移除任何不需要的OS组件并确保你所设置的服务器只支持通过SSH的基于密钥的登陆。

默认MySQL和RabbitMQ(消息服务器)流量不加密。如果你隔离了管理网络和坚固的主机,这就不应该是一个很糟糕的风险。如果你的云网络易于嗅探(例如,它和其他服务器共享网络),你需要加密流量。你可以使用OpenSSL来进行MySQL 和RabbitMQ处理。)


-------------本文结束感谢您的阅读-------------
  • Post author: SuNu11
  • Post link: http://sunu11.com/2016/10/30/3/
  • Copyright Notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.