您好,登录后才能下订单哦!
OpenStack是一个开源的云计算平台,旨在提供基础设施即服务(IaaS)的解决方案。它由一系列相互关联的项目组成,每个项目负责不同的功能模块,如计算、存储、网络等。OpenStack的Train版本是其第20个版本,于2019年10月发布。本文将详细介绍如何在Train版本上搭建OpenStack云平台,并准备基础环境。
OpenStack是一个由NASA和Rackspace合作研发的开源云计算平台,旨在为公共云和私有云提供可扩展的、灵活的云计算解决方案。OpenStack由多个组件组成,每个组件负责不同的功能模块,如计算(Nova)、存储(Cinder、Swift)、网络(Neutron)、身份认证(Keystone)等。
OpenStack Train版本引入了许多新特性和改进,主要包括:
在搭建OpenStack云平台之前,需要确保硬件资源满足最低要求。以下是一个典型的硬件配置:
在搭建OpenStack之前,需要进行详细的网络规划。通常,OpenStack的网络分为以下几种:
   sudo apt-get update && sudo apt-get upgrade -y
curl、wget、vim等。   sudo apt-get install -y curl wget vim
   sudo vim /etc/network/interfaces
示例配置:
   auto eth0
   iface eth0 inet static
       address 192.168.1.10
       netmask 255.255.255.0
       gateway 192.168.1.1
   auto eth1
   iface eth1 inet static
       address 10.0.0.10
       netmask 255.255.255.0
   auto eth2
   iface eth2 inet static
       address 172.16.0.10
       netmask 255.255.255.0
   sudo systemctl restart networking
   sudo apt-get install -y ntp
   sudo vim /etc/ntp.conf
示例配置:
   server 0.ubuntu.pool.ntp.org
   server 1.ubuntu.pool.ntp.org
   server 2.ubuntu.pool.ntp.org
   server 3.ubuntu.pool.ntp.org
   sudo systemctl restart ntp
   sudo apt-get install -y mysql-server
   sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
示例配置:
   [mysqld]
   bind-address = 192.168.1.10
   default-storage-engine = innodb
   innodb_file_per_table = on
   max_connections = 4096
   collation-server = utf8_general_ci
   character-set-server = utf8
   sudo systemctl restart mysql
   mysql -u root -p
示例SQL语句:
   CREATE DATABASE keystone;
   CREATE DATABASE glance;
   CREATE DATABASE nova;
   CREATE DATABASE neutron;
   CREATE DATABASE cinder;
   sudo apt-get install -y rabbitmq-server
   sudo vim /etc/rabbitmq/rabbitmq.conf
示例配置:
   default_user = openstack
   default_pass = password
   sudo systemctl restart rabbitmq-server
   sudo apt-get install -y keystone
   sudo vim /etc/keystone/keystone.conf
示例配置:
   [DEFAULT]
   admin_token = ADMIN_TOKEN
   [database]
   connection = mysql+pymysql://keystone:password@192.168.1.10/keystone
   [token]
   provider = fernet
   sudo su -s /bin/sh -c "keystone-manage db_sync" keystone
   sudo systemctl restart apache2
   sudo apt-get install -y glance
   sudo vim /etc/glance/glance-api.conf
示例配置:
   [DEFAULT]
   registry_host = 192.168.1.10
   [database]
   connection = mysql+pymysql://glance:password@192.168.1.10/glance
   [keystone_authtoken]
   auth_uri = http://192.168.1.10:5000
   auth_url = http://192.168.1.10:35357
   memcached_servers = 192.168.1.10:11211
   auth_type = password
   project_domain_name = default
   user_domain_name = default
   project_name = service
   username = glance
   password = password
   [paste_deploy]
   flavor = keystone
   sudo su -s /bin/sh -c "glance-manage db_sync" glance
   sudo systemctl restart glance-api
   sudo apt-get install -y nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler
   sudo vim /etc/nova/nova.conf
