OpenStack搭建企业私有云 一:认证服务(持续更新...)

云计算介绍

云计算是一种模型,能够提供无论在何时何地都可以便捷获取所需资源的模型,这些资源可以是网络资源、存储资源、服务器资源,甚至是服务器或者应用软件资源等。

云计算模型中有三种基本服务模型可用:

  • IaaS:将硬件设备等基础资源封装成服务供用户使用。在IaaS环境中,用户相当于在使用裸机和磁盘,既可以让它运行Windows,也可以让它运行Linux。 IaaS最大优势在于它允许用户动态申请或释放节点,按使用量计费。而IaaS是由公众共享的,因而具有更高的资源使用效率。
  • PaaS:提供用户应用程序的运行环境,典型的如Google App Engine。PaaS自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配合问题。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模型,只适用于解决某些特定的计算问题。
  • SaaS:针对性更强,它将某些特定应用软件功能封装成服务。SaaS既不像PaaS一样提供计算或存储资源类型的服务,也不像IaaS一样提供运行用户自定义应用程序的环境,它只提供某些专门用途的服务供应用调用。

OpenStack介绍

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
?

OpenStack服务

服务 项目名称 描述
?Compute ? ? (计算服务) Nova 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(KVM),支持横向扩展。
?Network ? ?(网络服务) Neutron 负责虚拟网络的管理。
?Identity ? ??(身份认证服务) Keystone 对用户、租户和角色、服务 进行认证和授权
?Dashboard ? (控制面板服务) Horizon 提供web界面管理,与OpenStack底层服务进行交互
?Image Server (镜像服务) Glance 提供虚拟机镜像模板的注册与管理,将最好系统复制为镜像模板,在创建虚拟机时直接使用。
?Block Storage (块存储服务) Cinder 负责为允许实例提供持久的块存储设备,可进行方便扩展,按需付费,支持多种后端存储。
Object Storage ?(对象存储服务) Swift 为OpenStack提供基于云的弹性存储,支持群集无单点故障
?Telemetry ? ? (计量服务) Ceilometer 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径

?

  • 实验环境准备

主机名 IP 备注
controller 192.168.200.133 控制节点
compute 192.168.200.134 计算节点
cinder 192.168.200.143 块存储节点

?

  • 分别配置主机名和hosts文件

    # hostnamectl set-hostname controller
    # bash   //控制节点
    # hostnamectl set-hostname compute
    # bash   //计算节点
    # hostnamectl set-hostname cinder
    # bash  //块存储节点
    # vim /etc/hosts   //三台都要操作
    192.168.200.133 controller
    192.168.200.134 compute
    192.168.200.143 cinder
  • 关闭防火墙
    # systemctl stop firewalld
    # systemctl disable firewalld
    # setenforce 0
    # reboot   //重启系统(非必须)
  • 时间同步
  • 控制节点:
        # yum install chrony -y
        # vi /etc/chrony.conf
        server controller iburst
        allow 192.168.200.0/24
        # systemctl enable chronyd.service
        # systemctl start chronyd.service
        # chronyc sources
  • 网络节点 & 计算节点
    # yum install chrony -y
    # vi /etc/chrony.conf
    # server controller iburst
    # systemctl enable chronyd.service
    # systemctl start chronyd.service
    # chronyc sources
  • 安装OpenStack软件仓库 & OpenStack client
    # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    备份默认yum源
    # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    下载最新yum源
    # yum install -y centos-release-openstack-queens  //配置OpenStack  yum库
    # yum upgrade -y     //更新
    # yum install -y python-openstackclient   //安装OpenStack客户端
    # yum install -y openstack-selinux      //方便自动管理OpenStack服务的安全策略
  • 安装并配置SQL数据库
    # yum install mariadb mariadb-server python2-PyMySQL -y
    # vim /etc/my.cnf.d/openstack.cnf
    [mysqld]
    bind-address = 192.168.200.133
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
    # systemctl enable mariadb.service   //开启自启动
    # systemctl start mariadb.service
    # mysql_secure_installation    //基础设置(设置密码 其他全部Y)
  • 安装并配置消息队列
    # yum install rabbitmq-server -y
    # /usr/lib/rabbitmq/bin/rabbitmq-plugins list //查看插件安装情况
    # /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
    //启用rabbitmq_management服务
    
    # systemctl start rabbitmq-server.service
    # systemctl enable rabbitmq-server
    
    # rabbitmqctl add_user openstack RABBIT_PASS
    //添加 openstack 用户 ,  RABBIT_PASS 为密码
    # rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    //给openstack用户配置写和读权限

    访问 httpd://192.168.200.133:15672 可以看到web管理页面

  • 安装并配置Memcached

    #yum install memcached python-memcached -y
    # vi /etc/sysconfig/memcached
    OPTIONS="-l 127.0.0.1,::1,controller"
    # systemctl enable memcached.service
    # systemctl restart memcached.service
  • 安装并配置etcd
    OpenStack服务可以使用Etcd,一种分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务生存和其他场景。
    # yum install etcd -y
    # vi /etc/etcd/etcd.conf
    #[Member]
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://192.168.200.133:2380"    //宣告群集地址
    ETCD_LISTEN_CLIENT_URLS="http://192.168.200.133:2379"   //监听客户端地址
    ETCD_NAME="controller"
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.200.133:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://192.168.200.133:2379"
    ETCD_INITIAL_CLUSTER="controller=http://192.168.200.133:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
    ETCD_INITIAL_CLUSTER_STATE="new"
    # systemctl enable etcd
    # systemctl start etcd

