控制节点
安装软件包
[root@controller ~]# yum install openstack-neutron openstack-neutron-ml2 \
> openstack-neutron-linuxbridge ebtables
安装完成配置文件
[root@controller ~]# vim /etc/neutron/neutron.conf
[database]
connection = mysql+pymysql://neutron:neutron@controller/neutron
[DEFAULT]
core_plugin = ml2
service_plugins = router ##打开路由
allow_overlapping_ips = true ##重叠ip地址
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[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 = neutron
[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 = nova
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
再改变ml2网络的配置
[root@controller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan ##网络类型
tenant_network_types = vxlan ##启动vxlan的私有网络
mechanism_drivers = linuxbridge,l2population ##l2population二层机制
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vxlan] ##网络标示,创建私有网络的范围
vni_ranges = 1:1000
[securitygroup]
enable_ipset = true
配置桥接配置
[root@controller ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:eth0
[vxlan]
enable_vxlan = true ##打开vxlan
local_ip = 192.168.223.11 ##本地ip
l2_population = true ##打开二层网络
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置三层代理
[root@controller ~]# vim /etc/neutron/l3_agent.ini
[DEFAULT]
interface_driver = linuxbridge
配置DHCP
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
重启配置服务以及l3网络
[root@controller ~]# systemctl restart neutron-server.service \
> neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
> neutron-metadata-agent.service
[root@controller neutron]# systemctl start neutron-l3-agent.service
计算节点
安装软件包
[root@compute1 ~]# yum install openstack-neutron-linuxbridge ebtables ipset
配置桥接
[root@compute1 ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:eth0
[vxlan]
enable_vxlan = true
local_ip = 192.168.223.12
l2_population = true
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
重启配置服务
[root@compute1 ~]# systemctl restart neutron-linuxbridge-agent.service
以管理员身份查看服务是否开启
[root@controller ~]# neutron agent-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| id | agent_type | host | availability_zone | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| 0cc970df-bfb1-477e-8947-cc3aae4b4482 | L3 agent | controller | nova | :-) | True | neutron-l3-agent |
| 1288a1c7-ce05-444f-bb3d-d788cd706b0a | DHCP agent | controller | nova | :-) | True | neutron-dhcp-agent |
| 5560bd39-d210-4b1f-83a1-5e0981bb3906 | Metadata agent | controller | | :-) | True | neutron-metadata-agent |
| cb7fa296-8a57-4c9a-8178-6793f30fa198 | Linux bridge agent | controller | | :-) | True | neutron-linuxbridge-agent |
| feaec4ad-a30c-413e-9ebf-d0104dd79de7 | Linux bridge agent | compute1 | | :-) | True | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
重启完成后将之前修改的local_settings文件再进行修改
[root@controller ~]# cd /etc/openstack-dashboard
[root@controller openstack-dashboard]# vim local_settings
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
'enable_quotas': True,
'enable_ipv6': True,
'enable_distributed_router': True,
'enable_ha_router': True,
'enable_fip_topology_check': True,
'enable_lb': True,
'enable_firewall': True,
[root@controller openstack-dashboard]# systemctl restart httpd memcached.service
重启完成重新登陆web界面,在网络中路由功能已经出现
在web界面再创建一个私有网络子网网段都可以随便进行指定,因为只会在内部对外部网络没有任何影响。从网络拓扑中可以直接看到,同时也可以再创建一个实例。
创建完成后我们可以从网络拓扑中看到创建的实例内网和外网是没有进行连接的,那如果想让两台机器进行连接那么我们需要使用路由功能。
直接在web界面中创建一个路由,选择路由网络,在点击创建,创建完成之后查看网络拓扑。就可以看到,外部网络已经连接到了路由,之后再给路由增加一个接口,将内网加入,这样两个实例的网络就可以通了。
但是现在如果使用命令ping去进行测试,结果是内网能ping通外网,而外网无法找到内网,遇到这种情况要如何去处理才能让外网找到内网,这就要给内网绑定一个浮动ip,这个浮动ip我们从ip池中直接分配并进行关联即可。
创建镜像
首先再创建一台虚拟机,虚拟机的大小不要超过计算节点的剩余容量大小,不然云主机不能起来。
可以使用命令创建也可以手动创建。详情可以查看官网介绍
https://docs.openstack.org/image-guide/centos-image.html
将虚拟机安装完成后可以先分配一个ip用来方便远程连接完成下面的操作。
首先安装软件
[root@localhost ~]# yum install acpid ##安装高级电源接口
[root@localhost ~]# systemctl enable acpid
[root@localhost ~]# yum install cloud-init
[root@localhost ~]# yum install cloud-utils-growpart ##磁盘拉伸选项
[root@localhost ~]# echo "NOZEROCONF=yes" >> /etc/sysconfig/network ##零配置网络
[root@localhost ~]# vi /boot/grub2/grub.cfg
linux16 /boot/vmlinuz-3.10.0-1062.el7.x86_64 root=UUID=ccc99d4e-c7b0-4c99-8a32-1c115a5c779d ro console=tty0 console=ttyS0,115200n8 ##将ro后面进行修改,进行输出日志
[root@localhost ~]# poweroff ##关机之后就不要再启动
下面操作在真机中执行
[root@localhost ~]# virt-sysprep -d test ##对虚拟机进行清理
[root@localhost ~]# virsh undefine test
域 test 已经被取消定义
[root@localhost images]# du -h test.qcow2
5.1G test.qcow2 ##这个镜像有点大,需要进行压缩
[root@localhost images]# virt-sparsify --compress test.qcow2 /var/www/html/cent0s.qcow2 ##将镜像放在默认发布目录下。
压缩完成进行查看
[root@localhost images]# du -h /var/www/html/centos.qcow2
578M /var/www/html/centos.qcow2
创建完成之后在web界面切换到admin用户创建镜像,创建完成可以使用命令查看到
[root@controller yum.repos.d]# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 8fa91c6b-6979-4a40-b305-7f1041e2717a | centos | active |
| 529be557-7454-451a-ac92-eb85673bb7f1 | cirros | active |
+--------------------------------------+--------+--------+
镜像创建完成再创建一个实例类型
全部创建完成之后切换为一般用户,使用我们创建的镜像和内部网络创建一个新的实例。