CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan)

CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan,附上个节点的配置文件)

实验环境准备:

为了更好的实现分布式mitaka版本的效果。我才有的是VMware的workstations来安装三台虚拟机,分别来模拟openstack的controller节点 compute节点和cinder节点。(我的宿主机配置为 500g 硬盘 16g内存,i5cpu。强烈建议由条件的朋友将内存配置大一点,因为我之前分配的2g太卡。)

注意:要实验kvm虚拟机,在vmware里面启动虚拟机之前开启cpu虚拟化可以在开机之后输入:

egrep -c ‘(vmx|svm)‘ /proc/cpuinfo

查看。Vmwar如何开启:

具体配置开始:

Controller节点: 2cpu +4gram+50gdisk+2nic(192.168.1.182(桥接)+192.168.8.183(nat))

compute节点: 2cpu +4gram+50gdisk+2nic(192.168.1.183(桥接)+192.168.8.183(nat))

cinder节点: 1cpu +1gram+10gdisk+20gdisk(次硬盘为安装完成之后添加,不要岁系统添加到lvm,如果手动分区就可以随虚拟机一起安装,安装cinder的磁盘,一点要干净的磁盘,要不然会报错(楼主在这个问题上面哭了半天才发现))+2nic(192.168.1.184(桥接)+192.168.8.184(nat))

现在正是开始:

一.  所有节点都要安装和配置的基础环境

  1. 系统安装完成之后,所有节点关掉防火墙,关掉selinux,设置好root密码

systemctl stop firewalld.service

vi /etc/sysconfig/selinux 将enforce改成disabled

设置好root密码:我的root密码同意设置为adm*123,为了方便和不出差错,我将以后的数据库的密码和keystone ,glance,rabbitmq,nova,cinder的密码都设置为adm*123

  1. 所有节点添加主机名解析
  2. 设置主机名:

Controller节点:hostnamectl set-hostname controller

Compute 节点:hostnamectl set-hostname compute

Cinder    节点:hostnamectlset-hostname cinder

  1. 登录到每个节点将主机名添加解析:

vi /etc/hosts加入:

3    添加时间同步

在controller节点:

          yum install chrony –y

配置时间同步:

vi  /etc/chrony.conf加入:

server time.windows.com iburst

设置开机启动以及启动chronyd

systemctl enable chronyd.service
systemctl start chronyd.service

在compute和cinder节点:

yum install chrony -y

vi  /etc/chrony.conf加入:

server controller iburst

设置开机启动以及启动chronyd:

systemctl enable chronyd.service
systemctl start chronyd.service

5.配置openstack mitaka的yum源和安装基础软件包(所有节点都需要)

安装yum源:

   yum install centos-release-openstack-mitaka -y

在主机上更新软件包和内核:

yum upgrade

安装OpenStackclient:

yum install python-openstackclient -y

如果你开起了selinux可以安装openstack-selinux,如果关掉了就不要安装。我们这里选择不安装。如果需要在安装直接运行:

yum install openstack-selinux

二.我的计划是在controller节点上面安装mysql,rabbitmq,keystone,glance,nova-api等

1. 下面安装mysql(记住在controller节点上面):

安装mysql:

yum install mariadb mariadb-server python2-PyMySQL -y

配置:

vi/etc/my.cnf 加入:

bind-address= 192.168.1.182

default-storage-engine= innodb

innodb_file_per_table

max_connections= 4096

collation-server= utf8_general_ci

character-set-server= utf8

配置开机启动和启动mysql:
 systemctl enable mariadb.service

systemctl start mariadb.service

设置密码:

mysql_secure_installation

按照操作一步一步完成即可,都是傻瓜式的操作,我的设置为amd*123

2 .安装rabbitmq(个个服务之间的节点的通讯服务)

安装软件:

yum install rabbitmq-server

启动服务:

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

创建rabbitmq用户openstack并设置密码为adm*123

rabbitmqctl add_user openstack adm*123

给刚刚创建的openstack用户授权:

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

3.安装memcache

安装:

yum install memcached python-memcached

启动服务:

systemctl enable memcached.service
systemctl start memcached.service

3        安装keystone(认证服务)