?
?

  • 安装部署认证服务 (Identity Service )

    Keystone为所有OpenStack服务提供身份认证和授权,跟踪用户以及它们的权限,提供一个可用服务以及API的列表。接收前台请求的Keystone API和后台的Keystone-db

  • 创建Keystone 用户、数据库并分配访问权限
    # mysql -u root -p
    > CREATE DATABASE keystone;    //创建keystone数据库
    授予对keystone数据库的适当访问权限:
    > GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘localhost‘ IDENTIFIED BY ‘KEYSTONE_DBPASS‘;
    > GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘%‘ IDENTIFIED BY ‘KEYSTONE_DBPASS‘;
  • 安装并配置
    # yum install -y openstack-keystone httpd mod_wsgi
    # vi /etc/keystone/keystone.conf
    [database]
    在该[database]部分中 配置数据库访问
    connection = mysql+pymysql://keystone:[email protected]/keystone
    [token]
    在该[token]部分中,配置Fernet令牌提供程序
    provider = fernet   //安全消息传递算法
  • 构建身份认证服务的数据库、同步数据库
    # su -s /bin/sh -c "keystone-manage db_sync" keystone
  • 初始化 Fernet key
    # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  • 引导身份服务
  • 管理员的密码为 ADMIN_PASS
    # keystone-manage bootstrap --bootstrap-password ADMIN_PASS     --bootstrap-admin-url http://controller:35357/v3/     --bootstrap-internal-url http://controller:5000/v3/     --bootstrap-public-url http://controller:5000/v3/     --bootstrap-region-id RegionOne
  • 配置Apache HTTP 服务
    # vi /etc/httpd/conf/httpd.conf
    ServerName controller   //配置ServerName引用控制器节点
    # ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
    # systemctl enable httpd.service
    # systemctl start httpd.service

  • 设置环境变量
    # export OS_USERNAME=admin
    # export OS_PASSWORD=ADMIN_PASS
    # export OS_PROJECT_NAME=admin
    # export OS_USER_DOMAIN_NAME=Default
    # export OS_PROJECT_DOMAIN_NAME=Default
    # export OS_AUTH_URL=http://controller:35357/v3
    # export OS_IDENTITY_API_VERSION=3
  • 创建domain, projects, users, and roles
    创建域example
    # openstack domain create --description "An Example Domain" example
    创建service 项目
    # openstack project create --domain default --description "Service Project" service
    创建demo项目
    # openstack project create --domain default --description "Demo Project" demo
    创建demo用户
    # openstack user create --domain default --password-prompt demo
    这里输入密码: DEMO_PASS
    创建user角色
    # openstack role create user
    将user角色添加到demo项目和用户
    # openstack role add --project demo --user demo user

    ?

  • 验证操作:
    取消设置临时 变量OS_AUTH_URL和OS_PASSWORD环境变量:
    # unset OS_AUTH_URL OS_PASSWORD
  • 作为admin用户,请求身份验证令牌:
    # openstack --os-auth-url http://controller:35357/v3     --os-project-domain-name Default --os-user-domain-name Default     --os-project-name admin --os-username admin token issue
    //这里输入密码  ADMIN_PASS
  • 作为demo用户,请求身份验证令牌:
    # openstack --os-auth-url http://controller:5000/v3     --os-project-domain-name Default --os-user-domain-name Default     --os-project-name demo --os-username demo token issue
    //这里输入密码 DEMO_PASS

?

  • 创建脚本

    创建客户端环境的脚本admin和demo 项目和用户。本指南的未来部分引用这些脚本来加载客户端操作的适当凭据。
    客户端环境脚本的路径不受限制。为方便起见,您可以将脚本放在任何位置,但请确保它们可以访问并位于适合部署的安全位置,因为它们包含敏感凭据。
    OpenStack客户端还支持使用clouds.yaml文件。有关更多信息,请参阅os-client-config。

  • 创建和编辑admin-openrc文件并添加以下内容:
    # vim admin-openrc
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=ADMIN_PASS
    export OS_AUTH_URL=http://controller:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2
  • 创建和编辑demo-openrc文件并添加以下内容:
    # vim demo-openrc
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=demo
    export OS_USERNAME=demo
    export OS_PASSWORD=DEMO_PASS
    export OS_AUTH_URL=http://controller:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2
  • 使用脚本

    要将客户端作为特定项目和用户运行,只需在运行它们之前加载关联的客户端环境脚本即可。例如:
    加载admin-openrc文件以使用Identity服务的位置以及admin项目和用户凭据填充环境变量:

    # source demo-openrc
    或者
    # source admin-openrc
    # openstack token issue   //请求身份验证令牌

