openstack部署

简介

云计算
把全球所有计算资源全部集中在一起,再以虚拟化的方式按需 分配出去
云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、 网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)、热备份冗余(High Available)等传统计算机和网络技术发展融合的产物。

云计算分类:
云平台是一个面向服务的架构,按照提供服务的不同分为 2.IaaS(基础设施级服务)、3.PaaS(平台级服务) 、SaaS(软件级服务)、dSaaS。
IaaS(Infrastructure as a Service)(基础设施级服务)
提供的服务是虚拟机。
IaaS 负责管理虚机的生命周期,包括创建、修改、备份、启停、销毁等。
使用者从云平台得到的是一个已经安装好镜像(操作系统+其他预装软件)的虚拟机。
使用者需要关心虚机的类型(OS)和配置(CPU、内存、磁盘),并且自己负责部署上层的中间件
和应用。
IaaS 的使用者通常是数据中心的系统管理员。
典型的 IaaS 例子有 AWS、Rackspace、阿里云等

PaaS(Platform as a Service)(平台级服务)虚拟机加中间件
提供的服务是应用的运行环境和一系列中间件服务(比如数据库、消息队列等)。
使用者只需专注应用的开发,并将自己的应用和数据部署到PaaS环境中。
PaaS负责保证这些服务的可用性和性能。
PaaS的使用者通常是应用的开发人员。
典型的 PaaS 有 Google App Engine、IBM BlueMix 等

SaaS(Software as a Service)(软件级服务)
提供的是应用服务
使用者只需要登录并使用应用,无需关心应用使用什么技术实现,也不需要关系应用部署在哪里。
SaaS的使用者通常是应用的最终用户。
典型的 SaaS 有 Google Gmail、Salesforce 等

dSaaS (data-storage-as-a-Service)
提供的是存储服务
dSaaS 是为用户提供一个巨大高可用的网盘,并且此网盘可以被用户随时随地访问
典型的 dSaaS 有Amazon S3

container as a service 容器级服务 (清量化虚拟机)CAAS
network as a server网络级服务




https://docs.openstack.org/install-guide/

nova 计算组件
neutron 网络组件
glance 镜像组件
keystore 认证组件
horizon 图形

环境配置

实验:2台
• Controller Node: 1 processor, 4 GB memory, and 20 GB storage 2块网卡 NAT 10.0.0.0/24
• Compute Node: 1 processor, 2 GB memory, and 20 GB storage 2块网卡 NAT 10.0.0.0/24
• 添加网卡,并添加网卡配置
TYPE=Ethernet
NAME=eth1
DEVICE=eth1
ONBOOT="yes"
BOOTPROTO=none
PADDR=10.0.0.11
GATEWAY=10.0.0.1
NETMASK=255.255.255.0
• 域名解析
• 修改主机名
• 测试网络
• 同步时间
ntp
服务端controller:
# yum install -y ntp
# vim /etc/ntp.conf # 追加到server下,并删除原有server(原server作用:与上级时间服务器进行同步)
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# systemctl start ntpd
客户端compute1:
# ntpdate server-ip/contronller

openstack


OpenStack包
两个结点都装
安装Queens版本时,请运行:
# yum install centos-release-openstack-queens -y
升级所有节点上的包:
在升级时会报404错误,将yum库新生成的三个yum源移出,升级后在移动回去
# yum upgrade -y
安装OpenStack客户端:
# yum install python-openstackclient
RHEL和CentOS 默认启用SELinux。安装 openstack-selinux软件包以自动管理OpenStack服务的安全策略:
# yum install openstack-selinux

SQL数据库

SQL数据库
控制节点装
安装包:
# yum install mariadb mariadb-server python2-PyMySQL -y

vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 10.0.0.11
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 脚本来保护数据库服务。特别是,为数据库root帐户选择合适的密码 :
# mysql_secure_installation

消息队列

消息队列
控制节点装
安装包:
# yum install rabbitmq-server -y
启动消息队列服务并将其配置为在系统引导时启动:
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
添加openstack用户:
# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
替换RABBIT_PASS为合适的密码。
允许用户进行配置,写入和读取访问 openstack:
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

memcached

