openstack_stein版安装文档_openstack stein搭建教程-csdn博客


本站和网页 https://thson.blog.csdn.net/article/details/100184082 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

openstack_Stein版安装文档_openstack stein搭建教程-CSDN博客
openstack_Stein版安装文档
最新推荐文章于 2024-03-19 16:42:45 发布
十三y 阅读量1w 收藏 62 点赞数 17 分类专栏: # openstack 文章标签: openstack stein 安装文档
版权声明:本文为博主原创文章,遵循
CC 4.0 BY-SA
版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/weixin_42758707/article/details/100184082
版权
专栏收录该内容
13 篇文章
40 订阅
订阅专栏
openstack Stein 版本安装文档
2019年8月28日
陈即彪
文章目录
1. openstack介绍
1.1. 云计算模式
2. OpenStack 中有哪些项目?
2.1. Openstack创建实例的流程
2.2. 总图
3. openstack项目搭建
4. 环境配置
4.1. 配置SQL数据库
4.2. 配置Memcached
4.3. 安装rabbit-MQ
4.4. 配置haproxy+keepalived
5. 配置keystone认证服务
5.1. 数据库:106
5.2. 控制端: 101
6. 配置glance服务
7. 配置placement服务
7.1. 数据库
7.2. 控制端
8. 配置nova
8.1. 配置nova控制节点
8.1.1. 安装并配置nova控制节点
8.1.2. 在控制端
8.2. 配置nova计算节点
8.2.1. 控制端
9. 配置neutron服务
9.1. 配置neutron控制节点
9.2. 配置neutron计算节点
10. 创建实例
10.1. 控制端
10.2. 创建实例类型
11. 配置Dashboard服务
11.1. 控制端
12. openstack高可用配置(可选)
12.1. NFS
12.2. 控制端挂载NFS
12.3. haproxy高可用
12.4. 控制端的高可用
12.5. 快速添加node节点
13. 配置cinder(块存储服务)
13.1. 配置cinder控制器节点
13.2. 存储服务器
13.3. NFS作为openstack后端存储
13.4. (可选)配置备份服务
14. 实现VPC 自定义网络
14.1. 控制端配置
14.2. 计算节点配置
14.3. 创建自服务网络
15. 实现内外网结构
15.1. 各虚拟机网卡添加
15.2. 控制节点配置
15.3. 计算节点配置
15.4. 创建网络并验证
16. openstack镜像制作:
虚拟机镜像有哪些?
16.1. 网络环境准备
16.2. Centos 7.2 镜像制作
浮动IP分配
安装httpd服务测试访问
17. openstack企业应用案例
17.1. quota相关配置
17.1.1. web端修改项目配额
17.1.2. 修改配置文件来修改配额
17.2. 更改实例IP地址
17.3. 实例迁移(调整实例)
17.4. 主机聚合(创建指定IP的虚拟机)
17.5. openstack 相关优化
OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。
一、IaaS:基础设施即服务(个人比较习惯的):用户通过网络获取虚机、存储、网络,然后用户根据自己的需求操作获取的资源
二、PaaS:平台即服务:将软件研发平台作为一种服务, 如Eclipse/Java编程平台,服务商提供编程接口/运行平台等
三、SaaS:软件即服务 :将软件作为一种服务通过网络提供给用户,如web的电子邮件、HR系统、订单管理系统、客户关系系统等。用户无需购买软件,而是向提供商租用基于web的软件,来管理企业经营活动
OpenStack 架构由大量开源项目组成。其中包含 6 个稳定可靠的核心服务,用于处理计算、网络、存储、身份和镜像; 同时,还为用户提供了十多种开发成熟度各异的可选服务。OpenStack 的 6 个核心服务主要担纲系统的基础架构,其余项目则负责管理控制面板、编排、裸机部署、信息传递、容器及统筹管理等操作。
keystone
:Keystone 认证所有 OpenStack 服务并对其进行授权。同时,它也是所有服务的端点目录。
glance
:Glance 可存储和检索多个位置的虚拟机磁盘镜像。
nova
:是一个完整的OpenStack 计算资源管理和访问工具,负责处理规划、创建和删除操作。
neutron
:Neutron 能够连接其他 OpenStack 服务并连接网络。
dashboard
:web管理界面
Swift
: 是一种高度容错的对象存储服务,使用 RESTful API 来存储和检索非结构数据对象。
Cinder
通过自助服务 API 访问持久块存储。
Ceilometer
:计费
Heat
:编排
openstack基本架构
通过消息队列和数据库,各个组件可以相互调用,互相通信。每个项目都有各自的特性,大而全的架构并非适合每一个用户,如Glance在最早的A、B版本中并没有实际出现应用,Nova可以脱离镜像服务独立运行。当用户的云计算规模大到需要管理多种镜像时,才需要像Glance这样的组件。
OpenStack的逻辑架构
通过登录界面dashboard或命令行CLI通过
RESTful API
获取认证信息。
通过用户请求认证信息,并生成
auth-token
返回给对应的认证请求。
然后携带
通过
nova-api
发送一个
boot instance
的请求。
接受请求后向
发送认证请求,查看token是否为有效用户和token。
keystone验证token是否有效,将结果返回给
通过认证后nova-api和数据库通讯,初始化新建虚拟机的数据库记录。
调用
rabbitmq
,向
nova-scheduler
请求是否有创建虚拟机的资源(node主机)。
进程侦听消息队列,获取nova-api的请求。
通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。
对于有符合虚拟机创建的主机,
更新数据库中虚拟机对应的物理主机信息。
通过rpc调用向
nova-compute
发送对应的创建虚拟机请求的消息。
会从对应的消息队列中获取创建虚拟机请求的消息。
nova-conductor
请求获取虚拟机消息。(Flavor)
从消息队队列中拿到
请求消息。
根据消息查询虚拟机对应的信息。
从数据库中获得虚拟机对应信息。
把虚拟机信息通过消息的方式发送到消息队列中。
从对应的消息队列中获取虚拟机信息消息。
请求
glance-api
获取创建虚拟机所需要镜像。
认证token是否有效,并返回验证结果。
token验证通过,
获得虚拟机镜像信息(URL)。
neutron-server
获取创建虚拟机所需要的网络信息。
向keystone认证token是否有效,并返回验证结果。
获得虚拟机网络信息。
cinder-api
获取创建虚拟机所需要的持久化存储信息。
获得虚拟机持久化存储信息。
根据instance的信息调用配置的虚拟化驱动来创建虚拟机。
1、环境布署
2、配置keystone服务
3、配置glance服务
4、配置placement服务
5、配置nova服务控制节点
6、配置nova服务计算节点
7、配置neutron服务控制节点
8、配置neutron服务计算节点
9、创建实例
10、配置dashboard服务
图中数字,如10,表示ip:192.168.99.10
系统:
计算节点:centos 7.2.1511
其它:centos 7.6.1810
准备yum源:
/etc/yum.repos.d/openstack.repo
yum
install
centos-release-openstack-stein
安装openstack客户端、openstack SELinux管理包(控制端与计算节点安装,其它不需要)
python-openstackclient openstack-selinux
更改主机名
hostnamectl set-hostname 主机名
时间同步
cp
-f /usr/share/zoneinfo/Asia/Shanghai
/etc/localtime
ntpdate
time3.aliyun.com
&&
hwclock
-w
配置hosts
echo
"192.168.99.100 openstackvip.com"
>>
/etc/hosts
这里设置你的vip和你的域名
如果你做bond,就做这步,否则就跳过。
bond配置
cd
/etc/sysconfig/network-scripts/
vim ifcfg-bond0
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100" #指定绑定类型为1及链路状态监测间隔时间
IPADDR=192.168.99.101
NETMASK=255.255.255.0
GATEWAY=192.168.99.2
DNS1=202.106.0.20
eth0配置:
vim ifcfg-eth0
NAME=eth0
DEVICE=eth0
NM_CONTROLLED=no
MASTER=bond0
USERCTL=no
SLAVE=yes
eth1配置:
vim ifcfg-eth1
NAME=eth1
DEVICE=eth1
在数据库节点上配置
安装组件
yum -y
mariadb mariadb-server
配置my.cnf
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.99.106
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 restart mariadb.service
通过运行脚本来保护数据库服务
mysql_secure_installation
安装包:
memcached python-memcached
编辑配置文件
配置服务以使用控制器节点的管理IP地址。这是为了通过网络访问其他节点:
vim /etc/sysconfig/memcached
替换下面这句
OPTIONS="-l 192.168.99.106"
启动Memcached服务并将其配置为在系统引导时启动:
memcached.service
systemctl restart memcached.service
安装
rabbitmq-server
启动(端口15672)
systemctl restart rabbitmq-server
添加用户和密码
rabbitmqctl add_user openstack 123
授权
rabbitmqctl set_permissions openstack
".*"
打开web插件
rabbitmq-plugins
rabbitmq_management
查看插件
rabbitmq-plugins list
web访问端口15672,用户密码都是guest
在haproxy节点上配置
安装keepalived和haproxy
keepalived haproxy
配置master_keepalived
vim /etc/keepalived/keepalived.conf
! Configuration File
for
keepalived
global_defs
notification_email
root@localhost
notification_email_from keepalived@localhost
smtp_server
127.0
.0
.1
smtp_connect_timeout
30
router_id ha_1
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_iptables
vrrp_garp_interval
vrrp_gna_interval
vrrp_instance VI_1
state MASTER
interface eth0
virtual_router_id
51
priority
100
advert_int
authentication
auth_type PASS
auth_pass
1111
virtual_ipaddress
192.168
.99
.100
dev eth0 label eth0
启动
systemctl restart keepalived
haproxy配置
vim /etc/haproxy/haproxy.cfg
global
log
127.0.0.1 local2
chroot
/var/lib/haproxy
pidfile
/var/run/haproxy.pid
maxconn
4000
user
haproxy
group
daemon
stats socket /var/lib/haproxy/stats
defaults
mode
http
option
httplog
dontlognull
option http-server-close
option forwardfor
except 127.0.0.0/8
redispatch
retries
timeout
http-request
180s
queue
10m
connect
client
server
http-keep-alive 180s
check
10s
3000
listen stats
mode http
bind :9999
stats
log global
stats uri /haproxy-status
stats auth admin:123
listen dashboard
bind :80
balance
source
server dashboard 192.168.99.106:80 check inter 2000 fall 3 rise 5
listen mysql
bind :3306
mode tcp
server mysql 192.168.99.106:3306 check inter 2000 fall 3 rise 5
listen memcached
bind :11211
server memcached 192.168.99.106:11211 inter 2000 fall 3 rise 5
listen rabbit
bind :5672
server rabbit 192.168.99.106:5672 inter 2000 fall 3 rise 5
listen rabbit_web
bind :15672
server rabbit_web 192.168.99.106:15672 inter 2000 fall 3 rise 5
listen keystone
bind :5000
server keystone 192.168.99.101:5000 inter 2000 fall 3 rise 5
listen glance
bind :9292
server glance 192.168.99.101:9292 inter 2000 fall 3 rise 5
listen placement
bind :8778
server placement 192.168.99.101:8778 inter 2000 fall 3 rise 5
listen neutron
bind :9696
server neutron 192.168.99.101:9696 inter 2000 fall 3 rise 5
listen nova
bind :8774
server nova 192.168.99.101:8774 inter 2000 fall 3 rise 5
listen VNC
bind :6080
server VNC 192.168.99.101:6080 inter 2000 fall 3 rise 5
systemctl restart haproxy
查检下端口
ss -tnl
# 输出
State
Recv-Q Send-Q Local Address:Port
Peer Address:Port
LISTEN
128
*:5000
*:*
*:5672
*:8778
*:3306
*:11211
*:9292
*:9999
*:80
*:22
*:15672
127.0.0.1:25
*:6080
*:9696
*:8774
:::22
:::*
::1:25
配置内核参数
"net.ipv4.ip_nonlocal_bind=1"
/etc/sysctl.conf
启动haproxy的时候,允许忽视VIP的存在
"net.ipv4.ip_forward=1"
允许ip转发
sysctl -p
使之生效
keystone数据库配置
mysql
$ mysql -uroot -p123
MariaDB
none
>
create database keystone
grant all on keystone.* to keystone@
'%'
identified by
'123'
安装插件
python2-PyMySQL mariadb
控制端
上测试
mysql -ukeystone -h 192.168.99.106 -p123
添加host文件:
192.168.99.100 openstackvip.com
配置keystone
openstack-keystone httpd mod_wsgi python-memcached
生成临时token
openssl rand -hex 10
输出,记住ta,有用
db148a2487000ad12b90
配置
/etc/keystone/keystone.conf
sed
-i.bak -e
'/^#/d'
-e
'/^$/d'
vim /etc/keystone/keystone.conf
[DEFAULT]
admin_token = db148a2487000ad12b90
[access_rules_config]
[application_credential]
[assignment]
[auth]
[cache]
[catalog]
[cors]
[credential]
[database]
connection = mysql+pymysql://keystone:123@openstackvip.com/keystone
[domain_config]
[endpoint_filter]
[endpoint_policy]
[eventlet_server]
[federation]
[fernet_receipts]
[fernet_tokens]
[healthcheck]
[identity]
[identity_mapping]
[jwt_tokens]
[ldap]
[memcache]
[oauth1]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[policy]
[profiler]
[receipt]
[resource]
[revoke]
[role]
[saml]
[security_compliance]
[shadow_users]
[signing]
[token]
provider = fernet
[tokenless_auth]
[trust]
[unified_limit]
[wsgi]
填充Identity服务数据库
su
-s /bin/sh -c
"keystone-manage db_sync"
初始化Fernet密钥存储库
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
验证:
ls
/etc/keystone/fernet-keys/
1 0
配置apache配置文件
/etc/httpd/conf/httpd.conf
加配置
Servername controller:80
-i
'1s#
$#
\nServername controller:80#'
软链接配置文件
ln
-s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
启动Apache HTTP服务
httpd.service
systemctl restart httpd.service
配置管理帐户
export
OS_TOKEN
=
OS_URL
http://openstackvip.com:5000/v3
OS_IDENTITY_API_VERSION
验证下:
openstack domain list
The request you have made requires authentication.
HTTP 401
Request-ID: req-03ea8186-0af9-4fa8-ba53-d043cd28e2c0
这里出错了,检查下你的token,OS_TOKEN设置变量的时候是不是没有跟你在
配置文件中设置的TOKEN的一样,改成一样的就可以了。
输出是空的就对了,因为我们还没有添加
创建新域的正式方法
openstack domain create --description
"exdomain"
default
11. 创建项目admin
openstack project create --domain default \
--description
"Admin Project"
admin
创建admin,密码设置123
openstack user create --domain default --password-prompt admin
创建角色
openstack role create admin
给admin用户授权
openstack role add --project admin --user admin admin
创建demo项目
openstack project create --domain default --description
"Demo project"
demo
给demo创建用户
openstack user create --domain default --password-prompt demo
创建user角色(现在就有user和admin)
openstack role create user
给demo用户授权user
openstack role add --project demo --user demo user
创建service项目
"service project"
service
创建用户glance
openstack user create --domain default --password-prompt glance
给service添加glance用户并授权admin角色
openstack role add --project
--user glance admin
创建nova、neutron用户并授权
openstack user create --domain default --password-prompt nova
--user nova admin
创建keystone的认证服务
create --name keystone --description
"openstack identify"
identity
查看服务列表
list
创建endpoint,地址写vip
公共端点
openstack endpoint create --region RegionOne identity public http://openstackvip.com:5000/v3
私有端点
openstack endpoint create --region RegionOne identity internal http://openstackvip.com:5000/v3
管理端点
openstack endpoint create --region RegionOne identity admin http://openstackvip.com:5000/v3
测试keystone能否验证
unset OS_TOKEN
openstack --os-auth-url http://openstackvip.com:5000/v3 \
--os-project-domain-name default \
--os-user-domain-name default \
--os-project-name admin \
--os-username admin token issue
使用脚本配置环境变量
admin用户脚本
keystone_admin.sh
#!/bin/bash
OS_PROJECT_DOMAIN_NAME
OS_USER_DOMAIN_NAME
OS_PROJECT_NAME
OS_USERNAME
OS_PASSWORD
123
OS_AUTH_URL
OS_IMAGE_API_VERSION
demo用户脚本
keystone_demo.sh
Glance是Openstack镜像服务组件,监听在9292端口,接收REST API请求,通过其它模块来完成镜像的获取,上传,删除等。
在创建虚拟机的时候,先把镜像上传到glace,
glance-api接收镜像的删除、上传和读取;
glance-registry(port:9191)与mysql交互,存储获取镜像的元数据。
glance数据库有两张表,一张image表,一张image property表:保存了镜像格式、大小等信息
image store是一个存储的接口层,通过这个接口glance可以获取镜像
控制端安装glance
openstack-glance
在数据库数据库与用户
mysql -uroot -p123
create database glance
grant all on glance.* to
'glance'
@
验证glance用户连接
mysql -hopenstackvip.com -uglance -p123
/etc/glance/glance-api.conf
-i -e
vim /etc/glance/glance-api.conf
最终如下
[cinder]
connection = mysql+pymysql://glance:123@openstackvip.com/glance
[file]
[glance.store.http.store]
[glance.store.rbd.store]
[glance.store.sheepdog.store]
[glance.store.swift.store]
[glance.store.vmware_datastore.store]
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images
[image_format]
[keystone_authtoken]
auth_uri = http://openstackvip.com:5000
auth_url = http://openstackvip.com:5000
memcached_servers = openstackvip.com:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = 123
[oslo_concurrency]
[paste_deploy]
flavor = keystone
[store_type_location_strategy]
[task]
[taskflow_executor]
/etc/glance/glance-registry.conf
vim /etc/glance/glance-registry.conf
初始化glance数据库
"glance-manage db_sync"
验证数据库
启动glance并设置为开机启动
openstack-glance-api.service openstack-glance-registry.service
systemctl restart openstack-glance-api.service openstack-glance-registry.service
验证glance端口(30022,9191,9292)
glance服务注册(设置环境变量)
创建glance服务
create --name glance --description
"OpenStack Image"
image
创建公有endpoint
openstack endpoint create --region RegionOne image public http://openstackvip.com:9292
创建私有endpoint
openstack endpoint create --region RegionOne image internal http://openstackvip.com:9292
创建管理endpoint
openstack endpoint create --region RegionOne image admin
http://openstackvip.com:9292
验证以上步骤
openstack endpoint list
验证glance服务
glance image-list
#与
openstack image list
测试glance上传镜像
wget
http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
创建
openstack image create
"cirros"
--file
/root/cirros-0.3.4-x86_64-disk.img \
--disk-format qcow2 \
--container-format bare \
--public
验证glance镜像
#和
查看指定镜像信息
openstack image
show
cirros
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Field
Value
checksum
ee1eca47dc88f4879d8a229cc70a07c6
container_format
bare
created_at
2019-08-22T06:20:18Z
disk_format
qcow2
file
/v2/images/7ae353f8-db19-4449-b4ac-df1e70fe96f7/file
id
7ae353f8-db19-4449-b4ac-df1e70fe96f7
min_disk
min_ram
name
owner
7cbf02c5e55f43938062a9e31e9ea4bb
properties
os_hash_algo
'sha512'
, os_hash_value
'1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f739d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2'
, os_hidden
'False'
protected
False
schema
/v2/schemas/image
size
13287936
status
active
tags
updated_at
2019-08-22T06:20:19Z
virtual_size
None
visibility
public
mysql -u root -p
CREATE DATABASE placement
GRANT ALL PRIVILEGES ON placement.* TO
'placement'
IDENTIFIED BY
使用您选择的创建Placement服务用户PLACEMENT_PASS
openstack user create --domain default --password-prompt placement
使用admin角色将Placement用户添加到服务项目
--user placement admin
在服务目录中创建Placement API条目
create --name placement \
"Placement API"
placement
创建Placement API服务端点
openstack endpoint create --region RegionOne placement public http://openstackvip.com:8778
openstack endpoint create --region RegionOne placement internal http://openstackvip.com:8778
openstack endpoint create --region RegionOne placement admin http://openstackvip.com:8778
安装openstack-placement-api
openstack-placement-api
编辑
/etc/placement/placement.conf
vim /etc/placement/placement.conf
DEFAULT
api
auth_strategy
keystone_authtoken
auth_url
memcached_servers
openstackvip.com:11211
auth_type
password
project_domain_name
user_domain_name
project_name
username
placement_database
connection
mysql+pymysql://placement:123@openstackvip.com/placement
填充placement数据库
"placement-manage db sync"
重启httpd服务
systemctl restart httpd
验证
placement-status upgrade check
+----------------------------------+
Upgrade Check Results
Check: Missing Root Provider IDs
Result: Success
Details: None
Check: Incomplete Consumers
nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nova之间通信通过rabbitMQ队列进行通信
其组件和功能如下:
API:负责接收和响应外部请求。
Scheduler:负责调度虚拟机所在的物理机。
Conductor:计算节点访问数据库的中间件。
Consoleauth:用于控制台的授权认证。
Novncproxy:VNC 代理,用于显示虚拟机操作终端。
Nova-API的功能:
Nova-api组件实现了restful API的功能,接收和响应来自最终用户的计算API请求,接收外部的请求并通过message queue将请求发动给其他服务组件,同时也兼容EC2 API,所以也可以使用EC2的管理工具对nova进行日常管理。
nova scheduler:
nova scheduler模块在openstack中的作用是决策虚拟机创建在哪个主机(计算节点)上。决策一个虚拟机应该调度到某物理节点,需要分为两个步骤:
过滤(filter):过滤出可以创建虚拟机的主机
计算权值(weight):根据权重大进行分配,默认根据资源可用空间进行权重排序
在数据库服务器操作
准备数据库
CREATE DATABASE nova_api
GRANT ALL PRIVILEGES ON nova_api.* TO
'nova'
CREATE DATABASE nova
GRANT ALL PRIVILEGES ON nova.* TO
CREATE DATABASE nova_cell0
GRANT ALL PRIVILEGES ON nova_cell0.* TO
flush privileges
openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy
openstack-nova-scheduler
创建nova服务(类型compute)
create --name nova \
"OpenStack Compute"
compute
创建公共端点
openstack endpoint create --region RegionOne \
compute public http://openstackvip.com:8774/v2.1
创建私有端点
openstack endpoint create --region RegionOne
compute internal http://openstackvip.com:8774/v2.1
创建管理端点
compute admin http://openstackvip.com:8774/v2.1
/etc/nova/nova.conf
vim /etc/nova/nova.conf
详细配置:
my_ip = 192.168.99.101
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123@openstackvip.com
rpc_backend=rabbit
[api]
auth_strategy=keystone
[api_database]
connection = mysql+pymysql://nova:123@openstackvip.com/nova_api
connection = mysql+pymysql://nova:123@openstackvip.com/nova
[glance]
api_servers = http://openstackvip.com:9292
auth_url = http://openstackvip.com:5000/v3
username = nova
lock_path = /var/lib/nova/tmp
[placement]
os_region_name = RegionOne
username = placement
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
配置apache允许访问placement API
vim /etc/httpd/conf.d/00-placement-api.conf
最下方添加以下配置:
<
Directory /usr/bin
IfVersion
>=
2.4
Require all granted
/IfVersion
Order allow,deny
Allow from all
/Directory
重启http
初始化数据库
#nova_api数据库
"nova-manage api_db sync"
#nova cell0数据库
"nova-manage cell_v2 map_cell0"
#nova cell1 数据库
"nova-manage cell_v2 create_cell --name=cell1 --verbose"
#nova数据库
"nova-manage db sync"
验证nova cell0和nova cell1是否正常注册
"nova-manage cell_v2 list_cells"
启动并将nova服务设置为开机启动
openstack-nova-api.service \
openstack-nova-consoleauth.service \
openstack-nova-scheduler.service
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
systemctl restart openstack-nova-api.service
重启nova控制端脚本(nova-restart.sh)
openstack-nova-consoleauth.service openstack-nova-scheduler.service
openstack-nova-conductor.service openstack-nova-novncproxy.service
chmod
a+x nova-restart.sh
查看rabbitMQ连接
验证nova控制端
nova service-list
我的计算节点ip:192.168.99.10
计算节点
centos版本centos 7.2.1511
并开启虚拟化:
安装环境,在最前面
安装nova-compute包
openstack-nova-compute
配置nova
#全部配置:
my_ip = 192.168.99.23
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
api_servers=http://openstackvip.com:9292
lock_path=/var/lib/nova/tmp
enabled=true
server_listen=0.0.0.0
novncproxy_base_url=http://openstackvip.com:6080/vnc_auto.html
确认计算节点是否支持硬件加速
egrep
-c
'(vmx|svm)'
/proc/cpuinfo
40
如果此命令返回值zero,则您的计算节点不支持硬件加速,您必须配置libvirt为使用QEMU而不是KVM。
编辑文件中的[libvirt]部分,
如下所示:
libvirt
# ...
virt_type
qemu
启动nova 计算服务并设置为开机启动
libvirtd.service openstack-nova-compute.service
systemctl restart libvirtd.service openstack-nova-compute.service
添加计算节点到cell 数据库
admin-openstack.sh
openstack compute
list --service nova-compute
主动发现计算节点
使用命令发现
"nova-manage cell_v2 discover_hosts --verbose"
定期主动发现
加上这条
[scheduler]
discover_hosts_in_cells_interval=300
重启nova服务
bash
nova-restart.sh
下面是验证:
验证1:列出服务组件以验证每个进程的成功启动和注册
controller
$ openstack compute
+----+------------------+------------+----------+---------+-------+----------------------------+
ID
Binary
Host
Zone
Status
Updated At
nova-consoleauth
internal
enabled
up
2019-08-23T03:24:19.000000
2019-08-23T03:24:13.000000
note1
验证2:列出Identity服务中的API端点以验证与Identity服务的连接
openstack catalog list
验证3:列出Image服务中的图像以验证与Image服务的连接
+--------------------------------------+--------+--------+
Name
验证4:检查单元格和放置API是否正常运行以及其他必要的先决条件是否到位
nova-status upgrade check
在数据库服务器上创建
要创建数据库,请完成以下步骤
CREATE DATABASE neutron
GRANT ALL PRIVILEGES ON neutron.* TO
'neutron'
在控制端上
创建neutron用户
openstack user create --domain default --password-prompt neutron
将admin角色添加到neutron用户
--user neutron admin
创建neutron服务实体
create --name neutron \
"OpenStack Networking"
network
创建网络服务API端点
network public http://openstackvip.com:9696
network internal http://openstackvip.com:9696
network admin http://openstackvip.com:9696
配置网络选项
5. 安装组件
openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables
配置服务器组件
6. 编辑neutron
/etc/neutron/neutron.conf
vim /etc/neutron/neutron.conf
core_plugin
ml2
service_plugins
transport_url
rabbit://openstack:123@openstackvip.com
notify_nova_on_port_status_changes
true
notify_nova_on_port_data_changes
cors
database
mysql+pymysql://neutron:123@openstackvip.com/neutron
www_authenticate_uri
http://openstackvip.com:5000
oslo_concurrency
lock_path
/var/lib/neutron/tmp
oslo_messaging_amqp
oslo_messaging_kafka
oslo_messaging_notifications
oslo_messaging_rabbit
oslo_middleware
oslo_policy
privsep
ssl
region_name
RegionOne
[nova]
这个选项没有,要手动加,在结尾加
配置模块化第2层(ML2)插件
7. 编辑ml2_conf.ini文件
/etc/neutron/plugins/ml2/ml2_conf.ini
vim /etc/neutron/plugins/ml2/ml2_conf.ini
type_drivers
flat,vlan
tenant_network_types
mechanism_drivers
linuxbridge
extension_drivers
port_security
ml2_type_flat
flat_networks
provider
securitygroup
enable_ipset
配置Linux桥代理
8. 编辑linuxbridge_agent.ini文件
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
linux_bridge
physical_interface_mappings
provider:eth0
vxlan
enable_vxlan
false
enable_security_group
firewall_driver
neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
设置
文件
"net.bridge.bridge-nf-call-iptables = 1"
"net.bridge.bridge-nf-call-ip6tables = 1"
生效
这里会报错,不管
sysctl: cannot
stat
/proc/sys/net/bridge/bridge-nf-call-iptables: No such
or directory
/proc/sys/net/bridge/bridge-nf-call-ip6tables: No such
配置DHCP代理
10. 编辑dhcp_agent.ini文件
vim /etc/neutron/dhcp_agent.ini
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
配置元数据代理
11. 编辑metadata_agent.ini文件
vim /etc/neutron/metadata_agent.ini
nova_metadata_host = 192.168.99.101
metadata_proxy_shared_secret = 123
nova_metadata_host写控制端ip,这里我们写vip,再由ha反向代理回来
metadata_proxy_shared_secret为元数据代理的密码
配置Compute服务以使用Networking服务
12. 编辑
在最后加上
url
http://openstackvip.com:9696
service_metadata_proxy
metadata_proxy_shared_secret
metadata_proxy_shared_secret 这是我们第11条里配置的密码
网络服务初始化脚本需要一个
/etc/neutron/plugin.ini
指向ML2插件配置文件的符号链接
-s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
填充数据库:
"neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head"
重新启动Compute API服务:
启动网络服务并将其配置为在系统引导时启动
neutron-server.service \
neutron-linuxbridge-agent.service \
neutron-dhcp-agent.service \
neutron-metadata-agent.service
systemctl restart neutron-server.service \
注:如果选择了
Self-service networks
,就需要启动第3层服务,我们选择的是
Provider networks
所以不需要
neutron-l3-agent.service
systemctl restart neutron-l3-agent.service
计算节点上
openstack-neutron-linuxbridge ebtables ipset
配置公共组件
2. 编辑neutron.conf文件
auth_strategy = keystone
www_authenticate_uri = http://openstackvip.com:5000
username = neutron
lock_path = /var/lib/neutron/tmp
[privsep]
[ssl]
3. 编辑linuxbridge_agent.ini文件
[linux_bridge]
physical_interface_mappings = provider:eth0
[vxlan]
enable_vxlan = false
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
确保您的Linux操作系统内核支持网桥过滤器
4. 配置
5. 编辑nova.conf文件
重新启动Compute服务:
systemctl restart openstack-nova-compute.service
启动Linux网桥代理并将其配置为在系统引导时启动:
neutron-linuxbridge-agent.service
systemctl restart neutron-linuxbridge-agent.service
控制节点
openstack extension list --network
openstack network agent list
创建网络
创建提供者网络(最后的provider是网络名)
openstack network create
--share --external \
--provider-physical-network provider \
--provider-network-type flat provider
openstack network list
#或
neutron net-list
在网络上创建子网
openstack subnet create --network provider \
--allocation-pool start
192.168.99.200,end
192.168.99.210 \
--dns-nameserver 192.168.99.2 --gateway 192.168.99.2 \
--subnet-range 192.168.99.0/24 provider-sub
–network需要写你上面创建的网络名
provider-sub是子网名
openstack subnet list
neutron subnet-list
openstack flavor create --id 0 --vcpus 1 --ram 1024 --disk 10 m1.nano
–vcpus :几个核的cpu
–ram :内存(单位M)
–disk :储存(单位G)
最后为类型名;
查看类型列表
openstack flavor list
生成密钥对
生成密钥对并添加公钥
ssh-keygen -q -N
""
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
验证密钥对的添加
openstack keypair list
添加安全组规则
2. 允许ICMP(ping)
openstack security group rule create --proto icmp default
允许安全shell(SSH)访问:
openstack security group rule create --proto tcp --dst-port 22 default
查看类型
查看镜像
列出可用网络
列出可用的安全组:
openstack security group list
启动实例
openstack server create --flavor m1.nano --image cirros \
--nic net-id
a57d2907-a59d-4422-b231-8d3c788d10d3
--security-group default \
--key-name mykey provider-instance
–flavor: 类型名称
–image: 镜像名称
–security-group:安全组名
PROVIDER_NET_ID替换网络ID
最后provider-instance是实例名
查看实例状态
openstack server list
使用虚拟控制台访问实例
openstack console url show provider-instance
provider-instance是你的实例名称
在浏览器使用url来连接实例
horizon是openstack的管理其他组件的图形显示和操作界面,通过API和其他服务进行通讯,如镜像服务、计算服务和网络服务等结合使用,horizon基于python django开发,通过Apache的wsgi模块进行web访问通信,Horizon只需要更改配置文件连接到keyston即可
安装和配置组件
openstack-dashboard
/etc/openstack-dashboard/local_settings
打开配置文件,搜索下面这些键,替换他们(下面提供sed命令)
controller节点
OPENSTACK_HOST = "192.168.99.101"
OPENSTACK_HOST写控制端本机的IP
启用Identity API版本3
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
配置user为通过仪表板创建的用户的默认角色:
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
接受所有主机
ALLOWED_HOSTS = ['*']
配置memcached会话存储服务
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'openstackvip.com:11211',
启用对域的支持:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
配置API版本:
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 3,
配置Default为通过仪表板创建的用户的默认域:
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"
如果选择网络选项1,请禁用对第3层网络服务的支持:
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': False,
'enable_quotas': False,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': False,
'enable_firewall': False,
'enable_vpn': False,
'enable_fip_topology_check': False,
(可选)配置时区:
TIME_ZONE = "UTC"
sed一键配置
-i.bak
'/^OPENSTACK_HOST/s#127.0.0.1#192.168.99.101#'
'/^OPENSTACK_KEYSTONE_DEFAULT_ROLE/s#".*"#"user"#'
"/^ALLOWED_HOSTS/s#\[.*\]#['*']#"
'/^#SESSION_ENGINE/s/#//'
"/^SESSION_ENGINE/s#'.*'#'django.contrib.sessions.backends.cache'#"
"/^#
'default'/s/#//"
"/^#CACHES/,+6s/#//"
"/^
'LOCATION'/s#127.0.0.1#openstackvip.com#"
"/OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT/s/#//"
"/OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT/s#False#True#"
"/OPENSTACK_API_VERSIONS/,+5s/#//"
'/"compute"/d'
'/^#OPENSTACK_KEYSTONE_DEFAULT_DOMAIN/s/#//'
'/^OPENSTACK_KEYSTONE_DEFAULT_DOMAIN/s/Default/default/'
'/^OPENSTACK_NEUTRON_NETWORK/,+7s#True#False#'
'/TIME_ZONE/s#UTC#UTC#'
"/^OPENSTACK_NEUTRON_NETWORK/s/$/\n
'enable_lb': False,/"
'enable_firewall': False,/"
'enable_vpn': False,/"
继续配置下面的
添加下行到配置文件
/etc/httpd/conf.d/openstack-dashboard.conf
vim /etc/httpd/conf.d/openstack-dashboard.conf
WSGIApplicationGroup %{GLOBAL}
重新启动Web服务器和会话存储服务()
memcached我安装在其它机器上
浏览器http://controller_IP/dashboard
controller写你控制端的ip
IP:192.168.99.105
安装nfs
nfs-utils
添加用户
useradd
修改配置文件
"/var/lib/glance/images 192.168.99.0/24(rw,all_squash,anonuid=
`
-u openstack
,anongid=
-g openstack
)"
/etc/exports
创建文件
mkdir
-p /var/lib/glance/images
启动服务
systemctl restart nfs-server
nfs-server
exportfs -r
验证下
showmount -e
给权限
chown
-R openstack.openstack /var/lib/glance/images/
showmount -e 192.168.99.115
在挂载之前先保存下镜像
/data
mv
/var/lib/glance/images/* /data
挂载
"192.168.99.115:/var/lib/glance/images /var/lib/glance/images nfs defaults 0 0"
/etc/fstab
mount
-a
再把镜像移回来
/data/* /var/lib/glance/images
需要的包haproxy + keepalived
在前面已经做了一台haproxy+keepalived,所以我们需要再加一台物理机,做backup。
IP: 192.168.99.104
开始配置
配置keepalived:
vim /etc/keepavlied/keepalived.conf
state BACKUP
90
systemctl start keepalived
配置haproxy:
在配置之前要看下需要做反向代理的端口
PORT
服务
5000
9292
8778
8774
9696
6080
VNC
3306
MySQL
5672
rabbitMQ
15672
rabbitMQ_WEB
11211
memcached
这个配置在ha_1上也要加上
vim /etc/haproxy/haproxy.conf
server dashboard 192.168.99.101:80 check inter 2000 fall 3 rise 5
server dashboard 192.168.99.103:80 check inter 2000 fall 3 rise 5
server keystone 192.168.99.103:5000 inter 2000 fall 3 rise 5
server glance 192.168.99.103:9292 inter 2000 fall 3 rise 5
server placement 192.168.99.103:8778 inter 2000 fall 3 rise 5
server neutron 192.168.99.103:9696 inter 2000 fall 3 rise 5
server nova 192.168.99.103:8774 inter 2000 fall 3 rise 5
server VNC 192.168.99.103:6080 inter 2000 fall 3 rise 5
要实现高可以用,要再准备一台物理机,设置主机名为controller2,
IP:192.168.99.113
从controller1准备这些文件
admin.keystone*
glance.tar
keystone.tar
placement.tar
dashboard.tar
http_conf_d.tar
neutron.tar
yum/
demo.keystone*
install_controller_openstack.sh*
nova.tar
最终如图,yum源是centos安装时自带,如果你删除了也要从其它主机拷贝过来
准备的过程(在原有的controller上)
#准备httpd
/etc/httpd/conf.d
tar
cf /root/http_conf_d.tar *
#准备keystone
/etc/keystone
cf /root/keystone.tar *
#准备glance
/etc/glance
cf /root/glance.tar *
#准备placement
/etc/placement
cf /root/placement.tar *
#准备nova
/etc/nova
cf /root/nova.tar *
#准备neutron
/etc/neutron
cf /root/neutron.tar *
#准备dashboard
/etc/openstack-dashboard
cf /root/dashboard.tar *
admin.keystone
demo.keystone
脚本内容,要先设置好主机名,主机名不能包含
下划线
gecho
"\e[1;32m
${1}
\e[0m"
sleep
recho
"\e[1;31m
"配置yum源..."
PWD
dirname
$0
/etc/yum.repos.d/bak
/etc/yum.repos.d/* /etc/yum.repos.d/bak/
$PWD
/yum/* /etc/yum.repos.d/
"安装openstack客户端、openstack SELinux管理包..."
xf http_conf_d.tar -C /etc/httpd/conf.d
"192.168.99.211 openstackvip.com"
"192.168.99.211 controller"
"安装keystone..."
xf
/keystone.tar -C /etc/keystone
systemctl start httpd.service
"安装glance..."
/glance.tar -C /etc/glance
systemctl start openstack-glance-api.service openstack-glance-registry.service
"安装placement..."
/placement.tar -C /etc/placement
"安装nova。。。"
openstack-nova-api openstack-nova-conductor
openstack-nova-scheduler openstack-nova-placement-api
/nova.tar -C /etc/nova
cat
/root/nova-restart.sh
<<
EOF
a+x /root/nova-restart.sh
"安装neutron。。。"
/neutron.tar -C /etc/neutron
"安装dashboard..."
/dashboard.tar -C /etc/openstack-dashboard
"5秒后重启系统..."
in
seq
5 -1 1
do
tput sc
-n
$i
tput rc
tput ed
done
reboot
把之前所有的/etc/hosts改成
192.168.99.211 openstackvip.com
192.168.99.211 controller
新的物理机,安装好centos7.2,配置好IP地址与主机名。
准备这些包
准备
#准备neutron,在你原来的node节点上
cf /root/neutron-compute.tar *
#准备nova,在你原来的node节点上
cf /root/nova-compute.tar *
limits.conf
# /etc/security/limits.conf
#This file sets the resource limits for the users logged in via PAM.
#It does not affect resource limits of the system services.
#Also note that configuration files in /etc/security/limits.d directory,
#which are read in alphabetical order, override the settings in this
#file in case the domain is the same or more specific.
#That means for example that setting a limit for wildcard domain here
#can be overriden with a wildcard setting in a config file in the
#subdirectory, but a user specific setting here can be overriden only
#with a user specific setting in the subdirectory.
#Each line describes a limit for a user in the form:
#<domain>
<type>
<item>
<value>
#Where:
#<domain> can be:
- a user name
- a group name, with @group syntax
- the wildcard *, for default entry
- the wildcard %, can be also used with %group syntax,
for maxlogin limit
#<type> can have the two values:
- "soft" for enforcing the soft limits
- "hard" for enforcing hard limits
#<item> can be one of the following:
- core - limits the core file size (KB)
- data - max data size (KB)
- fsize - maximum filesize (KB)
- memlock - max locked-in-memory address space (KB)
- nofile - max number of open file descriptors
- rss - max resident set size (KB)
- stack - max stack size (KB)
- cpu - max CPU time (MIN)
- nproc - max number of processes
- as - address space limit (KB)
- maxlogins - max number of logins for this user
- maxsyslogins - max number of logins on the system
- priority - the priority to run user process with
- locks - max number of file locks the user can hold
- sigpending - max number of pending signals
- msgqueue - max memory used by POSIX message queues (bytes)
- nice - max nice priority allowed to raise to values: [-20, 19]
- rtprio - max realtime priority
#*
soft
core
hard
rss
10000
#@student
nproc
20
#@faculty
50
#ftp
maxlogins
# End of file
unlimited
1000000
nofile
memlock
32000
msgqueue
8192000
profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge
case
":
${PATH}
:"
*:
"
$1
:*
if
$2
"after"
then
PATH
$PATH
else
fi
esac
-x /usr/bin/id
-z
$EUID
# ksh workaround
EUID
-u
UID
-ru
USER
-un
LOGNAME
$USER
MAIL
"/var/spool/mail/
# Path manipulation
"0"
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
HOSTNAME
/usr/bin/hostname 2
/dev/null
HISTSIZE
1000
$HISTCONTROL
"ignorespace"
HISTCONTROL
ignoreboth
ignoredups
PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
$UID
-gt 199
-gn
umask
002
022
/etc/profile.d/*.sh
-r
${-#*i}
!=
"$-"
unset i
unset -f pathmunge
HISTTIMEFORMAT
"%F %T
whoami
sysctl.conf
net.bridge.bridge-nf-call-iptables
net.bridge.bridge-nf-call-ip6tables
脚本
openstack_node_script.sh
vip
192.168.99.211
controller_ip
"配置yum源"
"安装包..."
/limits.conf
/etc/security/limits.conf
/profile
/etc/profile
/sysctl.conf
"配置nova"
xvf
/nova-compute.tar -C /etc/nova/
myip
ifconfig
eth0
awk
'/inet /{print
}'
"/my_ip =/s#.*#my_ip =
${myip}
#"
"配置neutron"
xf neutron-compute.tar -C /etc/neutron
${vip}
openstackvip.com"
${controller_ip}
controller"
vcpu
egrep -c
vcpu -eq 0
[libvirt]
virt_type = qemu
"启动服务..."
systemctl restart libvirtd.service
||
"libvirtd启动失败"
"openstack-nova-compute启动失败"
OpenStack的存储组件—Cinder和Swift—让你在你的私有云里构建块存储和对象的存储系统,Openstack从Folsom开始使用Cinder替换原来的Nova-Volume服务,为Openstack云平台提供块存储服务,Cinder接口提供了一些标准功能,允许创建和附加块设备到虚拟机,如“创建卷”,“删除卷”和“附加卷”。还有更多高级的功能,支持扩展容量的能力,快照和创建虚拟机镜像克隆,主要涉及到的组件如下:
cinder-api:接受API请求,并将其路由到“cinder-volume“执行,即请求cinder要先请求此对外API。
cinder-volume:与块存储服务和例如“cinder-scheduler“的进程进行直接交互。它也可以与这些进程通过一个消息队列进行交互。“cinder-volume“服务响应送到块存储服务的读写请求来维持状态。它也可以和多种存储提供者在驱动架构下进行交互。
cinder-scheduler守护进程:选择最优存储提供节点来创建卷。其与“nova-scheduler“组件类似。
cinder-backup守护进程:“cinder-backup“服务提供任何种类备份卷到一个备份存储提供者。就像“cinder-volume“服务,它与多种存储提供者在驱动架构下进行交互。
消息队列:在块存储的进程之间路由信息。
监听端口:8776
数据库端
新建数据库
CREATE DATABASE cinder
GRANT ALL PRIVILEGES ON cinder.* TO
'cinder'
admin-openrc
创建cinder用户:
openstack user create --domain default --password-prompt cinder
密码我设置为:123
将admin角色添加到cinder用户:
--user cinder admin
创建cinderv2和cinderv3服务实体
create --name cinderv2 \
"OpenStack Block Storage"
volumev2
create --name cinderv3 \
volumev3
创建Block Storage服务API端点
volumev2 public http://openstackvip.com:8776/v2/%\
project_id\
volumev2 internal http://openstackvip.com:8776/v2/%\
volumev2 admin http://openstackvip.com:8776/v2/%\
volumev3 public http://openstackvip.com:8776/v3/%\
volumev3 internal http://openstackvip.com:8776/v3/%\
volumev3 admin http://openstackvip.com:8776/v3/%\
openstack-cinder
编辑/etc/cinder/cinder.conf文件并完成以下操作
过滤下注释信息
/etc/cinder/cinder.conf
vim /etc/cinder/cinder.conf
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
connection = mysql+pymysql://cinder:123@openstackvip.com/cinder
[fc-zone-manager]
[key_manager]
username = cinder
lock_path = /var/lib/cinder/tmp
[oslo_reports]
[oslo_versionedobjects]
[sample_castellan_source]
[sample_remote_file_source]
[service_user]
[vault]
填充块存储数据库
"cinder-manage db sync"
cinder
配置计算以使用块存储
编辑/etc/nova/nova.conf文件
在对应选项加上这个配置
重新启动Compute API服务
启动Block Storage服务并将其配置为在系统引导时启动
openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
haproxy代理8776端口。
在ha上配置
在最后追加
listen cinder
bind :8776
server t1 192.168.99.101:8776 check inter 3s fall 3 rise 5
重启服务
准备一台存储服务器,也可以在数据库服务器上来配(省机器,分配2G内存),称之为“块存储”节点
"块存储"节点(我在数据库节点上做)
在虚拟机上新加一块硬盘,然后执行下面命令来识别
"- - -"
/sys/class/scsi_host/host0/scan
安装LVM包:
lvm2 device-mapper-persistent-data
启动LVM元数据服务
lvm2-lvmetad.service
systemctl restart lvm2-lvmetad.service
创建LVM物理卷/dev/sdb
pvcreate /dev/sdb
创建LVM卷组cinder-volumes
vgcreate cinder-volumes /dev/sdb
编辑lvm配置文件
过滤下注释
'/#/d'
/etc/lvm/lvm.conf
vim /etc/lvm/lvm.conf
找个下面这个字段修改
devices {
...
filter = [ "a/sdb/", "r/.*/"]
a是access,r是reject,只授受sdb磁盘,
openstack-cinder targetcli python-keystone
编辑cinder.conf文件
my_ip = 192.168.99.106
enabled_backends = lvm
glance_api_servers = http://openstackvip.com:9292
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
volume_backend_name = openstack-lvm
my_ip写你的本机的IP
启动Block Storage卷服务
openstack-cinder-volume.service target.service
systemctl restart openstack-cinder-volume.service target.service
控制节点上
查看卷列表
openstack volume
登录dashboard,出现卷选项。创建卷。
创建虚拟机,连接卷,
mkfs对卷进行格式化,dashboard中卷模块管理连接,连接到虚拟机。
将逻辑卷格式化为ext4
mkfs.ext4 /dev/vdb
在虚拟机内进行挂载(同一卷不能同时挂载在两个虚拟机上)
/dev/vdb /data
扩展卷
dashboard在卷的模块进行分离,步骤:取消挂载,分离连接。
扩展卷,重新连接,重新挂载,文件系统动态扩展
resize2fs
/vev/vdb
当做硬盘使用:cinder存储服务器只能同时提供一种存储方式lvm或者nfs,不能同时提供两种
准备一台新的虚拟机当nfs服务器,IP为192.168.99.105
在新的NFS服务器上
配置nfs服务器端
nfs-utils rpcbind
nfsuser
vim /etc/exports
/nfsdata
*(rw,all_squash,anonuid=1000,anongid=1000)
nfsuser.nfsuser /nfsdata
anonuid和anongid写的id是nfsuser的id
nfs
systemctl restart nfs
在控制节点上
在修改配置cinder配置文件,使用nfs
enabled_backends = nfs
[nfs]
volume_backend_name = openstack-nfs
volume_driver = cinder.volume.drivers.nfs.NfsDriver
nfs_shares_config = /etc/cinder/nfs_shares.conf
nfs_mount_point_base = $state_path/mnt
volume_backend_name,定义名称,后面做关联的时候使用
volume_driver,驱动
nfs_shares_config ,定义 NFS 挂载的配置文件路径
nfs_mount_point_base,定义 NFS 挂载点
创建nfs挂载配置文件,并修改所有者及所属组
vim /etc/cinder/nfs_shares.conf
文件不存在,需要创建
192.168.99.105:/nfsdata
root.cinder /etc/cinder/nfs_shares.conf
重启cinder服务
systemctl restart openstack-cinder-volume.service
验证nfs自动挂载
cinder service-list
磁盘类型关联
创建磁盘类型:
cinder type-create lvm
cinder type-create nfs
将磁盘类型与磁盘关联:
cinder type-key nfs
set
volume_backend_name
openstack-nfs
cinder type-key lvm
Openstack-lvm
nfs需重新进行格式化mkfs.ext4(同lvm,过程略)
fdisk查看。(nfs存储可拉伸)
"块存储"节点
backup_driver = cinder.backup.drivers.swift
backup_swift_url = SWIFT_URL
openstack catalog show object-store
启动Block Storage备份服务
openstack-cinder-backup.service
systemctl start openstack-cinder-backup.service
专有网络VPC(Virtual Private Cloud)是一个相互隔离的网络环境,每个专有网络之间逻辑上彻底隔离,可以自己选择自己的IP地址范围、划分网段、配置路由表和网关等,从而实现安全而轻松的资源访问和应用程序访问
在配置完provider网络的基础上配置,通过自服务网络提供的路由进行连接provider外网
控制端上
安装相关包
-y openstack-neutron openstack-neutron-ml2
修改配置文件neutron.conf
在原来的基础上修改或添加
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
仅修改DEFAULT
配置模块化第二层ML2插件
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
enable_ipset = true
[ml2_type_vxlan]
vni_ranges = 1:1000
配置桥接代理:
enable_vxlan = true
local_ip = 192.168.99.101
l2_population = true
配置内核参数:
#之前已经有了,不用重复添加
"net.bridge.bridge-nf-call-ip6tables = 1 "
配置第三层代理:
vim /etc/neutron/l3_agent.ini
重启compute API服务:
启动服务并开机启动
neutron-server.service
neutron-linuxbridge-agent.service neutron-dhcp-agent.service
systemctl restart neutron-server.service
自服务网络还需启动下面两个服务:
local_ip = 192.168.99.23
重启compute服务:
网桥代理配置开启启动并启动
创建自服务网络(需要provider网络支持)
openstack network create selfnetwork
创建自定义子网
openstack subnet create --network selfnetwork --dns-nameserver 8.8.8.8 --gateway 172.16.0.1
--subnet-range 172.16.0.0/16 selfnetwork-subnet
命令格式:
openstack subnet create --network 网络名称 \
 --dns-nameserver 8.8.8.8 --gateway 172.16.1.1 \
 --subnet-range 172.16.1.0/24 自定义子网名称
创建路由器:
openstack router create router
添加内网子网到路由:
neutron router-interface-add router selfnetwork-subnet
设置路由器网关:(需要bridge网络支持)
neutron router-gateway-set router provider
配置Horzen支持三层网络:
vim /etc/openstack-dashboard/local_settings
修改这段
'enable_router': True,
'enable_quotas': True,
'enable_ipv6': True,
'enable_distributed_router': True,
'enable_ha_router': True,
'enable_lb': True,
'enable_firewall': True,
'enable_vpn': True,
'enable_fip_topology_check': True,
查看路由ip
openstack router show router
grep
检查下,有2条记录
neutron router-port-list router
创建新的实例
网络拓扑
验证能否ping得通外网
实现类似于阿里云ECS主机的内外网(双网卡不通网段)的结构,最终实现内外网区分隔离
在计算节点的各虚拟机的设置中添加网卡,保证有2个网卡在不同网段即可
配置好IP地址
编辑配置文件linuxbridge_agent.ini
修改这个选项块
physical_interface_mappings = provider:eth0, external:eth1
编辑配置文件如下ml2_conf.ini
flat_networks = provider, external
重启neutron服务
restart neutron-linuxbridge-agent
restart neutron-server
vim
控制端创建网络
neutron net-create --shared --provider:physical_network external
--provider:network_type flat external-net
创建子网
neutron subnet-create --name external-subnet
172.16.23.200,end
172.16.23.220 \
--dns-nameserver 114.114.114.114 external-net 172.16.0.0/16
验证子网创建完成
net-list
创建虚拟机
在网卡界面添加两个网卡,其它自选
验证内外网访问
通过KVM安装虚拟机Centos 7.2 、centos 6.9 和Windwos 2008 R2_x86_64 操作系统步骤,还有基于官方GenericCloud 7.2.1511镜像制作。并将磁盘文件作为镜像上传到openstack glance,作为批量创建虚拟机的镜像文件,其中windowsn 2008安装virtio 半虚拟化驱动,以实现网络IO和磁盘IO的半虚拟化提升速度。
Centos 7默认即支持半虚拟化,不需要安装驱动,Virtio最初由澳大利亚的一个天才级程序员Rusty Russell编写,是一个在hypervisor之上的抽象API接口,让客户机知道自己运行在虚拟化环境中,从而与hypervisor根据 virtio 标准协作,从而在客户机中达到更好的性能(特别是I/O性能),目前,有不少虚拟机都采用了virtio半虚拟化驱动来提高性能。
ISO
ISO格式是使用通常用于CD和DVD的只读ISO 9660文件系统格式化的磁盘镜像。
OVF
OVF(开放虚拟化格式)是虚拟机的打包格式,由分布式管理任务组(DMTF)标准组定义。OVF包中包含一个或多个镜像文件,一个
.ovf
XML元数据文件,其中包含有关虚拟机的信息,也可能包含其他文件。
QCOW2
QCOW2格式通常与KVM管理程序一起使用。它具有原始格式的一些附加功能,例如:
使用稀疏表示,因此镜像尺寸更小。
支持快照。
因为qcow2是稀疏的,所以qcow2镜像通常小于原始镜像。较小的镜像意味着上传速度更快,因此将原始镜像转换为qcow2进行上传通常会更快,而不是直接上传原始文件。
Raw
原始镜像格式是最简单的格式,KVM和Xen虚拟机管理程序本身都支持这种格式。
VDI
VirtualBox 对镜像文件使用 VDI(虚拟磁盘镜像)格式。OpenStack Compute虚拟机管理程序都不直接支持VDI,因此您需要将这些文件转换为其他格式才能与OpenStack一起使用。
VHD
Microsoft Hyper-V使用VHD(虚拟硬盘)格式的镜像。
VHDX
Microsoft Server 2012附带的Hyper-V版本使用较新的 VHDX格式,该格式与VHD相比具有一些附加功能,例如支持更大的磁盘大小和防止电源故障期间的数据损坏。
VMDK
VMware ESXi 虚拟机管理程序将 VMDK(虚拟机磁盘)格式用于镜像。
准备一个新的虚拟机,要来搭建KVM
镜像节点上
镜像节点就是新的虚拟机
安装网卡桥接工具
bridge-utils –y
eth0网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Bridge
BRIDGE=br0
创建br0
vim /etc/sysconfig/network-scripts/ifcfg-br0
NAME=br0
DEVICE=br0
IPADDR=192.168.99.50
DNS1=114.114.114.114
vim /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-br1
NAME=br1
DEVICE=br1
IPADDR=172.16.23.200
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
systemctl restart network
验证内外网
ping
www.baidu.com
安装图形桌面支持
后期会调用图形配置镜像网卡等
yum groupinstall
"GNOME Desktop"
–y
重启系统,重启之后确保以上各网卡通信正常,然后才进行下一步镜像制作
做镜像就是在宿主机最小化安装系统并配置优化,做完配置之后将虚拟机关机,然后将虚拟机磁盘文件上传至glance即可启动虚拟机
安装基础环境
-y qemu-kvm qemu-kvm-tools libvirt virt-manager
virt-install
创建磁盘
qemu-img create -f qcow2
/var/lib/libvirt/images/CentOS7.qcow2
10G
类型为qcow2,跟使用量动态增长,也可以是raw格式,openstack 支持很多类型的磁盘格式。
验证磁盘文件:
下载ISO镜像并安装
我已经上传好了镜像
/data/CentOS-7-x86_64-Minimal-1511.iso
--virt-type kvm \
--name
CentOS7_1
--ram 1024 \
--cdrom
/data/CentOS-7-x86_64-Minimal-1511.iso \
--disk path
/var/lib/libvirt/images/CentOS7.qcow2 \
--network bridge
br0
--graphics vnc,listen
0.0.0.0
--noautoconsole
验证端口,速度要快,60秒内连上VNC,不然就自动安装了
5900
使用VNC 客户端连接虚拟机端口
连接后进行安装,传递内核参数重命名网卡
(选中install centOS 7别回车,按TAB键,在结尾追加
net.ifnames=0 biosdevname=0
,然后回车安装)
选择语言
磁盘分区
可以是自动分区也可以是手动
选手动就继续往下看
创建swap分区,2G
创建boot分区,1G
创建根,1G
完成
选择时区和语言,安装
安装过程设置root密码和创建普通用户
安装完成后点reboot,虚拟机会被关机
打开控制台
virt-manager
双击进入虚拟机控制界面
点击添加硬件
添加网卡
开机
刚刚创建的kvm虚拟机上
验证网络
更改yum源
-O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装常用命令
-y net-tools vim lrzsz tree
screen
lsof
ntpdate telnet acpid
关闭selinux
's/SELINUX=enforcing/SELINUX=disabled/g'
/etc/selinux/config
生成私钥
ssh-keygen
传送给自己
ssh-copy-id localhost
查看公钥
/root/.ssh/authorized_keys
发给刚刚创建的kvm虚拟机上
scp
~/.ssh/* 172.16.134.104:/root/.ssh/
172.16.134.104 是刚刚创建的kvm虚拟机的ip
如果提示
scp: /root/.ssh/: No such file or directory
则需要在kvm虚拟机上
mkdir /root/.ssh
ssh
172.16.134.104
验证完后把刚刚创建的kvm虚拟机关机
在镜像节点上
关机然后复制镜像至控制端
/var/lib/libvirt/images/
CentOS7_2.qcow2
192.168.99.101:/data/
上传镜像至glance
"CentOS-7-template"
--file /data/CentOS7_2.qcow2
验证镜像
新增实例类型
openstack flavor create --vcpus 1 \
--ram 1024 --disk 20 centos-1C-2G-20G
验证实例类型
创建实例
openstack server create --flavor centos-1C-2G-20G \
--image CentOS-7-template \
--security-group 271e3299-3a32-4b57-9afa-0d13cc8673a1 \
--key-name mykey \
centos-tmp-1
net-id 使用
security-group 使用
key-name 使用
登录到网页端查看
查看ip
验证外网
浮动IP用于关联到每个实例,实现浮动IP与自服务IP的一一对应,且可以通过浮动IP映射打通从外网访问虚拟机的目的。
分配浮动ip
管理至实例
验证密钥登录
controller11
192.168.99.203
The authenticity of host
'192.168.99.203 (192.168.99.203)'
can
't be established.
ECDSA key fingerprint is SHA256:IPL9jmUK5tk53Yg7Auqduizch2Yak+uD+OiBsXLSqTw.
ECDSA key fingerprint is MD5:2a:6e:e3:e2:39:7e:18:7d:05:79:ed:bd:25:46:33:17.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '
192.168.99.203'
ECDSA
to the list of known hosts.
Last login: Sun Sep
1 02:31:14 2019
root@localhost ~
安装和配置httpd
httpd
testtest
/var/www/html/index.html
修改安全组
访问
查看当前配额
neutron quota-show admin
查看openstack配置文件是否开启配额限制
修改web端配额
修改neutron.conf
[quotas]
quota_network = 10
quota_subnet = 10
quota_port = 5000
quota_driver = neutron.db.quota.driver.DbQuotaDriver
quota_router = 10
quota_floatingip = 1000
quota_security_group = 10
quota_security_group_rule = 100
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
quota_floatingip = 50
查看要修改实例的ip
找出要修改的实例对应的ID
openstack port list
172.16.23.220
查看实例ID,登录到数据库上
mysql -uneutron -hopenstackvip.com –p
我把ip从172.16.23.220改成172.16.23.222
USE neutron
SELECT * FROM ports WHERE device_id
"937a9a25-4a7c-4847-898f-2db8828ecde5"
SELECT * FROM ipallocations
WHERE port_id
UPDATE ipallocations SET ip_address
"172.16.23.222"
修改成功
重启实例,(软硬都行)
ping测试下都否通讯
在有些时候,创建完成的虚拟机因业务需求需要变更内存或 CPU 或磁盘,因此需要配置允许后期类型调整。(调整实例大小与虚拟机迁移本质相同)实际是先拷贝数据到新的节点,再在该节点上创建新的虚拟机,然后将旧的虚拟机删除。
创建新的实例类型
openstack flavor create --id 1 --vcpus 1 --ram 512 --disk 10 newone
修改nova配置文件
在DEFAULT选项添加这项
allow_resize_to_same_host=true
baremetal_enabled_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ExactRamFilter,ExactDiskFilter,ExactCoreFilter
重启nova
目前有2个计算节点:
ip1:192.168.99.22
ip2:192.168.99.23
计算节点1
在各个计算节点修改nova用户的shell类型为/bin/bash
usermod
-s
/bin/bash
配置nova用户的登录密码
nova123
passwd
--stdin nova
计算节点2
切换至nova用户
获取秘钥
ssh-keygen -t rsa -P
''
-f ~/.ssh/id_dsa
&
在各个计算节点间对秘钥进行相互拷贝
ssh-copy-id -i ~/.ssh/id_dsa.pub nova@192.168.99.23
验证是否可以免密登录
nova@192.168.99.23
#登录之后,看下ip是否为99.23
ssh-copy-id -i ~/.ssh/id_dsa.pub nova@192.168.99.22
nova@192.168.99.22
#登录之后,看下ip是否为99.22
登录dashboard,执行调整实例大小
调整大小
调整完毕
确认
成了
主机聚合命令:
创建一个主机聚合名称,同时创建一个可用域az1(可选)
nova aggregate-create 主机聚合名
可用域名
查看主机聚合与可用域
nova aggregate-list
把主机添加到对应的主机聚合中
nova aggregate-add-host 主机聚合名 计算节点名
查询主机与服务所属的availablitiy zone
查看可用域状态
nova availability-zone-list
创建主机聚合
方法1
命令行
nova aggregate-create agg1
nova aggregate-add-host agg1 node1
nova aggregate-add-host agg1 node2
方法2
dashboard网页端创建主机聚合
创建虚拟机(指定IP):
nova boot --image centos --flavor
test
--availability-zone t300:node1 \
--nic net-name
provider,v4-fixed-ip
192.168.6.130 \
vmt300
–image 指定镜像名
–flavor 指定类型
–availability-zone 指定主机聚合名:计算节点
-nic 指定网络名与ip
最后的vmt300,是虚拟机名
如果要指定2个网络的ip,再加一行 --nic选项即可
控制端和计算节点的/etc/nova/nova.conf进行以下配置:
配置虚拟机自启动:
resume_guests_state_on_host_boot
配置CPU 超限使用:
默认为16,即允许开启16倍于物理CPU的虚拟CPU个数。
cpu_allocation_ratio
16
配置内存超限使用:
配置允许1.5倍于物理内存的虚拟内存
ram_allocation_ratio
1.5
配置硬盘超限使用:
磁盘尽量不要超限,可能会导致数据出现丢失
disk_allocation_ratio
1.0
配置保留磁盘空间:
即会预留一部分磁盘空间给系统使用
reserved_host_disk_mb
20480
配置预留内存给系统使用:
预留一定的内存给系统使用
reserved_host_memory_mb
4096
```bash
关注博主即可阅读全文
优惠劵
关注
点赞
觉得还不错?
一键收藏
打赏
知道了
评论
openstack Stein 版本安装文档2019年8月28日陈即彪文章目录1. openstack介绍1.1. 云计算模式2. OpenStack 中有哪些项目?2.1. Openstack创建实例的流程2.2. 总图3. openstack项目搭建4. 环境配置4.1. 配置SQL数据库4.2. 配置Memcached4.3. 安装rabbit-MQ4.4. 配置haproxy+...
复制链接
扫一扫
专栏目录
_rpm.tar.gz
04-09
二进制tar包
OpenStack
排错记录二---nova-status upgrade check报错NoSuchTableError: `services`
zsk_john的技术分享专用博客
04-27
2967
问题重现:
在部署完
平台后,运行命令nova-status upgrade check进行Nova服务检查,却报错了,报错详细信息如下:
[root@controller neutron]# nova-status upgrade check
Option "os_region_name" from group "placement" is deprecated. Use option "region-name" from
group "placement".
Error:
T.
参与评论
您还未登录,请先
登录
后发表或查看评论
[译]
Ocata
本中的 53 个新功能盘点
weixin_33973600的博客
03-18
148
原文链接:https://www.mirantis.com/blog/53-new-things-to-look-for-in-
-ocata/
原文作者:Nick Chase, Rajat Jain, Stacy Véronneau, Michael Tillman
原文发布时间:02/24, 2017
 
