您好,登录后才能下订单哦!
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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。