安装步骤

  • OpenStack简介
  • 准备工作
  • 安装NTP服务
  • 安装yum库(所有节点)
  • 提前设置一下环境变量
  • 安装MySQL
  • 安装RabbitMQ
  • 安装Menmcached:
  • 安装etcd:
  • 安装OpenStack Service:需要安装 Keystone、Glance、Placement、Nova、Neutron 和 Horizon
    • 安装keystone
    • 安装Glance
    • 安装Placement
    • 安装Nova
      • 先在test-1安装控制节点
      • 在test-2安装Nova计算节点
      • 验证Nova安装
    • 安装Neutron
      • 在test-1上安装控制节点
      • 在test-2上安装计算节点
      • 验证
    • 安装Dashboard
    • 创建镜像测试
  • 总结

OpenStack简介

OpenStack:是一个开源软件,它提供了开放源码,可以建立公有和私有云,目的在于帮助组织运行虚拟计算或服务存储的云。

一般分为四个节点
控制节点:对其余节点的控制,包括虚拟机建立,迁移,网络分配等
计算节点:负责虚拟机的运行
网络节点:负责对外网络与内网络之间的通信
存储节点:负责对虚拟机的额外存储管理

核心组件及可选组件如下:

控制节点包括以下服务:

管理支持服务:
MySQL:存储其他服务的基本信息以及产生的数据
Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务(RabbitMQ)

管理基础服务:
keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理、创建、修改等。
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式以及制作的模板。
Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-api进行通信
Neutron:网络管理服务,提供了对网络节点的网络拓扑管理
Horizon:控制台服务,以web形式对所有节点的所有服务的管理,一般称为dashboard

扩展管理服务:Cinder,Swift,Trove,Heat,Centimeter五个服务

准备工作

两台机器
操作系统为centos7
安装好并且配置固定ip
修改主机名为test-1,test-2
设test-1位控制节点,test-2位计算节点
然后vi /etc/hosts
加入如下内容:

59.64.78.64      test-1
59.64.78.65     test-2

之后需要能互相ping通且能通ping外网

关闭selinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0

关闭防火墙

systemctl stop firewalld.service

安装NTP服务

在test-1上

yum install chrony -y
vi /etc/chrony.conf
注释掉
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加
server ntp.aliyun.com iburst #使用阿里ntp
allow 59.64.78.64/24 #允许网段其他节点同步时间

保存退出之后

systemctl enable chronyd.service
systemctl start chronyd.service
chronyc sources

在test-2上

yum install chrony -y
vi /etc/chrony.conf
注释掉
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加
server controller iburst #同步test-1节点

保存退出之后

systemctl enable chronyd.service
systemctl start chronyd.service
chronyc sources

安装yum库(所有节点)

在test-1,test-2都安装

yum install centos-release-openstack-train -y
yum install https://rdoproject.org/repos/rdo-release.rpm -y
yum upgrade -y
yum install python-openstackclient -y #客户端安装

提前设置一下环境变量

在test-1上设置
先在命令行输入openssl rand -hex 10,生成一个随机密码
然后

export ADMIN_PASS=fc05e1929b2c057a4098
export CINDER_DBPASS=BBDERS1@bbdops.com
export CINDER_PASS=fc05e1929b2c057a4098
export DASH_DBPASS=fc05e1929b2c057a4098
export DEMO_PASS=fc05e1929b2c057a4098
export GLANCE_DBPASS=BBDERS1@bbdops.com
export GLANCE_PASS=fc05e1929b2c057a4098
export KEYSTONE_DBPASS=BBDERS1@bbdops.com
export METADATA_SECRET=fc05e1929b2c057a4098
export NEUTRON_DBPASS=BBDERS1@bbdops.com
export NEUTRON_PASS=fc05e1929b2c057a4098
export NOVA_DBPASS=BBDERS1@bbdops.com
export NOVA_PASS=fc05e1929b2c057a4098
export PLACEMENT_PASS=fc05e1929b2c057a4098
export RABBIT_PASS=fc05e1929b2c057a4098