原文地址:http://blog.51cto.com/13630803/2167091

时间: 2024-10-13 04:18:45

OpenStack搭建企业私有云 一:认证服务(持续更新...)的相关文章

OpenStack搭建企业私有云 三:计算服务(持续更新...)

计算服务概览 使用OpenStack计算服务来托管和管理云计算系统.OpenStack计算服务是基础设施即服务(Iaas)系统的主要部分,模块主要由python实现.OpenStack计算组件请求OpenStack Identity服务进行认证:请求OpenStack Image服务提供磁盘镜像:为OpenStack dashboard提供用户与管理员接口.磁盘镜像访问限制在项目与用户上:配额以每个项目进行设定(例如,每个项目下可以创建多少实例).OpenStack组件可以在标准硬件上水平大规模

OpenStack搭建企业私有云 五: Dashboard(持续更新...)

Dashboard简介 Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务. 这个部署示例使用的是 Apache Web 服务器. controller节点安装Horizon服务 # yum install openstack-dashboard -y # vim /etc/openstack-dashboard/local_settings //188 OPENSTACK_HOST = "controller"

OpenStack搭建企业私有云 六: 块存储服务(持续更新...)

块存储服务概览 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和卷类型的功能.?块存储服务(cinder)为实例提供块存储.存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的.还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等. ?典型情况下,块服务API和调度器服务运行在控制节点上.取决于使用的驱动,卷服务器可以运行在控制节点.计算

OpenStack建设企业私有云要解决五大问题

OpenStack已经成为一种趋势,但发行版OpenStack尚不完美,企业要建成私有云必须预先充分了解发行版OpenStack的缺点,并寻求专业OpenStack提供商的帮助与合作,才能扬长避短,真正发挥OpenStack的优势,建成最大化企业竞争优势的私有云. OpenStack在企业里如何用好?还有哪些问题需要着重解决?OpenStack在企业里怎么才能用好?开发人员认为是使用姿势的问题;用户认为要稳定可靠,不能老宕机;老板认为多招几个牛X的开发和运维就可以搞定. 其实OpenStack在

OpenStack 建设企业私有云要解决五大问题

OpenStack已经成为一种趋势,但发行版OpenStack尚不完美,企业要建成私有云必须预先充分了解发行版OpenStack的缺点,并寻求专业OpenStack提供商的帮助与合作,才能扬长避短,真正发挥OpenStack的优势,建成最大化企业竞争优势的私有云. OpenStack在企业里如何用好?还有哪些问题需要着重解决?OpenStack在企业里怎么才能用好?开发人员认为是使用姿势的问题;用户认为要稳定可靠,不能老宕机;老板认为多招几个牛X的开发和运维就可以搞定. 其实OpenStack在

CentOS7 + owncloud8.1.0   搭建企业私有云(基础服务)

   最近公司给了一个寻找合适的企业云盘的任务给我.我想自己搭建一个试试.选用了以下组合:CentOS7(lamp) + owncloud8.1.0  附录: 一.CentOS 7.0默认使用的是firewall作为防火墙. firewall: systemctl start firewalld.service#启动firewall systemctl stop firewalld.service#停止firewall systemctl disable firewalld.service#禁止

OpenStack企业私有云实践培训

http://edu.51cto.com/course/course_id-2187.html 1      培训目标 本课程的目标是让所有参加培训的学员都可以使用OpenStack构建中小企业内部私有云平台.通过OpenStack私有云平台为企业构建桌面虚拟化和服务器虚拟化的应用场景,降低IT成本,提高IT效率. 2      预备知识 l  熟悉Linux基本命令及系统管理. l  熟悉基本的网络知识. l  熟悉虚拟化技术. 3      准备工作 l  笔记本电脑一台,CPU支持VT,内

企业私有云未来数据中心的基本配备

现在企业存储的文件,都只是作为基本的备份需求,一旦工作文档没能进行二次流通,这个文件的二次利用价值会变得非常低,并且二次使用的成本非常高,需要工作人员进行多次查找等. 为了提高企业文档的流通性,在企业数据中心搭建企业私有云是必不可少的.对于企业私有云的认识,相对一般企业来说还是比较陌生的.哪企业私有云是如何出现的呢?没错,它是在云计算技术发展浪潮下的衍生服务,它的功能让它成为了大型企业迫切需求的云服务.在大型企业里面的数据中心,完成了企业内部文件的归档备份,但是对企业每天和全国各地归档过来的文档

OpenStack 企业私有云的几个需求(2):自动扩展(Auto-scaling) 支持

本系列会介绍OpenStack 企业私有云的几个需求: GPU 支持 自动扩展(Auto-scaling)支持 混合云(Hybrid cloud)支持 物理机(Bare metal)支持 CDN 支持 企业负载均衡器(F5)支持 大规模扩展性(100个计算节点)支持 商业SDN控制器支持 弹性是一个真正的云平台必须具备的五大特征(自助使用.网络.独立资源池.快速弹性.服务可计量)之一,它是指一种对资源快速和弹性地提供(扩展),以及同样对资源快速和弹性地释放(收缩)的能力.因此,可以认为,弹性是云