因为
本的开发周期比较短(只有...
本对应表
最新发布
m0_56363537的博客
03-19
644
本对应查看
云平台】
Centos操作系统
念舒C.ying
08-02
951
准备实验所需要的环境,需要
VMwareWorkstation。使用的系统镜像为CentOS-7.5-x86_64-DVD-1804.iso。说明compute节点与controller节点基础环境及
系统大致相同,可参考controller节点配置,以下是稍有不同的地方。...............
指南
guarding1的博客
07-17
788
03-
lingshengxiyou的博客
03-31
1424
1、创建卷类型2、点击卷类型扩展规格3、添加键值对在/etc/cinder/cinder.conf中定义的配置项。4、创建卷创建镜像说明
文档
:https://docs.
.org/image-guide/create-images-manually.html在10.1.1.13上创建自定义镜像(
计算节点)1、关闭虚拟机12、将虚拟机镜像上传到
Openstack
上123456789101112//(1)查看虚拟机镜像。
部署
qq_28645079的博客
09-21
1323
选用三台主机,每台主机配置双网口进行支持。控制:代表需要运行的程序控制程序:包含控制服务control、网络服务Neutrun,监控服务monitor,部署服务deploy。计算:则是负载实际虚拟机的生产,主要包含存储Storage(本篇采用LVM进行实现),计算Nova。整个网络架构图如下默认的磁盘做了raid信息。/dev/sda 由4个盘做raid5,挂载与/目录/dev/sdb 由8个盘做raid5,配置成LVM,提供云磁盘服务。
概述 、 部署
环境 、 部署
操作基础 案例
qq_36345864的博客
03-16
1410
Top
NSD CLOUD DAY03
案例1:管理项目
案例2:新建云主机类型
案例3:上传镜像
案例4:创建网络
案例5:管理浮动IP地址
案例6:创建安全组及规则
案例7:创建云主机
案例8:
额外计算节点
1 案例1:管理项目
1.1 问题
本案例要求:
通过Horizon完成以下操作
创建名为tedu的项目
创建用户 uu 来管理这个项目
1.2 步骤
_Rocky部署
.pdf
07-19
云计算
详尽的
教程
,监控运维篇。
深圳信狮
Pike
V5.0
03-02
V5.0,主要介绍
过程及原理详解
在kilo环境下 YUM
09-03
open stack
,讲述了如何在Linux下配置
open stack以及如何解决一些问题,本资料由谢不全,但是基本的功能都能
搭建
起来,希望能够帮助到大家。
12-23
pike
脚本,
allinone
包(一)
05-10
声明:因为软件超过50M,所以分成了两部分,请搜索
包(二)
包二里面会有一键
一键卸载的说明,敬请留意
-rpm包信息:
augeas-libs-1.0.0-5.el6_5.1.x86_64.rpm
boost-program-options-1.41.0-18.el6.x86_64.rpm
btrfs-progs-0.20-0.2.git91d9eec.el6.x86_64.rpm
celt051-0.5.1.3-0.el6.x86_64.rpm
crudini-0.3-2.el6.noarch.rpm
cvs-1.11.23-16.el6.x86_64.rpm
cyrus-sasl-2.1.23-13.el6_3.1.x86_64.rpm
cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64.rpm
cyrus-sasl-md5-2.1.23-13.el6_3.1.x86_64.rpm
cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64.rpm
Django14-1.4.8-1.el6.noarch.rpm
dnsmasq-utils-2.48-13.el6.x86_64.rpm
ebtables-2.0.9-6.el6.x86_64.rpm
febootstrap-supermin-helper-3.21-4.el6.x86_64.rpm
gettext-0.17-16.el6.x86_64.rpm
glusterfs-api-3.4.0.57rhs-1.el6_5.x86_64.rpm
glusterfs-libs-3.4.0.57rhs-1.el6_5.x86_64.rpm
gnutls-2.8.5-13.el6_5.x86_64.rpm
gnutls-utils-2.8.5-13.el6_5.x86_64.rpm
gpxe-roms-qemu-0.9.7-6.10.el6.noarch.rpm
hivex-1.3.3-4.2.el6.x86_64.rpm
ipmitool-1.8.11-16.el6.x86_64.rpm
iscsi-initiator-utils-6.2.0.873-10.el6.x86_64.rpm
keyutils-1.4-4.el6.x86_64.rpm
krb5-libs-1.10.3-15.el6_5.1.x86_64.rpm
libcgroup-0.40.rc1-5.el6_5.1.x86_64.rpm
libconfig-1.3.2-1.1.el6.x86_64.rpm
libdrm-2.4.45-2.el6.x86_64.rpm
libevent-1.4.13-4.el6.x86_64.rpm
libgssglue-0.1-11.el6.x86_64.rpm
libguestfs-1.20.11-2.el6.x86_64.rpm
libguestfs-tools-c-1.20.11-2.el6.x86_64.rpm
libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm
libtirpc-0.2.1-6.el6_5.1.x86_64.rpm
libvirt-0.10.2-29.el6_5.7.x86_64.rpm
libvirt-client-0.10.2-29.el6_5.7.x86_64.rpm
libvirt-python-0.10.2-29.el6_5.7.x86_64.rpm
lzo-2.03-3.1.el6.x86_64.rpm
lzop-1.02-0.9.rc1.el6.x86_64.rpm
memcached-1.4.4-3.el6.x86_64.rpm
mod_wsgi-3.2-3.el6.x86_64.rpm
mysql-5.1.73-3.el6_5.x86_64.rpm
mysql-libs-5.1.73-3.el6_5.x86_64.rpm
MySQL-python-1.2.3-0.3.c1.1.el6.x86_64.rpm
mysql-server-5.1.73-3.el6_5.x86_64.rpm
nc-1.84-22.el6.x86_64.rpm
netcf-libs-0.1.9-4.el6_5.2.x86_64.rpm
netpbm-10.47.05-11.el6.x86_64.rpm
netpbm-progs-10.47.05-11.el6.x86_64.rpm
nfs-utils-1.2.3-39.el6.x86_64.rpm
nfs-utils-lib-1.1.5-6.el6.x86_64.rpm
novnc-0.4-8.el6.noarch.rpm
ntp-4.2.6p5-1.el6.centos.x86_64.rpm
ntpdate-4.2.6p5-1.el6.centos.x86_64.rpm
numactl-2.0.7-8.el6.x86_64.rpm
numad-0.5-9.20130814git.el6.x86_64.rpm
openssl-1.0.1e-16.el6_5.7.x86_64.rpm
-dashboard-2013.2.3-1.el6.noarch.rpm
-glance-2013.2.3-2.el6.noarch.rpm
-keystone-2013.2.3-3.el6.noarch.rpm
-nova-2013.2.3-1.el6.noarch.rpm
-nova-api-2013.2.3-1.el6.noarch.rpm
-nova-cells-2013.2.3-1.el6.noarch.rpm
-nova-cert-2013.2.3-1.el6.noarch.rpm
-nova-common-2013.2.3-1.el6.noarch.rpm
-nova-compute-2013.2.3-1.el6.noarch.rpm
-nova-conductor-2013.2.3-1.el6.noarch.rpm
-nova-console-2013.2.3-1.el6.noarch.rpm
-nova-network-2013.2.3-1.el6.noarch.rpm
-nova-novncproxy-2013.2.3-1.el6.noarch.rpm
-nova-objectstore-2013.2.3-1.el6.noarch.rpm
-nova-scheduler-2013.2.3-1.el6.noarch.rpm
-utils-2013.2-2.el6.noarch.rpm
p11-kit-0.18.5-2.el6_5.2.x86_64.rpm
perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
perl-DBI-1.609-4.el6.x86_64.rpm
perl-hivex-1.3.3-4.2.el6.x86_64.rpm
polkit-0.96-5.el6_4.x86_64.rpm
pyOpenSSL-0.13.1-1.el6.x86_64.rpm
PyPAM-0.5.0-12.el6.x86_64.rpm
pysendfile-2.0.0-3.el6.x86_64.rpm
python-amqplib-1.0.2-1.el6.rf.noarch.rpm
python-anyjson-0.3.1-2.el6.rf.noarch.rpm
python-argparse-1.2.1-2.el6.noarch.rpm
python-babel-0.9.4-5.1.el6.noarch.rpm
python-backports-1.0-4.el6.x86_64.rpm
python-backports-ssl_match_hostname-3.4.0.2-1.el6.noarch.rpm
python-boto-2.27.0-1.el6.noarch.rpm
python-ceilometerclient-1.0.8-1.el6.noarch.rpm
python-chardet-2.0.1-1.el6.rf.noarch.rpm
python-cheetah-2.4.1-1.el6.x86_64.rpm
python-cinderclient-1.0.7-2.el6.noarch.rpm
python-cliff-1.4.4-1.el6.noarch.rpm
python-cmd2-0.6.4-7.el6.noarch.rpm
python-crypto-2.0.1-22.el6.x86_64.rpm
python-dateutil-1.4.1-6.el6.noarch.rpm
python-django-appconf-0.5-3.el6.noarch.rpm
python-django-compressor-1.3-2.el6.noarch.rpm
python-django-horizon-2013.2.3-1.el6.noarch.rpm
python-django-
-auth-1.1.2-1.el6.noarch.rpm
python-dogpile-cache-0.5.0-1.el6.noarch.rpm
python-dogpile-core-0.4.1-1.el6.noarch.rpm
python-eventlet-0.9.17-2.el6.noarch.rpm
python-glance-2013.2.3-2.el6.noarch.rpm
python-glanceclient-0.12.0-1.el6.noarch.rpm
python-greenlet-0.3.1-12.el6.x86_64.rpm
python-heatclient-0.2.6-2.el6.noarch.rpm
python-httplib2-0.7.7-1.el6.noarch.rpm
python-iso8601-0.1.8-1.el6.noarch.rpm
python-jinja2-26-2.6-2.el6.noarch.rpm
python-jsonpatch-1.2-2.el6.noarch.rpm
python-jsonpointer-1.0-3.el6.noarch.rpm
python-jsonschema-2.3.0-1.el6.noarch.rpm
python-keyring-0.7-1.el6.noarch.rpm
python-keystone-2013.2.3-3.el6.noarch.rpm
python-keystoneclient-0.7.1-2.el6.noarch.rpm
python-kombu-1.4.1-1.el6.rf.noarch.rpm
python-ldap-2.3.10-1.el6.x86_64.rpm
python-libguestfs-1.20.11-2.el6.x86_64.rpm
python-lockfile-0.8-3.el6.noarch.rpm
python-lxml-2.2.3-1.1.el6.x86_64.rpm
python-markdown-2.0.1-3.1.el6.noarch.rpm
python-memcached-1.53-1.el6.noarch.rpm
python-migrate-0.7.2-8.el6.noarch.rpm
python-netaddr-0.7.5-4.el6.noarch.rpm
python-neutronclient-2.3.4-1.el6.noarch.rpm
python-nova-2013.2.3-1.el6.noarch.rpm
python-novaclient-2.16.0-2.el6.noarch.rpm
python-oauth2-1.5.211-5.el6.noarch.rpm
python-ordereddict-1.1-2.el6.noarch.rpm
python-oslo-config-1.2.1-1.el6.noarch.rpm
python-paramiko-1.7.5-2.1.el6.noarch.rpm
python-passlib-1.5.3-1.el6.noarch.rpm
python-paste-1.7.4-2.el6.noarch.rpm
python-paste-deploy1.5-1.5.0-5.el6.noarch.rpm
python-pbr-0.5.21-2.el6.noarch.rpm
python-pip-1.3.1-4.el6.noarch.rpm
python-prettytable-0.7.2-1.el6.noarch.rpm
python-pyasn1-0.0.12a-1.el6.noarch.rpm
python-pygments-1.1.1-1.el6.noarch.rpm
python-pyparsing-1.5.6-2.el6.rf.noarch.rpm
python-qpid-0.18-5.el6_4.noarch.rpm
python-requests-1.1.0-4.el6.noarch.rpm
python-routes1.12-1.12.3-4.el6.noarch.rpm
python-saslwrapper-0.18-1.el6_3.x86_64.rpm
python-setuptools-0.6.10-3.el6.noarch.rpm
python-simplejson-2.0.9-3.1.el6.x86_64.rpm
python-six-1.5.2-1.el6.noarch.rpm
python-sqlalchemy0.7-0.7.8-1.el6.x86_64.rpm
python-stevedore-0.14-1.el6.noarch.rpm
python-swiftclient-2.0.2-1.el6.noarch.rpm
python-tempita-0.4-2.el6.noarch.rpm
python-troveclient-0.1.4-3.el6.noarch.rpm
python-urllib3-1.5-7.el6.noarch.rpm
python-versiontools-1.9.1-3.el6.noarch.rpm
python-warlock-1.0.1-1.el6.noarch.rpm
python-webob-1.2.3-4.el6.noarch.rpm
python-websockify-0.5.1-1.el6.noarch.rpm
python-yaml-3.09-3.el6.rf.x86_64.rpm
pytz-2010h-2.el6.noarch.rpm
pyxattr-0.5.0-1.el6.x86_64.rpm
qemu-img-0.12.1.2-2.415.el6_5.8.x86_64.rpm
qemu-kvm-0.12.1.2-2.415.el6_5.8.x86_64.rpm
qpid-cpp-client-0.18-18.el6.x86_64.rpm
qpid-cpp-server-0.18-18.el6.x86_64.rpm
radvd-1.6-1.el6.x86_64.rpm
repodata
rpcbind-0.2.0-11.el6.x86_64.rpm
saslwrapper-0.18-1.el6_3.x86_64.rpm
scrub-2.2-1.el6.x86_64.rpm
seabios-0.6.1.2-28.el6.x86_64.rpm
sgabios-bin-0-0.3.20110621svn.el6.noarch.rpm
spice-server-0.12.4-6.el6_5.1.x86_64.rpm
tunctl-1.5-3.el6.x86_64.rpm
usbredir-0.5.1-1.el6.x86_64.rpm
vgabios-0.6b-3.7.el6.noarch.rpm
yajl-1.0.7-3.el6.x86_64.rpm
zlib-1.2.3-29.el6.x86_64.rpm
Centos 7 部署
_Rocky
高可用集群3-1
01-20
高可用集群3-11、前期准备1.1 软硬件准备1.1.1组件1.1.2 网络拓扑(逻辑)1.1.3 物理拓扑(部分参考)1.2 配置hosts文件(集群所有电脑配置)1.3 节点间设置免密互相登陆1.4 配置NTP服务1.4.1 在控制...
-N
02-13
根据此
,可少踩很多坑。其中按照步骤,一步步来
。有如何打镜像。
CentOS7一键
只为苦逼的运维同胞在运维的道理上少踩坑。
12-06
5856
CentOS 7
CPU核心数:2x2
RAM:8G
DISK:60G在
过程中,一直卡在下面过程:
等待一会儿之后会报各种不同的错误,通过搜索问题,有让修改数据库授权的,有让修改hosts文件的,有让增大内存的,还有让升级某些组件的,问题是千奇百怪,解决方法是五花八门,但是最后都没有解决问题,但是,最后我通过修改
源为阿里云的就成功了,最后怀疑可能是因为网络问题导致资源下载缓慢或者某些资源解析不到导致的(暂未得到证实,个人思考怀疑)。
Stein
和Antelope
区别
07-14
很抱歉,我之前提到的 "Antelope
"并非
的一个官方
本。
本通常以字母顺序进行命名,例如 "
"、"Rocky"、"Train" 等。
那么,让我们来看一下
的 "
"
和它之前的
本之间的区别:
1. 功能增强:每个
本都会引入新的功能和改进。在 "
中,主要的功能增强包括更好的支持多区域部署、容器化和边缘计算等。这些功能改进旨在提高
的可扩展性和灵活性。
2. 安全性增强:
社区一直致力于提高平台的安全性。在 "
中,引入了一些安全增强措施,如加强的身份验证和访问控制、安全服务的改进等,以提供更可靠的安全保护。
3. 性能优化:每个
本都会对性能进行改进。在 "
中,对于计算、网络和存储等方面进行了优化,以提高整体平台的性能和效率。
4. 支持新技术:
的每个
本都会添加对新技术和标准的支持。在 "
中,加入了对 Kubernetes 的更好集成,以支持容器化和容器编排的工作负载。
请注意,这些只是一些常见的区别,具体的区别可能还取决于具体的使用情况和部署配置。如果你对某个具体
本的区别有更具体的问题,可以进一步提问。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
CSDN认证博客专家
CSDN认证企业博客
码龄6年
运维领域优质创作者
277
原创
1万+
周排名
总排名
42万+
等级
6560
积分
粉丝
686
获赞
76
2144
私信
热门文章
openstack介绍及原理
62015
jumpserver入门使用手册
24512
Linux进阶_时间同步(NTP与chrony)
14842
如何解决“无法连接到文件共享,因为它不安全。 此共享需要旧的 SMB1 协议”问题
13849
一步一步_kickstart详解
12652
分类专栏
Prometheus监控
7篇
Docker
26篇
Solace
2篇
linux_desktop
hadoop
gitlab
1篇
ceph
3篇
zabbix
14篇
wordpress建站
4篇
Python
Redis
9篇
虚拟化
13篇
vSphere
jumpserver
keepalived高可用集群
10篇
6篇
LVS
5篇
Nginx
tomcat
11篇
MariaDB全解笔记
25篇
Apache
16篇
Ansible
Linux文件共享
Linux防火墙
Linux入门基础
19篇
Linux进阶
20篇
Linux面试题
15篇
27篇
Windows常见问题解决方法
Linux命令详解
8篇
最新评论
如何在Ubuntu上设置NFS的账号密码
zhoucsdn:
新的用户账户在哪里验证呢
客户端挂载时显示没有权限是什么情况呀?
zabbix监控报警(二)微信报警
爱吃焖鹅的顾问:
[root@localhost alertscripts]# python weixin.py YongWangZhiQian "test"" tss"
Traceback (most recent call last):
File "weixin.py", line 23, in <module>
message=sys.argv[2] + "\n\n" +sys.argv[3]
IndexError: list index out of range
您好,提示这样的错误是什么原因呢
Bitwarden报错:Cannot read properties of nul(reading ‘iterations‘)
weixin_54230918:
新版本不行了,需要nginx重定位处理
[code=css]
location = /identity/accounts/prelogin {
rewrite ^/identity/accounts/prelogin$ /api/accounts/prelogin;
[/code]
[从零构建Prometheus监控] 第一节:设计思路与prometheus监控架构
十三y:
哇,被大佬点评,开心。果断关注了
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
最新文章
iTerm2在MacOS的台前调度(Stage Manage)功能中,无法像其它App一样被调度到左侧
[从零构建Prometheus监控] 第六节:二进制安装Prometheus与指标优化
[从零构建Prometheus监控] 第五节:安装Prometheus on k8s与指标优化
2024年
2023年
2022年
2021年
2020年
2019年
254篇
目录
被折叠的 
 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额
3.43
前往充值 >
需支付:
10.00
取消
确定
下一步
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom
发出的红包
打赏作者
你的鼓励就是我创作最大的动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:
获取中
扫码支付
您的余额不足,请更换扫码支付或
充值
实付
使用余额支付
点击重新获取
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值