示例配置:
   [DEFAULT]
   enabled_apis = osapi_compute,metadata
   transport_url = rabbit://openstack:password@192.168.1.10
   my_ip = 192.168.1.10
   use_neutron = True
   firewall_driver = nova.virt.firewall.NoopFirewallDriver
   [api]
   auth_strategy = keystone
   [database]
   connection = mysql+pymysql://nova:password@192.168.1.10/nova
   [keystone_authtoken]
   auth_uri = http://192.168.1.10:5000
   auth_url = http://192.168.1.10:35357
   memcached_servers = 192.168.1.10:11211
   auth_type = password
   project_domain_name = default
   user_domain_name = default
   project_name = service
   username = nova
   password = password
   [vnc]
   enabled = True
   vncserver_listen = 192.168.1.10
   vncserver_proxyclient_address = 192.168.1.10
   [glance]
   api_servers = http://192.168.1.10:9292
   [oslo_concurrency]
   lock_path = /var/lib/nova/tmp
   sudo su -s /bin/sh -c "nova-manage api_db sync" nova
   sudo su -s /bin/sh -c "nova-manage db sync" nova
   sudo systemctl restart nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler
   sudo apt-get install -y neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
   sudo vim /etc/neutron/neutron.conf
示例配置:
   [DEFAULT]
   core_plugin = ml2
   service_plugins = router
   allow_overlapping_ips = True
   transport_url = rabbit://openstack:password@192.168.1.10
   auth_strategy = keystone
   notify_nova_on_port_status_changes = True
   notify_nova_on_port_data_changes = True
   [database]
   connection = mysql+pymysql://neutron:password@192.168.1.10/neutron
   [keystone_authtoken]
   auth_uri = http://192.168.1.10:5000
   auth_url = http://192.168.1.10:35357
   memcached_servers = 192.168.1.10:11211
   auth_type = password
   project_domain_name = default
   user_domain_name = default
   project_name = service
   username = neutron
   password = password
   [nova]
   auth_url = http://192.168.1.10:35357
   auth_type = password
   project_domain_name = default
   user_domain_name = default
   region_name = RegionOne
   project_name = service
   username = nova
   password = password
   [oslo_concurrency]
   lock_path = /var/lib/neutron/tmp
   sudo vim /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
   [ml2_type_flat]
   flat_networks = provider
   [ml2_type_vxlan]
   vni_ranges = 1:1000
   [securitygroup]
   enable_ipset = True
   sudo vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
示例配置:
   [linux_bridge]
   physical_interface_mappings = provider:eth1
   [vxlan]
   enable_vxlan = True
   local_ip = 192.168.1.10
   l2_population = True
   [securitygroup]
   enable_security_group = True
   firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
   sudo vim /etc/neutron/dhcp_agent.ini
示例配置:
   [DEFAULT]
   interface_driver = linuxbridge
   dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
   enable_isolated_metadata = True
   sudo vim /etc/neutron/metadata_agent.ini
示例配置:
   [DEFAULT]
   nova_metadata_host = 192.168.1.10
   metadata_proxy_shared_secret = password
   sudo 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
   sudo systemctl restart neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
   sudo apt-get install -y cinder-api cinder-scheduler
   sudo vim /etc/cinder/cinder.conf
示例配置:
   [DEFAULT]
   transport_url = rabbit://openstack:password@192.168.1.10
   auth_strategy = keystone
   my_ip = 192.168.1.10
   enabled_backends = lvm
   [database]
   connection = mysql+pymysql://cinder:password@192.168.1.10/cinder
   [keystone_authtoken]
   auth_uri = http://192.168.1.10:5000
   auth_url = http://192.168.1.10:35357
   memcached_servers = 192.168.1.10:11211
   auth_type = password
   project_domain_name = default
   user_domain_name = default
   project_name = service
   username = cinder
   password = password
   [lvm]
   volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
   volume_group = cinder-volumes
   iscsi_protocol = iscsi
   iscsi_helper = tgtadm
   [oslo_concurrency]
   lock_path = /var/lib/cinder/tmp
   sudo su -s /bin/sh -c "cinder-manage db sync" cinder
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。