source /etc/profile使之生效

安装MySQL

查看 rpm -qa | grep mariadb
如果有东西出现就rpm -e --nodeps mariadb…..
我这里是rpm -e --nodeps mariadb-config-3:10.3.20-3.el7.0.0.rdo1.x86_64做了一个删除操作

下载MySQL

wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

yum本地安装

sudo yum localinstall mysql80-community-release-el7-3.noarch.rpmsudo yum install mysql-community-server -y

启动mysql并设置开机启动

sudo systemctl enable mysqld
sudo systemctl start mysqld

查看初始密码

grep 'temporary password'  /var/log/mysqld.log

进入命令行

mysql -u root -p

输入刚才查到的密码
进入到mysql命令行

修改密码

mysql> ALTER USER root@localhost identified by '8sVQxyAzym-w';

最后那部分为自定的密码

退出MySQL:ctrl+z

设置免密登录:vim /etc/my.cnf
添加

[client]
host=127.0.0.1
user=root
password=8sVQxyAzym-w

输入mysql

配置参数:

set global max_connections=300;
show variables like '%max_connections%';
show status like 'Threads%';

其中Threads_connected 是当前连接数,Threads_running 是并发数。

安装RabbitMQ

yum install rabbitmq-server

启动RabbitMQ并设置开机启动:

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

添加用户:

rabbitmqctl add_user openstack $RABBIT_PASS

为 openstack 用户添加配置、读、写权限:

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

查看:

rabbitmqctl list_user_permissions openstack

安装Menmcached:

yum install memcached python-memcached

修改配置文件

vi /etc/sysconfig/memcached
将OPTIONS="-l 127.0.0.1,::1"改为OPTIONS=""

启动:

systemctl enable memcached.service
systemctl start memcached.service

安装etcd:

yum install etcd

修改配置文件:vi /etc/etcd/etcd.conf

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://59.64.78.64:2380"
ETCD_LISTEN_CLIENT_URLS=http://59.64.78.64:2379
ETCD_NAME="controller"ETCD_INITIAL_ADVERTISE_PEER_URLS="http://59.64.78.64:2380"
ETCD_ADVERTISE_CLIENT_URLS=http://59.64.78.64:2379
ETCD_INITIAL_CLUSTER="controller=http://59.64.78.64:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"

启动:

systemctl enable etcd
systemctl start etcd

安装OpenStack Service:需要安装 Keystone、Glance、Placement、Nova、Neutron 和 Horizon

安装keystone

创建mysql用户及库:

mysql> CREATE DATABASE keystone;
mysql> CREATE USER keystone IDENTIFIED BY 'BBDERS1@bbdops.com';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%';
mysql> FLUSH PRIVILEGES;

在test-1上安装keystone:

yum install openstack-keystone httpd mod_wsgi

修改配置文件vi /etc/keystone/keystone.conf

[Default]
admin_token = <None>[database]
connection = mysql+pymysql://keystone:BBDERS1%40bbdops.com@test-1/keystone[token]
provider = fernet

填充服务数据库:

su -s /bin/sh -c "keystone-manage db_sync" keystone

初始化Fernet密钥存储库:

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystonekeystone-manage credential_setup --keystone-user keystone --keystone-group keystone

启动keystone服务:

keystone-manage bootstrap --bootstrap-password $ADMIN_PASS \--bootstrap-admin-url http://test-1:5000/v3/ \--bootstrap-internal-url http://test-1:5000/v3/ \--bootstrap-public-url http://test-1:5000/v3/ \--bootstrap-region-id RegionOne

修改httpd配置文件:vi /etc/httpd/conf/httpd.conf
把ServerName改成自己的主机名

ServerName test-1

创建软连接:

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

启动 httpd 服务:

systemctl enable httpd.service
systemctl start httpd.service

配置环境变量(test-1,test-2):

export OS_USERNAME=admin
export OS_PASSWORD=fc05e1929b2c057a4098
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://test-1:5000/v3

