Openstack stein搭建
- 环境
- 认证服务(controller)
- 镜像服务(glance controller)
- Placement服务安装
- nova(controller)
- nova(compute)
- 网络服务neutron(controller)
- 计算节点的neutron(compute)
- web界面horizon(controller)
- 问题集合
-
- placement出错
- keystone出错
- glance出错
- dashboard出错
- 创建实例出错
-
- 1、Host 'compute' is not mapped to any cell
- 2、4336 ERROR nova.compute.manager [req-7c1bc64e-74da-4152-84fd-45eff53ed5ee 25b99096b60849e9b5a66dde8ce879cb dba851953a1446cfb651022214d6d486 - default default] [instance: ee763bf9-25ae-48e2-8a52-524695e9b4f1] Failed to allocate network(s): VirtualInterfaceCreateException: Virtual Interface creation failed
- 3、There are not enough hosts available.
- 4、oslo.messaging._drivers.impl_rabbit [-] Unexpected error during heartbeat thread processing, retrying...错误
环境
我的规划
注意: 我的教程有很多错误,如果发现了错误请麻烦给我留个言
controller IP: 192.168.3.104(管理IP),192.168.101.131(提供者IP)
compute IP:192.168.3.103(管理IP),192.168.101.130(提供者IP)
密码全为: 123456
官方文档的配置:
comtroller IP: 10.0.0.11
compute IP: 10.0.0.31
技巧:
可以使用grep过滤要配置的文件,很多文件都是没有内容的,只有一个标签
grep -vE ‘^#|^$’ 文件路径
##配置进度
controller: glance节点已经配完
compute:配置以及全部配完
安全
controoler:
openssl rand -hex 10 > rand.pass
官方文档建议admin使用这个命令生成的的字符串当密码
主机名,yum源等
所有节点:
hostnamectl set-hostname controller
hostnamectl set-hostname compute
yum -y install epel-release centos-release-openstack-stein
yum -y install python-openstackclient openstack-selinux
yum -y upgrade
配置hosts文件
删除网卡配置文件中关于UUID和HWADDR的内容
检查时间是否一致
date
NTP(可选)
chrony部署
(阿里的ntp服务器)
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
controller节点
yum install chrony -y
vim /etc/chrony.conf
server 127.0.0.1 iburst
allow 0.0.0.0/0
other节点
yum -y install chrony
vim /etc/chrony.conf
server controller iburst
验证
systemctl restart chronyd
systemctl enable chronyd
chronyc sources
数据库(controller)
yum -y install mariadb mariadb-server python2-PyMySQL
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.3.104
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设置密码
消息队列(controller)
yum install rabbitmq-server -y
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmqctl add_user openstack 123456
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
(显示:Setting permissions for user "openstack" in vhost "/" 表示成功)
安装Memcached(controller)
yum install memcached python-memcached -y
vim /etc/sysconfig/memcached(修改)
OPTIONS="-l 127.0.0.1,::1,controller"
systemctl enable memcached.service
systemctl start memcached.service
安装Etcd(controller)
yum -y install etcd
编辑:
vim /etc/etcd/etcd.conf
修改: ETCD_INITIAL_CLUSTER,
ETCD_INITIAL_ADVERTISE_PEER_URLS,
ETCD_ADVERTISE_CLIENT_URLS,
ETCD_LISTEN_CLIENT_URLS
类似下面的:
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.3.104:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.3.104:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.3.104:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.104:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.3.104:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
systemctl enable etcd
systemctl start etcd
认证服务(controller)
数据库
mysql -uroot -p123456
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123456';
安装和配置
yum install openstack-keystone httpd mod_wsgi -y
vim /etc/keystone/keystone.conf
[database]
connection = mysql+pymysql://keystone:123456@controller/keystone
[token]
provider = fernet
回到命令界面
su -s /bin/sh -c "keystone-manage db_sync" keystone
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 123456 \
--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
配置apache服务器
vim /etc/httpd/conf/httpd.conf
ServerName controller
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=123456
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
验证:openstack token issue
创建域和用户:
openstack domain create --description "An Example Domain" example
openstack project create --domain default \
--description "Service Project" service
openstack project create --domain default \
--description "Demo Project" myproject
openstack user create --domain default \
--password-prompt myuser
openstack role create myrole
openstack role add --project myproject --user myuser myrole
验证:
unset OS_AUTH_URL OS_PASSWORD
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name myproject --os-username myuser token issue
让你输入密码,然后有正确的显示为正常
镜像服务(glance controller)
数据库
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456';
openstack添加服务
openstack user create --domain default --password-prompt glance
openstack role add --project service --user glance admin
openstack service create --name glance --description "OpenStack Image" image
创建glance API端点:
openstack endpoint create --region RegionOne \
image public http://controller:9292
openstack endpoint create --region RegionOne \
image internal http://controller:9292
openstack endpoint create --region RegionOne \
image admin http://controller:9292
安装和配置
yum install openstack-glance -y
vim /etc/glance/glance-api.conf