创建keystone的数据库:

登录数据库:mysql –uroot –padm*123然后执行:

CREATE DATABASE keystone;

授权keystone用户:

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘localhost‘ \
  IDENTIFIED BY ‘adm*123‘;
GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone‘@‘%‘ \
  IDENTIFIED BY ‘adm*123‘;

生成admin的token的随机码:

openssl rand -hex 10

copy下来这个值,到时候会配置keystone的配置文件里面。

安装keystone的相关软件:

yum install openstack-keystone httpd mod_wsgi -y

修改配置文件:

[DEFAULT]
...
admin_token = 刚刚生成的随机数

数据库连接:

[database]
...
connection = mysql+pymysql://keystone:adm*[email protected]/keystone

打开token:

[token]
...
provider = fernet

保存退出之后,同步数据库

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

初始化fernet key:

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置httpd服务:

vi/etc/httpd/conf/httpd.conf

修改ServerName

ServerName controller

在/etc/httpd/conf.d/下增加 wsgi的conf文件:

vi/etc/httpd/conf.d/wsgi-keystone.conf 加入下面内容:

Listen5000
Listen35357
 
<VirtualHost*:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorizationOn
    ErrorLogFormat"%{cu}t %M"
    ErrorLog/var/log/httpd/keystone-error.log
    CustomLog/var/log/httpd/keystone-access.log combined
 
    <Directory/usr/bin>
        Requireall granted
    </Directory>
</VirtualHost>
 
<VirtualHost*:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorizationOn
    ErrorLogFormat"%{cu}t %M"
    ErrorLog/var/log/httpd/keystone-error.log
    CustomLog/var/log/httpd/keystone-access.log combined
 
    <Directory/usr/bin>
        Requireall granted
    </Directory>
</VirtualHost>

保存退出。

启动httpd服务:

systemctl enable httpd.service
systemctl start httpd.service
  1. 1   创建service和endpoint:

配置授权的token

exportOS_TOKEN=生成的随机数

配置endpoint的url:

exportOS_URL=http://controller:35357/v3

配置api的版本:

exportOS_IDENTITY_API_VERSION=3

创建认证服务:

openstack service create \
  --name keystone --description "OpenStack Identity" identity

创建认证服务器的api 的endpoint:

 
openstack endpoint create --region RegionOne \
  identity public http://controller:5000/v3
 
openstack endpoint create --region RegionOne \
  identity internal http://controller:5000/v3
 
openstack endpoint create --region RegionOne \
  identity admin http://controller:35357/v3
 

创建域,项目,用户,角色:

创建default域:

openstack domain create --description "Default Domain" default

创建admin项目:

openstack project create --domain default \
  --description "Admin Project" admin

创建admin用户:

openstack user create --domain default \
  --password-prompt admin

提示输入密码,我们都输入adm*123

创建admin的角色:

openstack role create admin

将admin用户添加到admin这个角色和项目里面:

openstack role add --project admin --user admin admin

确认操作:

如果出现以下结果,代表上面的操作没有问题,如果有问题,请返回检查:

取消环境变量;

unset OS_TOKEN OS_URL

执行:admin user,如果有返回这个成功:

openstack --os-auth-url http://controller:35357/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name admin --os-username admin token issue

如果adm*123 ,看返回结果

我的返回结果:

创建admin 管理用户和demo普通用户的环境脚本:

我的admin脚本内容:

我的demo脚本内容:

直接执行

. admin-openrc

然后运行:

openstack token issue

就可以反正相同结果。

三. 安装glance(镜像服务)

登录数据库创建glance数据库:

mysql -u root –padm*123

创建glance数据库:

CREATE DATABASE glance;

授权:

GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘localhost‘ \
  IDENTIFIED BY ‘adm*123‘;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘%‘ \
  IDENTIFIED BY ‘adm*123‘;

退出mysql端。

创建glance的用户,加入到admin组,创建image服务,创建endpoint。

. admin-openrc

创建用户和添加角色:

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

密码:adm*123

添加角色:

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

创建服务:

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

创建endpoint:

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

配置:

vi /etc/glance/glance-api.conf

直接到database配置:

[database]
...
connection = mysql+pymysql://glance:adm*[email protected]/glance
找到keystone_authtoken:
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = adm*123

找到paste_deploy:

[paste_deploy]
...
flavor = keystone

配置glance_store:

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

配置glance-registry

vi /etc/glance/glance-registry.conf

[database]
...
connection = mysql+pymysql://glance:adm*[email protected]/glance

配置:[keystone_authtoken]  [paste_deploy]:

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = adm*123
 
[paste_deploy]
...
flavor = keystone

保存退出。

同步数据库:

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

启动服务:

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

确认glance操作:

下载测试镜像:

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

执行环境变量:

. admin-openrc

上传镜像到glance:

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

上传完成之后查看:

openstack image list

你可以看到你刚刚长传完成的镜像,我上传了几个镜像。我的输出:

五 在controller节点安装计算服务

登录数据库,创建nova,nova_api数据库。

mysql -u root –padm*123

创建数据库:

CREATE DATABASE nova_api;
CREATE DATABASE nova;

授权:

GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova‘@‘localhost‘ \
  IDENTIFIED BY ‘adm*123‘;
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova‘@‘%‘ \
  IDENTIFIED BY ‘ adm*123‘;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova‘@‘localhost‘ \
  IDENTIFIED BY ‘ adm*123‘;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova‘@‘%‘ \
  IDENTIFIED BY ‘ adm*123‘;

创建nova用户,角色,服务,endpoint(跟上面类似)

执行环境变量:

. admin-openrc

创建用户,密码adm*123

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

加入角色:

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

创建compute服务:

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

创建endpoint:

openstack endpoint create --region RegionOne \
  compute public http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  compute internal http://controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  compute admin http://controller:8774/v2.1/%\(tenant_id\)s

安装软件:

yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler -y

配置nova.conf

vi /etc/nova/nova.conf

[DEFAULT]
...
enabled_apis = osapi_compute,metadata
[api_database]
...
connection = mysql+pymysql://nova:adm*[email protected]/nova_api
 