使之生效

source /etc/profile

创建默认domain:

openstack domain create --description "An Example Domain" example

创建service项目:

openstack project create --domain default --description "Service Project" service


创建myproject procect:

openstack project create --domain default --description "Demo Project" myproject


创建myuser用户(password我设置的是123456):

openstack user create --domain default --password-prompt myuser


创建myrole权限:

openstack role create myrole

把 myrole 权限加入到 myproject 和 myuser 中:

openstack role add --project myproject --user myuser myrole

验证:

openstack --os-auth-url http://test-1:5000/v3 \--os-project-domain-name Default --os-user-domain-name Default \--os-project-name admin --os-username admin token issue

如果要求输入密码,就是之前设置好的OS_AUTH_URL OS_PASSWORD

再验证 myproject:

openstack --os-auth-url http://test-1:5000/v3 \--os-project-domain-name Default --os-user-domain-name Default \--os-project-name myproject --os-username myuser token issue

密码为123456

创建admin-openrc文件vi admin-openrc,然后添加如下内容

export OS_USERNAME=admin
export OS_PASSWORD=fc05e1929b2c057a4098
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://test-1:5000/v3
export OS_IDENTITY_API_VERSION=3

创建demo-openrc文件vi demo-openrc,然后添加如下内容

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=123456
export OS_AUTH_URL=http://test-1:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

使之生效. admin-openrc

请求认证token:

openstack token issue

安装Glance

在test-1上安装:

创建mysql用户及库:

mysql> CREATE DATABASE glance;
mysql> CREATE USER glance IDENTIFIED BY 'BBDERS1@bbdops.com';
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%';
mysql> FLUSH PRIVILEGES;

创建glance用户:

openstack user create --domain default --password-prompt glance

密码为GLANCE_PASS 即fc05e1929b2c057a4098.

为glance用户添加admin权限:

openstack role add --project service --user glance admin

创建glance service:

openstack service create --name glance --description "OpenStack Image" image

创建 Image service API endpoints:

openstack endpoint create --region RegionOne image public http://test-1:9292
openstack endpoint create --region RegionOne image internal http://test-1:9292
openstack endpoint create --region RegionOne image admin http://test-1:9292

安装glance组件:

yum install openstack-glance

修改文件:vi /etc/glance/glance-api.conf

[database]
connection = mysql+pymysql://glance:BBDERS1%40bbdops.com@test-1/glance[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/[keystone_authtoken]
www_authenticate_uri  = http://test-1:5000
auth_url = http://test-1:5000
memcached_servers = test-1:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = fc05e1929b2c057a4098[paste_deploy]
flavor = keystone

初始化数据库:

su -s /bin/sh -c "glance-manage db_sync" glance

启动Glance服务:

systemctl enable openstack-glance-api.service
systemctl start openstack-glance-api.service

安装Placement

在test-1上安装

创建mysql:

mysql> CREATE DATABASE placement;
mysql> CREATE USER placement IDENTIFIED BY 'BBDERS1@bbdops.com';
mysql> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%';
mysql> FLUSH PRIVILEGES;

创建用户:

openstack user create --domain default --password-prompt placement

密码为PLACEMENT_PASS 即fc05e1929b2c057a4098

添加placement service:
openstack role add --project service --user placement admin

在这里插入代码片

创建placement API entry:

openstack service create --name placement --description "Placement API" placement

创建Placement API service endpoints :

openstack endpoint create --region RegionOne placement public http://test-1:8778
openstack endpoint create --region RegionOne placement internal http://test-1:8778
openstack endpoint create --region RegionOne placement admin http://test-1:8778

安装Placement组件:

yum install openstack-placement-api

修改文件 vi /etc/placement/placement.conf

[api]
auth_strategy = keystone[keystone_authtoken]
auth_url = http://test-1:5000/v3
memcached_servers = test-1:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = fc05e1929b2c057a4098[placement_database]
connection = mysql+pymysql://placement:BBDERS1%40bbdops.com@test-1/placement