Memcached的
服务的身份服务身份验证机制使用Memcached来缓存令牌。memcached服务通常在控制器节点上运行。
安装包:
# yum install memcached python-memcached -y
vim /etc/sysconfig/memcached
配置服务以使用控制器节点的管理IP地址。这是为了通过管理网络启用其他节点的访问:
OPTIONS="-l 127.0.0.1,::1,controller"
启动Memcached服务并将其配置为在系统引导时启动:
# systemctl enable memcached.service
# systemctl start memcached.service

etcd

ETCD
控制节点
OpenStack服务可以使用Etcd,一种分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务生存和其他场景。
安装包:
# yum install etcd -y

编辑/etc/etcd/etcd.conf文件并设置ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS,ETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址:
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
启用并启动etcd服务:
# systemctl enable etcd
# systemctl start etcd

身份服务 Identity service – keystone installation for Queens

• 身份服务 - Queens的keystone安装
控制节点
使用数据库访问客户端以root用户身份连接到数据库服务器:
mysql -u root -p
创建keystone数据库:
MariaDB [(none)]> CREATE DATABASE keystone;
授予对keystone数据库的适当访问权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
替换KEYSTONE_DBPASS为合适的密码。
退出数据库访问客户端。

运行以下命令以安装软件包:
# yum install openstack-keystone httpd mod_wsgi -y
编辑 vim /etc/keystone/keystone.conf文件并完成以下操作:
在该[database]部分中,配置数据库访问:
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
替换KEYSTONE_DBPASS为您为数据库选择的密码
注释掉或删除connection该[database]部分中的任何其他选项
在该[token]部分中,配置Fernet令牌提供程序:
[token]
# ...
provider = fernet
填充Identity服务数据库:
# su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化Fernet密钥存储库:
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
引导身份服务:
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:5000/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
替换ADMIN_PASS为管理用户的合适密码。
 

配置Apache HTTP服务器


编辑 vim /etc/httpd/conf/httpd.conf文件并配置ServerName引用控制器节点的 选项:
ServerName controller
创建/usr/share/keystone/wsgi-keystone.conf文件的链接:
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
启动Apache HTTP服务并将其配置为在系统引导时启动:
# systemctl enable httpd.service
# systemctl start httpd.service
配置管理帐户:写文本,source运行
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
替换ADMIN_PASS为keystone-install-configure-rdo中命令中使用的密码 。

创建域,项目,用户和角色
Identity服务为每个OpenStack服务提供身份验证服务。身份验证服务使用域,项目,用户和角色的组合。
虽然本指南中的keystone-manage bootstrap步骤中已存在“默认”域,但创建新域的正式方法是:
openstack domain create --description "An Example Domain" example

+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | An Example Domain |
| enabled | True |
| id | 2f4f80574fd84fe6ba9067228ae0a50c |
| name | example |
+-------------+----------------------------------+
本指南使用的服务项目包含您添加到环境中的每项服务的唯一用户。创建service 项目:
openstack project create --domain default \
--description "Service Project" service

+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Service Project |
| domain_id | default |
| enabled | True |
| id | 24ac7f19cd944f4cba1d77469b2a73ed |
| is_domain | False |
| name | service |
| parent_id | default |
+-------------+----------------------------------+
常规(非管理员)任务应使用非特权项目和用户。例如,本指南创建demo项目和用户。
在为此项目创建其他用户时,请勿重复此步骤。
• 创建demo项目:
openstack project create --domain default \
--description "Demo Project" demo

+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Demo Project |
| domain_id | default |
| enabled | True |
| id | 231ad6e7ebba47d6a1e57e1cc07ae446 |
| is_domain | False |
| name | demo |
| parent_id | default |
+-------------+----------------------------------+
• 创建demo用户:
openstack user create --domain default \
--password-prompt demo

User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | aeda23aa78f44e859900e22c24817832 |
| name | demo |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
• 创建user角色:
openstack role create user

+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | None |
| id | 997ce8d05fc143ac97d83fdfb5998552 |
| name | 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用户的密码。
作为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 用户和API端口5000 的密码,该端口仅允许对Identity Service API进行常规(非管理员)访问。

创建OpenStack客户端环境脚本
创建和编辑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
替换ADMIN_PASS为您admin在Identity服务中为用户选择的密码。
创建和编辑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_P

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值