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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。