初始化数据库:

su -s /bin/sh -c "placement-manage db sync" placement

检查pip是否存在:

pip -V


如果没有上图,就现安装一个

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py

验证并安装:

placement-status upgrade check
pip install osc-placement

修改文件 vi /etc/httpd/conf.d/00-placement-api.conf
<VirtualHost *:8778> 内部加入以下代码:

<Directory /usr/bin><IfVersion >= 2.4>Require all granted</IfVersion><IfVersion < 2.4>Order allow,denyAllow from all</IfVersion></Directory>

重启httpd:

systemctl restart httpd

继续验证:

openstack --os-placement-api-version 1.2 resource class list --sort-column name
openstack --os-placement-api-version 1.6 trait list --sort-column name

安装Nova

先在test-1安装控制节点

创建mysql:

mysql> CREATE DATABASE nova_api;
mysql> CREATE DATABASE nova;
mysql> CREATE DATABASE nova_cell0;
mysql> CREATE USER nova IDENTIFIED BY 'BBDERS1@bbdops.com';
mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%';
mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%';
mysql> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%';
mysql> FLUSH PRIVILEGES;

创建nova用户:

openstack user create --domain default --password-prompt nova

密码为NOVA_PASS 即fc05e1929b2c057a4098

为nova添加admin权限:

openstack role add --project service --user nova admin

创建 nova service entity:

openstack service create --name nova --description "OpenStack Compute" compute

创建 Compute API service endpoints:

openstack endpoint create --region RegionOne compute public http://test-1:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://test-1:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://test-1:8774/v2.1

安装nova:

yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

修改文件 vi /etc/nova/nova.conf

