Openstack安装部署_rhel7

enabled=1

[mitaka]
name=mitaka
baseurl=http://172.25.254.1/mitaka/Openstack-Mitaka
gpgcheck=0

在主机上升级包:

安装 Openstack客户端:
两个节点都要操作
[root@server1 ~]# yum install -y python-openstackclient
[root@server2 ~]# yum install openstack-selinux

[root@server1 ~]# yum upgrade
[root@server2 ~]# yum upgrade
[root@server2 ~]# yum install -y python-openstackclient
[root@server2 ~]# yum install openstack-selinux

安全并配置组件¶
以下操作控制节点上
[root@server1 ~]# yum install -y mariadb mariadb-server python2-PyMySQL

//在 [mysqld] 部分,设置 bind-address值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库:
[root@server1 ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 172.25.254.11
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

完成安装
[root@server1 ~]# systemctl enable mariadb.service
[root@server1 ~]# systemctl start mariadb.service

//为了保证数据库服务的安全性,运行mysql\_secure\_installation脚本。特别需要说明的是,为数据库的root用户设置一个适当的密码。
[root@server1 ~]# mysql_secure_installation

安装MongoDB包:
[root@server1 ~]# yum install mongodb-server mongodb
[root@server1 ~]# vim /etc/mongod.conf
bind_ip = 172.25.254.11

默认情况下,MongoDB会在/var/lib/mongodb/journal 目录下创建几个 1 GB 大小的日志文件。如果你想将每个日志文件大小减小到128MB并且限制日志文件占用的总空间为512MB,配置 smallfiles 的值:

完成安装

启动MongoDB 并配置它随系统启动:

[root@server1 ~]# systemctl enable mongod.service

[root@server1 ~]# systemctl start mongod.service

消息队列

安全并配置组件

1.安装包:

[root@server1 ~]# yum install -y rabbitmq-server

2.启动消息队列服务并将其配置为随系统启动:
[root@server1 ~]# systemctl enable rabbitmq-server.service
[root@server1 ~]# systemctl start rabbitmq-server.service

3.查看端口:

[root@server1 ~]# netstat -antlp | grep :5672

添加 openstack 用户,密码 为openstack
[root@server1 ~]# rabbitmqctl add_user openstack openstack

openstack用户配置写和读权限:
[root@server1 ~]# rabbitmqctl set_permissions openstack “.*” “.*” “.*”


[root@server1 ~]# rabbitmq-plugins list

[root@server1 ~]# rabbitmq-plugins enable rabbitmq_management


[root@server1 ~]# netstat -antlp | grep :15672

访问 http://172.25.254.11:15672/

Memcached

认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。

安全并配置组件
[root@server1 ~]# yum install memcached python-memcached
启动 memcached
[root@server1 ~]# systemctl enable memcached.service
[root@server1 ~]# systemctl start memcached.service

认证服务

Openstack 身份认证服务
在控制节点
进入 mysql 创建 keystone 数据库并授予权限

在你配置 OpenStack 身份认证服务前,你必须创建一个数据库和管理员令牌。

1、完成下面的步骤以创建数据库

数据库连接客户端以 root 用户连接到数据库服务器:

[root@server1 ~]# mysql -uroot -p        //我在这里的密码是redhat

创建 keystone 数据库:
MariaDB [(none)]> create database keystone;

keystone数据库授予恰当的权限:

MariaDB [(none)]> grant all privileges on keystone.* to ‘keystone’@‘localhost’ identified by ‘keystone’;

退出数据库客户端。
MariaDB [(none)]> exit

2、 生成一个随机值在初始的配置中作为管理员的令牌。
[root@server1 ~]# openssl rand -hex 10
29c27f7d00a35bc3380a

安全并配置组件

运行以下命令来安装 httpd,mod_wsgi,keystoen
[root@server1 ~]# yum install -y openstack-keystone httpd mod_wsgi

3、编辑文件 /etc/keystone/keystone.conf 并完成如下动作:
[root@server1 ~]# vim /etc/keystone/keystone.conf

[DEFAULT]                                                       //在[DEFAULT]部分,定义初始管理令牌的值
admin_token = 29c27f7d00a35bc3380a

[database]
connection = mysql+pymysql://keystone:keystone@controller/keystone           //在 [database] 部分,配置数据库访问

[token]
provider = fernet                             //在[token]部分,配置Fernet UUID令牌的提供者。

4、初始化身份认证服务的数据库:
[root@server1 ~]# su -s /bin/sh -c “keystone-manage db_sync” keystone

5、初始化Fernet keys:

[root@server1 ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置 Apache HTTP 服务器

1、编辑/etc/httpd/conf/httpd.conf 文件,配置ServerName 选项为控制节点:
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
ServerName controller

2、用下面的内容创建文件 /etc/httpd/conf.d/wsgi-keystone.conf。

[root@server1 ~]# vim /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat “%{cu}t %M”
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
        Require all granted
   

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat “%{cu}t %M”
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
        Require all granted
   

启动 Apache HTTP 服务:

[root@server1 ~]# systemctl enable httpd.service
[root@server1 ~]# systemctl start httpd.service

创建服务实体和API端点

1、配置认证令牌:

[root@server1 ~]# export OS_TOKEN=29c27f7d00a35bc3380a

2、配置端点URL:
[root@server1 ~]# export OS_URL=http://controller:35357/v3

3、配置认证 API 版本:
[root@server1 ~]# export OS_IDENTITY_API_VERSION=3

创建服务实体和API端点

1、在你的Openstack环境中,认证服务管理服务目录。服务使用这个目录来决定您的环境中可用的服务。

创建服务实体和身份认证服务:

[root@server1 ~]# openstack service create --name keystone --description “OpenStack Identity” identity

创建认证服务的 API 端点:
[root@server1 ~]# openstack endpoint create --region RegionOne identity public http://controller:5000/v3
[root@server1 ~]# openstack endpoint create --region RegionOne identity admin http://controller:35357/v3

创建域、项目、用户和角色

1.创建域default
[root@server1 ~]# openstack domain create --description “Default Domain” default
2.在你的环境中,为进行管理操作,创建管理的项目、用户和角色:

创建 admin 项目
[root@server1 ~]# openstack project create --domain default --description “Admin Project” admin
创建 admin 用户
[root@server1 ~]# openstack user create --domain default --password-prompt admin
创建 admin 角色
[root@server1 ~]# openstack role create admin

添加admin 角色到 admin 项目和用户上:

[root@server1 ~]# $ openstack role add --project admin --user admin admin          //这个命令执行后没有输出。

3.本指南使用一个你添加到你的环境中每个服务包含独有用户的service 项目。创建service项目:

[root@server1 ~]# openstack project create --domain default  --description “Service Project” service

4.常规(非管理)任务应该使用无特权的项目和用户。作为例子,本指南创建 demo 项目和用户。

创建demo 项目:

[root@server1 ~]# penstack project create --domain default --description “Demo Project” demo

//当为这个项目创建额外用户时,不要重复这一步。

创建demo 用户:

[root@server1 ~]#  openstack user create --domain default --password-prompt demo

创建 user 角色:

[root@server1 ~]#  openstack role create user

添加 user角色到 demo 项目和用户:

[root@server1 ~]# openstack role add --project demo --user demo user

//你可以重复此过程来创建额外的项目和用户。

验证操作

//在控制节点上执行这些命令。

1.重置OS\_TOKENOS\_URL 环境变量:
unset OS_TOKEN OS_URL

2.作为 admin 用户,请求认证令牌:

[root@server1 ~]# 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用户的密码。

3.作为demo 用户,请求认证令牌:

[root@server1 ~]# 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 用户的密码和API端口5000,这样只会允许对身份认证服务API的常规(非管理)访问。

创建 OpenStack 客户端环境脚本

创建脚本

1.编辑文件 admin-openrc 并添加如下内容:
[root@server1 ~]# vim admin-openrc                           //将 ADMIN_PASS 为在认证服务中为 admin 用户选择的密码,我的为westos

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=westos
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

2.编辑文件 demo-openrc 并添加如下内容:

[root@server1 ~]# vim demo-openrc                  //将 DEMO_PASS 为在认证服务中为 demo 用户选择的密码,我这里也是westos

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=westos
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

使用脚本

1.加载admin-openrc文件来身份认证服务的环境变量位置和admin项目和用户证书:

[root@server1 ~]# . admin-openrc

2.请求认证令牌:

[root@server1 ~]# openstack token issue

镜像服务

OpenStack镜像服务包括以下组件:

glance-api   :接收镜像API的调用,诸如镜像发现、恢复、存储。

glance-registry   :存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。

数据库  :存放镜像元数据,用户是可以依据个人喜好选择数据库的,多数的部署使用MySQL或SQLite。

镜像文件的存储仓库:支持多种类型的仓库,它们有普通文件系统、对象存储、RADOS块设备、HTTP、以及亚马逊S3。记住,其中一些仓库仅支持只读方式使用。

元数据定义服务:通用的API,是用于为厂商,管理员,服务,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,工件,卷,配额以及集合。一个定义包括了新属性的键,描述,约束以及可以与之关联的资源的类型。

安装和配置

安装和配置镜像服务之前,你必须创建创建一个数据库、服务凭证和API端点。

1.完成下面的步骤以创建数据库:

用数据库连接客户端以 root 用户连接到数据库服务器:

[root@server1 ~]# mysql -u root -p

创建 glance 数据库:

glance数据库授予恰当的权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘localhost’ IDENTIFIED BY ‘glance’;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘%’ IDENTIFIED BY ‘glance’;

退出数据库客户端。

2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

[root@server1 ~]# . admin-openrc

3.要创建服务证书,完成这些步骤:

创建 glance 用户:

[root@server1 ~]# openstack user create --domain default --password-prompt glance

添加 admin 角色到 glance 用户和 service 项目上。

[root@server1 ~]# openstack role add --project service --user glance admin              //这个命令执行后没有输出。

创建glance服务实体:

[root@server1 ~]# openstack service create --name glance --description “OpenStack Image” image

创建镜像服务的 API 端点:

[root@server1 ~]# openstack endpoint create --region RegionOne image public http://controller:9292

[root@server1 ~]# openstack endpoint create --region RegionOne image internal http://controller:9292

[root@server1 ~]# openstack endpoint create --region RegionOne  image admin http://controller:9292

安全并配置组件

1.安装软件包:

[root@server1 ~]# yum install openstack-glance

2.编辑文件 /etc/glance/glance-api.conf 并完成如下动作:

[root@server1 ~]# vim /etc/glance/glance-api.conf

在 [database] 部分,配置数据库访问:

[database]
connection = mysql+pymysql://glance:glance@controller/glance

在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance

[paste_deploy]
flavor = keystone

//GLANCE_PASS 为认证服务中 glance 用户选择的密码。

//在 [keystone_authtoken] 中注释或者删除其他选项。

在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

3.编辑文件 []( )/etc/glance/glance-registry.conf并完成如下动作:

[root@server1 ~]# vim /etc/glance/glance-registry.conf

在 [database] 部分,配置数据库访问:

[database]
connection = mysql+pymysql://glance:glance@controller/glance

在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance

[paste_deploy]
flavor = keystone

//密码为镜像服务选择的密码。

4.写入镜像服务数据库

[root@server1 ~]# su -s /bin/sh -c “glance-manage db_sync” glance

查看 glance 数据库是否有数据已经同步:

[root@server1 ~]# mysql -uroot -p

MariaDB [(none)]> use glance;

MariaDB [glance]> show tables;

完成安装

启动镜像服务:

[root@server1 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service

[root@server1 ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service

验证操作

在控制节点上执行这些命令

1.获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

[root@server1 ~]# . admin-openrc
[root@server1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
-bash: wget: command not found                          //没有此命令

如果您的发行版里没有包含wget,请安装它
[root@server1 ~]# yum install -y wget          //进行下载

2.下载源镜像:

[root@server1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

该过程下载有点慢

3.使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:

[root@server1 ~]# openstack image create “cirros” --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public

4.确认镜像的上传并验证属性:

[root@server1 ~]# openstack image list

计算服务概览

OpenStack计算服务由下列组件所构成:

nova-api 服务

nova-api-metadata 服务

[]( )nova-compute服务

[]( )nova-scheduler服务

[]( )nova-conductor模块

[]( )nova-cert模块

nova-network worker 守护进程

nova-consoleauth 守护进程

nova-novncproxy 守护进程

nova-spicehtml5proxy 守护进程

nova-xvpvncproxy 守护进程

nova-cert 守护进程

[]( )nova客户端

队列

SQL数据库

安装并配置控制节点

这个部分将描述如何在控制节点上安装和配置 Compute 服务

1.为了创建数据库,必须完成这些步骤:

用数据库连接客户端以 root 用户连接到数据库服务器:

[root@server1 ~]# mysql -u root -p

创建 nova_api 和 nova 数据库:

MariaDB [(none)]> CREATE DATABASE nova_api;

MariaDB [(none)]> CREATE DATABASE nova;

对数据库进行正确的授权:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@‘localhost’
    -> IDENTIFIED BY ‘nova’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@‘%’
    -> IDENTIFIED BY ‘nova’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’
    -> IDENTIFIED BY ‘nova’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘%’
    -> IDENTIFIED BY ‘nova’;

退出数据库客户端。

2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

[root@server1 ~]# . admin-openrc

3.要创建服务证书,完成这些步骤:

创建 nova 用户:

[root@server1 ~]# openstack user create --domain default --password-prompt nova

给 nova 用户添加 admin 角色:

[root@server1 ~]# $ openstack role add --project service --user nova admin

创建 nova 服务实体:

[root@server1 ~]# openstack service create --name nova --description “OpenStack Compute” compute

4.创建 Compute 服务 API 端点 :

[root@server1 ~]# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%(tenant_id)s

[root@server1 ~]# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%(tenant_id)s

[root@server1 ~]# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%(tenant_id)s

安全并配置组件

1.安装软件包:

[root@server1 ~]# yum install openstack-nova-api openstack-nova-conductor   openstack-nova-console openstack-nova-novncproxy   openstack-nova-scheduler

2.编辑/etc/nova/nova.conf文件并完成下面的操作:

[root@server1 ~]# vim /etc/nova/nova.conf

[DEFAULT]部分,只启用计算和元数据API:

[DEFAULT]
enabled_apis = osapi_compute,metadata

[api\_database][database]部分,配置数据库的连接:

api_database]
connection = mysql+pymysql://nova:nova@controller/nova_api

[database]
connection = mysql+pymysql://nova:nova@controller/nova

在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:

[DEFAULT]

rpc_backend = rabbit


[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = openstack

[DEFAULT]

auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova

在 [DEFAULT 部分,配置my\_ip 来使用控制节点的管理接口的IP 地址。

[DEFAULT]
my_ip = 172.25.254.11

在 [DEFAULT] 部分,使能 Networking 服务:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值