[database]
...
connection = mysql+pymysql://nova:adm*[email protected]/nova
[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.1.182
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = adm*123
[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[glance]
...
api_servers = http://controller:9292
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

保存之后退出。

同步数据库:

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

启动服务:

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

六 在compute点安装compute服务

安装软件:

yum install openstack-nova-compute -y

配置nova.conf

vi /etc/nova/nova.conf

[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.1.183
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = adm*123
[vnc]
...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
[glance]
...
api_servers = http://controller:9292
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

保存退出。

启动服务:

systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

计算节点安装完毕之后,回到controller节点确认操作是否正确:

执行环境变量:

. admin-openrc

查看计算服务:

openstack compute service list

我的输出:

七 安装neutron服务(网络服务)

在controller节点安装neutron:

创建neutron数据库(方法同上):

mysql -u root –padm*123

创建数据库并授权:

CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron‘@‘localhost‘ \
  IDENTIFIED BY ‘adm*123‘;
GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron‘@‘%‘ \
  IDENTIFIED BY ‘adm*123‘;

创建用户(密码adm*123),角色,服务和endpoint:

执行环境变量:

. admin-openrc

创建用户(密码adm*123)

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

角色:

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

服务:

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

Endpoint:

openstack endpoint create --region RegionOne \
  network public http://controller:9696
openstack endpoint create --region RegionOne \
  network internal http://controller:9696
openstack endpoint create --region RegionOne \
  network admin http://controller:9696

我们这里的网络我打算建立vxlan,执行如下操作:

安装软件:

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

配置/etc/neutron/neutron.conf:

[database]
...
connection = mysql+pymysql://neutron:adm*[email protected]/neutron
[DEFAULT]
...
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
rpc_backend = rabbit
auth_strategy = keystone
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = adm*123
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = adm*123
[nova]
...
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = adm*123
[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp

配置ml2:

vi /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
...
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
flat_networks = provider
vni_ranges = 1:1000
enable_ipset = True

我的配置:

配置linux briadge agent:

vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings=provider:eno33554960
 
[vxlan]
enable_vxlan=True
local_ip=OVERLAY_INTERFACE_IP_ADDRESS
l2_population=True
[securitygroup]
...
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

我的配置:

配置l3_agent:

vi /etc/neutron/l3_agent.ini

[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =

配置dhcp agent:

vi  /etc/neutron/dhcp_agent.ini

[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True

配置metadata agent:

vi  /etc/neutron/metadata_agent.ini

[DEFAULT]
...
nova_metadata_ip = controller
metadata_proxy_shared_secret = adm*123

配置nova使用neutron:

vi   /etc/nova/nova.conf

[neutron]
...
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = adm*123
 
service_metadata_proxy = True
metadata_proxy_shared_secret = adm*123

保存退出。

创建软连接:

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

同步数据库:

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

启动服务:

systemctl restart openstack-nova-api.service
systemctl enable neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service
systemctl start neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service
systemctl enable neutron-l3-agent.service
systemctl start neutron-l3-agent.service

在compute节点安装neutron:

yum install openstack-neutron-linuxbridge ebtables ipset -y

配置/etc/neutron/neutron.conf

[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = adm*123
[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp

配置:/etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings=provider:eno33554960
[vxlan]
enable_vxlan=True
local_ip=192.168.1.183
l2_population=True
[securitygroup]
...
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

我的配置:

配置nova使用neutron:

配置/etc/nova/nova.conf

[neutron]
...
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = adm*123

保存退出。

启动服务:

systemctl restart openstack-nova-compute.service
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service

回到controller节点确认操作:
执行环境变量:

. admin-openrc

执行:

neutron ext-list

我的输出:

八 安装dashboard

我的dashboard安装在controller节点上。

安装软件:

yum install openstack-dashboard -y

配置/etc/openstack-dashboard/local_settings

OPENSTACK_HOST="controller"
ALLOWED_HOSTS=[‘*‘, ]
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache‘
 
CACHES = {
    ‘default‘: {
         ‘BACKEND‘: ‘django.core.cache.backends.memcached.MemcachedCache‘,
         ‘LOCATION‘: ‘controller:11211‘,
    }
}
OPENSTACK_KEYSTONE_URL="http://%s:5000/v3" % OPENSTACK_HOST
PENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True
OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 2,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="default"
OPENSTACK_KEYSTONE_DEFAULT_ROLE="user"
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"

保存退出。

启动服务:

systemctl restart httpd.service memcached.service

这个时候可以通过网络访问openstack了。

注意:现在只是可以通过openstack访问虚拟机了,但是不能安装虚拟机,没有安装cinder,所以我们接下来安装cinder。

九 安装cinder(存储)

在controller节点上执行如下操作:

创建cinder数据库,并授权:

mysql -u root –padm*123

创建数据库:

CREATE DATABASE cinder;

授权:

GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘localhost‘ \
  IDENTIFIED BY ‘adm*123‘;
GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘%‘ \
  IDENTIFIED BY ‘adm*123‘;

创建用户,角色,服务,endpoint:

. admin-openrc

用户密码为adm*123:

openstack user create --domain default --password-prompt cinder
openstack role add --project service --user cinder admin
openstack service create --name cinder \
  --description "OpenStack Block Storage" volume
openstack service create --name cinderv2 \
  --description "OpenStack Block Storage" volumev2
openstack endpoint create --region RegionOne \
  volume public http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volume internal http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volume admin http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volumev2 public http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

安装软件:

yum install openstack-cinder -y

配置/etc/cinder/cinder.conf

[database]
...
connection = mysql+pymysql://cinder:adm*[email protected]ller/cinder
[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.1.182
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = adm*123
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = adm*123
[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp

保存退出。

同步数据库:

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

配置nova使用cinder:

配置/etc/nova/nova.conf

[cinder]
os_region_name=RegionOne

保存退出。

启动服务:

systemctl restart openstack-nova-api.service
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

十. 在cinder节点配置cinder

安装lvm(一般都系统自带了)

yum install lvm2
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service

创建pv和vg组,这个时候就要用到我们添加的那个干净的磁盘了,可以使用fdisk –l 查看,我这儿使用的sdc(一定要干净的磁盘,我在这里爬坑的时候你们一定在笑)

pvcreate /dev/sdc

创建组:

vgcreate cinder-volumes /dev/sdc

配置lvm的权限:

配置/etc/lvm/lvm.conf,添加

找到devices组添加:
说明:我的是sda,sdb,全部都是lvm卷,所以要全部添加

filter= [ "a/sda/", "a/sdb/","a/sdc/","r/.*/"]

安装软件:

yum install openstack-cinder targetcli python-keystone -y

配置/etc/cinder/cinder.conf

[database]
...
connection = mysql+pymysql://cinder:adm*[email protected]/cinder
[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.1.184
enabled_backends = lvm

在文档末尾加入:

[lvm]
...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp

启动服务:

systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service

确认操作:

在controller节点:

. admin-openrc
cinder service-list

看输出结果

我的结果为:

到现在为止,我们可以创建虚拟机。

再次之前我们需要创建vxlan。

步骤如下:

创建provider网络:

neutron--debug net-create --shared provider --router:external True--provider:network_type flat --provider:physical_network provider

创建子网,floatip使用:

neutronsubnet-create provider 192.168.1.0/24 --name public-sub --allocation-poolstart=192.168.1.210,end=192.168.1.220 --dns-nameserver 61.139.2.69 --gateway192.168.1.1

创建vxlan私网:

neutronnet-create private --provider:network_type vxlan --router:external False--shared

创建子网:

neutron subnet-create private --nameinternal-subnet --gateway 192.168.13.1 192.168.13.0/24

由于我做这个时候没有截图,所以截图使用来自网上,请谅解:

创建了网络之后创建路由,虚拟机才可以通网。

在dashboard里面点击项目—网络—路由—新建路由即可。

到此你可以上传你制作好的镜像,创建你的虚拟机了(镜像可以在晚上去下载,也可以自己制作,网上的大神多得很 哈哈)。

最后总结一下自己遇到的问题:

  1. 在cinder的时候遇到这种错误(所以服务正常):

2016-10-2712:53:33.077 76504 ERROR cinder.scheduler.flows.create_volume[req-1d9179f3-913c-4e72-a357-437ed4ed3c2d 3da30194de374868990d83f474149ae663ed5b1babb74b3080f90a365efbcb84 - - -] Failed to run taskcinder.scheduler.flows.create_volume.ScheduleCreateVolumeTask;volume:create: Novalid host was found. No weighed hosts available

最后是新加一个干净的磁盘,重新配置解决。

  1. 在nova和neutron的时候,出现401的授权错误
  2. 查看日志
  3. 查看配置文件
  4. 删除用户,重新建立

我的属于第三种,没有任何问题,就是删除之后,重新建立解决。

3  在安装虚拟的时候不要使用iso文件去安装,一定要自己制作的镜像(不知道的可以网上找,多得你数不清),我使用centos7dvd版本的iso安装文件去安装,始终没有办法进入系统,安装完成之后重启还是进入安装界面。

附上我的dashboard的几个截图:

最后附上所有节点的配置文件。如有错误请指正交了 [email protected]

时间: 2024-10-05 04:45:16

CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan)的相关文章

Centos7手动安装OpenStack Mitaka版本--基本环境安装

Centos7手动安装OpenStack Mitaka版本--第一节:基本环境配置 一台控制节点 controller_ip=10.1.1.160 controller_ip2=192.168.13.147 一台计算节点 compute_ip=10.1.1.162 compute_ip2=192.168.13.144 hosts文件配置 [[email protected] ~]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomai

Genymotion配置及使用教程(最新最完整版附各部分下载地址)

Genymotion配置及使用教程(最新最完整版附各部分下载地址) FROM:http://blog.csdn.net/beiminglei/article/details/13776013 早都听说了Genymotion好用,今天才抽空把他配置出来,过程算是很曲折啊,不过好在完成了.而且我发现网上的教程都不怎么全,我还是找了好几篇文章才把他完整的配置出来,这篇是我从下载到项目运行成功的所有过程,希望对大家有所帮助.闲话到此结束. 首先第一步:注册Genymotion账号,要记下账号密码后面使用

openstack 之fuel 9 安装 Openstack Mitaka 版本

2015年上半年曾经在原单位安装过openstack juno版本,使用的是Mirantis公司的fuel自动化部署工具,很好用.已经很久没有关注openstack了,版本到现在为止已经到了Newton了,上一个版本是Mitaka,今天我要做的实验就是使用fuel 9 安装Mitaka版本. 我的笔记本的配置是intel i5,4核,8G,win10 64位家庭版. 首先到Mirantis官网下载fuel的安装镜像ISO: https://www.mirantis.com/software/mi

在centos7上安装openstack mitaka版本

前言:openstack真是一个庞然大物,想要吃透还真不容易,所以在对openstack大概有了一个了解的时候,就应该是部署,虽然openstack的安装方式有rdo或者devstack等一键安装工具,但是最好浅尝辄止,有了大概的使用经验之后就应该是从头到尾的安装一遍了,不然对于那些报错,以及故障的解决一定是不够气定神闲的,因此,当你有了openstack的基本认识后,开始安装吧~ 注:openstack的官方文档写得真的是,好的不要不要的,但是看英文总是感觉有点不溜,因此在官方文档的基础上写得

Fuel 5.1安装openstack I版本环境 (ESXi)

Fuel 简介 Fuel是Mirantis公司开发的部署openstack集群工具,主要功能为裸机PXE安装操作系统,master节点提供DHCP. TFTP服务,能够实现openstack服务编排,通过puppet进行配置服务管理,此外还提供了openstack关键服务的健康检查和log实时 查看等基础运维服务.支持openstack服务HA部署,有比较友好的交互式的web界面. 使用Fuel 5.1 安装openstack Icehouse版本 环境介绍 本次环境搭建硬件采用一台通用服务器,

Alien Skin Exposure v6.x 最新通用完整版汉化补丁

    完整汉化版说明: 我于2014-06-19上传的"Alien Skin Exposure 6.x 通用汉化补丁",有些网友反映预设不能显示中文,调查了一下:预设能显示中文的,操作系统基本上是完整版,精简版.克隆版的系统由于被精简了某些文件,所有不能正常显示.为了这些朋友能正常使用,我把汉化包重新编辑了一下,在几个不同操作系统的电脑上做了实验,全部通过.这次保你满意,祝你成功! Alien Skin Exposure v6.0 是一款专业的PS胶片调色滤镜软件,使用Alien S

凯文&#183;凯利最新演讲完整版:未来的十二个趋势

凯文·凯利最新演讲完整版:未来的十二个趋势 凯文·凯利(KK)<连线>(Wired)杂志创始主编.著有<失控>.<科技想要什么>.<技术元素>.<必然>. KK在深圳分享了未来将发生的十二个趋势: 一.所有的产业都在向分散式结构靠拢 1.“个体专家”分散式: 世界正在发生着翻天覆地的变化,在变动和未知的情况下,就没有所谓的专家了,每一个人都可以做出一些变革和创新,也就都有可能成为专家. 2.企业组织结构分散式: 层级化结构变成分散式的网络结构是一

教您怎样破解无线路由器密码最新教程完整版

随着网络技术的飞速发展,越来越多的路由交换设备开始抛弃使用命令行配置界面而转向图形化设置界面.然而这种转变却给入侵者带来了机会,传统命令行界面下 的攻击与入侵相对来说比较困难,因为命令行界面开放的服务与端口有限,而在图形化界面下不管是登录方式还是管理模式都与命令行界面有很大的区别.下面将来 给大家叙述无线路由器密码破解最新教程完整版. 方法/步骤 1 第一步:使用T400笔记本针对当前环境下无线网络信号进行扫描,如果周围有信号而且没有经过任何加密验证的话,我们就可以轻松连接到该网络. 2 第二步

CENTOS7.2使用RDO方式安装OpenStack Mitaka笔记

1.配置/etc/hosts 192.168.13.108 openstack 2.配置OpenStack Mitaka安装源 [[email protected] ~]# sudo yum install -y centos-release-openstack-mitaka [[email protected] ~]# yum clean all; yum makecache; yum update 3.安装packstack,开始安装OpenStack [[email protected]