[DEFAULT]
enabled_apis=osapi_compute,metadata
block_device_allocate_retries=300
block_device_allocate_retries_interval=3
transport_url=rabbit://openstack:fc05e1929b2c057a4098@test-1:5672/
my_ip=59.64.78.64 # 替换成自己的test-1的ip
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver[api]
auth_strategy = keystone[api_database]
connection = mysql+pymysql://nova:BBDERS1%40bbdops.com@test-1/nova_api[database]
connection = mysql+pymysql://nova:BBDERS1%40bbdops.com@test-1/nova[keystone_authtoken]
www_authenticate_uri = http://test-1:5000/
auth_url = http://test-1:5000/
memcached_servers = test-1:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = fc05e1929b2c057a4098[glance]
api_servers=http://test-1:9292[oslo_concurrency]
lock_path = /var/lib/nova/tmp[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://test-1:5000/v3
username = placement
password = fc05e1929b2c057a4098[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

初始化数据库:

su -s /bin/sh -c "nova-manage api_db sync" nova

注册cell0数据库:

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

注册cell1数据库:

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

填充nove数据库:

su -s /bin/sh -c "nova-manage db sync" nova

验证 cell0 和 cell1 是否被注册了:

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova


启动 nova:

systemctl enable \openstack-nova-api.service \openstack-nova-scheduler.service \openstack-nova-conductor.service \openstack-nova-novncproxy.service
systemctl start \openstack-nova-api.service \openstack-nova-scheduler.service \openstack-nova-conductor.service \openstack-nova-novncproxy.service

检查更新:

nova-status upgrade check


如果controller节点安装完,重新连接之后报了一大堆错误:
解决方法:yum install -y libibverbs

在test-2安装Nova计算节点

在test-2上安装:

yum install openstack-nova-compute

修改文件 vi /etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute,metadata
block_device_allocate_retries=300
block_device_allocate_retries_interval=3
transport_url=rabbit://openstack:fc05e1929b2c057a4098@test-1
my_ip=59.64.78.65 # 替换成自己的test-2的ip
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver[api]
auth_strategy = keystone[glance]
api_servers=http://test-1:9292[keystone_authtoken]
www_authenticate_uri = http://test-1:5000/
auth_url = http://test-1:5000/
memcached_servers = test-1:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = fc05e1929b2c057a4098[oslo_concurrency]
lock_path = /var/lib/nova/tmp[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://test-1:5000/v3
username = placement
password = fc05e1929b2c057a4098[vnc]
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://test-1:6080/vnc_auto.html

执行:egrep -c '(vmx|svm)' /proc/cpuinfo

如果返回0,则需要在刚才的文档里加配置:

[libvirt]
virt_type=qemu
启动 Nova 计算节点:
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

以下在test-1上执行:

. admin-openrc
openstack compute service list --service nova-compute


发现计算主机:

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

每次添加新的计算节点的时候,都要运行上述命令

验证Nova安装

openstack catalog list


openstack compute service list
nova-status upgrade check

安装Neutron

在test-1上安装控制节点

创建mysql库和用户:

mysql> CREATE DATABASE neutron;
mysql> CREATE USER neutron IDENTIFIED BY 'BBDERS1@bbdops.com';
mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%';
mysql> FLUSH PRIVILEGES;

创建neutron用户:

openstack user create --domain default --password-prompt neutron

密码为: fc05e1929b2c057a4098

添加admin权限:

openstack role add --project service --user neutron admin

创建neutron service entity:

openstack service create --name neutron --description "OpenStack Networking" network

创建 Networking service API endpoints:

openstack endpoint create --region RegionOne network public http://test-1:9696
openstack endpoint create --region RegionOne network internal http://test-1:9696
openstack endpoint create --region RegionOne network admin http://test-1:9696

安装:

yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

配置网络:vi /etc/neutron/neutron.conf

[DEFAULT]
transport_url=rabbit://openstack:fc05e1929b2c057a4098@test-1
auth_strategy = keystone
core_plugin = ml2
service_plugins =
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true[database]
connection = mysql+pymysql://neutron:BBDERS1%40bbdops.com@test-1/neutron[keystone_authtoken]
www_authenticate_uri = http://test-1:5000
auth_url = http://test-1:5000
memcached_servers = test-1:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = fc05e1929b2c057a4098[nova]
auth_url = http://test-1:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = fc05e1929b2c057a4098[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

配置ml2插件:vi /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security[ml2_type_flat]
flat_networks = provider[securitygroup]
enable_ipset = true

配置linux网桥:vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings = provider:eno1 #(这里写第一个网卡的名字)[vxlan]
enable_vxlan = true
local_ip = 192.168.229.131
l2_population = true[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

配置dhcp:vi /etc/neutron/dhcp_agent.ini

interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true

配置元数据代理:vi /etc/neutron/metadata_agent.ini

[DEFAULT]
nova_metadata_host = test-1
metadata_proxy_shared_secret = fc05e1929b2c057a4098

配置nova使用网络服务:vi /etc/nova/nova.conf

[neutron]
auth_url = http://test-1:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = fc05e1929b2c057a4098
service_metadata_proxy = true
metadata_proxy_shared_secret = fc05e1929b2c057a4098

启动neutron:

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.inisu -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutronsystemctl restart openstack-nova-api.servicesystemctl enable neutron-server.service \neutron-linuxbridge-agent.service neutron-dhcp-agent.service \neutron-metadata-agent.servicesystemctl start neutron-server.service \neutron-linuxbridge-agent.service neutron-dhcp-agent.service \neutron-metadata-agent.service

创建网络:

. admin-openrc
openstack network create  --share --external \--provider-physical-network provider \--provider-network-type flat provider

创建子网:

openstack subnet create --network provider \--allocation-pool start=59.64.78.100,end=59.64.78.200 \--dns-nameserver 8.8.8.8 --gateway 59.64.78.1 \--subnet-range 59.64.78.0/24 extent-subnet

在test-2上安装计算节点

yum install openstack-neutron-linuxbridge ebtables ipset

修改文件vi /etc/neutron/neutron.conf

[DEFAULT]
transport_url=rabbit://openstack:fc05e1929b2c057a4098@test-1
auth_strategy = keystone[keystone_authtoken]
www_authenticate_uri = http://test-1:5000
auth_url = http://test-1:5000
memcached_servers = test-1:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = fc05e1929b2c057a4098[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

修改网桥文件:vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings = provider: eno1 #(这里写第一个网卡的名字)[vxlan]
enable_vxlan = true
local_ip = 192.168.229.132
l2_population = true[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

修改nova文件:vi /etc/nova/nova.conf

[neutron]
url = http://test-1:9696
auth_url = http://test-1:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = fc05e1929b2c057a4098

重启计算服务:

systemctl restart openstack-nova-compute.service

启动网络计算服务:

systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service

验证

. admin-openrc
openstack extension list --network

查看网络节点列表:

openstack network agent list

安装Dashboard

在test-1上安装:

yum install openstack-dashboard

配置文件 vi /etc/openstack-dashboard/local_settings

OPENSTACK_HOST = "test-1"
ALLOWED_HOSTS = ['*']
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache','LOCATION': 'test-1:11211',}
}TIME_ZONE = "Asia/Shanghai"OPENSTACK_NEUTRON_NETWORK = {'enable_auto_allocated_network': False,'enable_distributed_router': False,'enable_fip_topology_check': True,'enable_ha_router': False,'enable_ipv6': True,# TODO(amotoki): Drop OPENSTACK_NEUTRON_NETWORK completely from here.# enable_quotas has the different default value here.'enable_quotas': False,'enable_rbac_policy': True,'enable_router': True,'enable_lb': False,'enable_firewall': False,'enable_vpn': False,'default_dns_nameservers': [],'supported_provider_types': ['*'],'segmentation_id_range': {},'extra_provider_types': {},'supported_vnic_types': ['*'],'physical_networks': [],}OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_API_VERSIONS = {"identity": 3,"image": 2,"volume": 2,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"WEBROOT = "/dashboard/"

vi /etc/httpd/conf.d/openstack-dashboard.conf 添加

WSGIApplicationGroup %{GLOBAL}

重启httpd和缓存服务:

systemctl restart httpd.service memcached.service

测试访问:http:test-1/dashboard
填写域名(default),用户名,密码。

创建镜像测试

下载测试镜像cirros

wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

上传到glance

openstack image create "cirros" --disk-format qcow2 --container-format bare --public < cirros-0.3.4-x86_64-disk.img

创建实例类型:
创建名为 flavor1、ID 为 1234、内存为 512MB、硬盘为 1GB、虚拟内核数量为 1 的云主机类型;

. admin-openrc
nova flavor-create flavor1 1234 512 1 1

然后从用户界面->管理员->计算->实例类型查看

创建实例 名称为kdl1:

openstack network list

找到这个id

openstack server create --flavor flavor1 --image cirros \--nic net-id=dd2affc7-7b26-46e9-af01-d5125c12c95a kdl1

总结

OpenStack的安装步骤非常多,且官方文档也不一定是完全对的(毕竟版本一直在更替,但安装文档他们可能忘记更新了),因此中间遇到问题是很正常的事情,本文也踩了不少坑,如果有一些奇奇怪怪的问题也欢迎联系,一起讨论问题并解决(当然Google一下大概率解决的更快)

OpenStack保姆级别安装教程相关推荐

  1. [黑群晖]DSM7.1 ds3617xs 志强e3 1265lv3 b85保姆级安装教程

    [黑群晖]DSM7.1 ds3617xs 志强e3 1265lv3 b85保姆级安装教程 鉴于网上几乎没有志强cpu安装的教程,我走了相当多的弯路,不一定适合你的cpu,但是有一些小问题的解决办法,可 ...

  2. Typora 保姆级安装教程

    Typora 保姆级安装教程 文章目录 Typora 保姆级安装教程 下载 安装 配置 更改配置文件 base.user.css github.css 更改设置 设置图床 用法 下载 https:// ...

  3. SpringToolSuit 保姆级安装教程

    SpringToolSuit 保姆级安装教程 介绍 下载 SpringToolSuite 下载 lombok.jar 下载 安装 设置 字体 开启智能提示 配置 maven 快捷键 介绍 Spring ...

  4. mysql5.5安装最后一步一直无反应_【MATLAB R2019b】保姆级安装教程

    点击蓝字 关注我们 一起摆摊 01 软件介绍 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析.无线通信.深度学习.图像处理与计算机视觉.信号处理.量化金融与风险管理.机器人, ...

  5. ​LaTex2023 软件下载+TeXstudio编辑器最新版+保姆级安装教程

    软件下载链接:https://pan.quark.cn/s/0713c86ba845 LaTex(Win) LaTeX,中文名为"拉泰赫",是一种基于TEX的排版系统,或者说一种排 ...

  6. 脑影像分析工具保姆级安装教程——VMware Workstation16.1.2中安装FSL6.0.3/FSL6.0.4、MRtrix3、MRIcron并修复fsleyes not found

    | 图源   之前写过三篇关于FSL安装的文章,包括简易安装.docker下完整安装,Linux下完整安装,这篇在VMware Workstation16.1.2中安装,算是之前的各种安装方法的一个集 ...

  7. OpenStack newton版安装教程(4)——Neutron部分

    Neutron涉及到了网络配置,是OpenStack平台中最复杂的一个组件,配置文件最多.Neutron本身支持多种plugin,每种plugin又有多种agent可以使用,而每一种agent的配置方 ...

  8. Yunzai-Bot(云崽) | Linux Docker保姆级安装教程

    看了很多网上讲解的云崽,都感觉没有完全讲清楚Linux用户使用docker方法(windows我没咋用过,这里windows怎么套娃我就不说了) 而且官方文档内的docker脚本中gitee内部三个j ...

  9. windows 10 HBase保姆级安装教程

    写在前面 不少小伙伴在学习分布式数据库时上来就卡在了分布式数据库HBase的安装和环境配置,所谓磨刀不误砍柴工,今天我就带着大家一起来看看HBase的安装吧~ 准备工作 主要需要4个软件包(其中HDF ...

最新文章

  1. git: No refs in common and none specified; doing no
  2. 研究生再次大幅扩招!高校能否承载?教育部最新表态来了
  3. IntelliJ IDEA自动导入包去除星号(import xxx.*)
  4. C# 使用反射设置某个对象的属性或读取某个对象的属性
  5. ML之ECS:利用ECS的PAI进行傻瓜式操作机器学习的算法
  6. 为Web程序员解毒:9个IE常见Bug的解决方案
  7. Enterprise Library访问Access数据库
  8. 你见过哪些令你瞠目结舌的 JavaScript 代码技巧?
  9. bootstrap之项目一的填坑
  10. 小程序-时间管理工具
  11. (转)JS页面间传值
  12. meterpreter 监控桌面命令(screenshare)
  13. 产品经理必看书籍推荐
  14. c语言陈湘骥答案,c语言程序设计教程陈湘骥答案
  15. 迅睿CMS插件自动采集伪原创免费插件
  16. 008高级用法markdown编写幻灯片
  17. 人工智能真的要取代人类了?
  18. Linksys WRT54G 路由器溢出漏洞分析—— 运行环境修复
  19. HDU 2072 单词数 Trie 如何debug一颗Trie
  20. 全国计算机noi,【坑爹】中国计算机学会关于CCF NOI省内选拔的若干规定

热门文章

  1. 前端面试题--详解flex
  2. winform Dev GridView 控件常用属性总结
  3. 如何在 Mac 上查看显示刷新率
  4. 信息安全CISP认证-大家关心哪些问题?
  5. 饿了么UI/element Popconfirm气泡确认框 confirm事件
  6. React 源码学习
  7. java操作pdf制作电子签章
  8. 停车场管理系统(数据库)
  9. 黑科技!!你想要的它都有!!
  10. 风速与风力等级关系 Python