1三、启动一个实例html
13.一、建立虚拟网络web
本次选择私有网络,可是须要先建立provider网络shell
provider网络是222.222.222.0/24浏览器
预分配给虚拟机的IP地址是192.168.111.0/24安全
13.1.一、建立provider网络服务器
13.1.1.一、在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限:网络
$ . admin-openrcssh
13.1.1.二、建立网络:tcp
$ neutron net-create --shared --provider:physical_network provider --provider:network_type flat provideride
13.1.1.三、在网络上建立一个子网
$ neutron subnet-create --name provider \
--allocation-pool start=222.222.222.10,end=222.222.222.100 \
--dns-nameserver 222.222.222.2 --gateway 222.222.222.2 provider 222.222.222.0/24
************************************分割线************************************
第一次写dhcp地址范围,开始地址是192.168.111.1,这个是网关啊,怎么可能执行成功呢,因而报错以下图所示:
另外第一次作的时候没有弄清楚provider网络的概念,直接给内网192.168.111.0网段了。
其实应该是222.222.222.0这个网段,这是能够链接外网的网段!
************************************分割线************************************
13.1.二、建立自服务网络
若是你选择网络选项2,你还能够建立一个私有网络经过NAT链接到物理网络设施。这个网络包括一个DHCP服务器为实例分配IP地址。
在这个网络上的实例能够自动链接到外部网络如互联网。不过,从互联网这样的外部网络访问实例须要配置 :浮动IP。
demo 或者其余非管理员用户也能够建立这个网络,由于它只在 `demo``项目中提供对实例的访问。
13.1.2.一、在控制节点上,得到 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . demo-openrc
13.1.2.二、建立网络
$ neutron net-create testnet
13.1.2.三、在网络上建立一个子网:
$ neutron subnet-create --name testnet \
--dns-nameserver 222.222.222.2 \
--gateway 192.168.111.1 testnet 192.168.111.0/24
13.1.三、建立路由
13.1.3.一、在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限:
$ . admin-openrc
13.1.3.二、添加’ router:external ‘ 到’ provider’ 网络
$ neutron net-update provider --router:external
13.1.3.三、加载 demo 证书得到用户能执行的命令访问权限:
$ . demo-openrc
13.1.3.四、建立路由:
$ neutron router-create testrouter
13.1.3.五、给路由器添加一个私网子网的接口:
$ neutron router-interface-add testrouter testnet
13.1.3.六、给路由器设置公有网络的网关:
$ neutron router-gateway-set testrouter provider
13.1.四、验证操做
13.1.4.一、在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限:
$ . admin-openrc
13.1.4.二、列出网络命名空间。你应该能够看到一个’ qrouter ‘命名空间和两个’qdhcp ‘ 命名空间
$ ip netns
13.1.4.三、列出路由器上的端口来肯定公网网关的IP 地址:
$ neutron router-port-list testrouter
13.1.4.四、从控制节点或任意公共物理网络上的节点Ping这个IP地址:
13.二、生成一个键值对
大部分云镜像支持公共密钥认证而不是传统的密码认证。在启动实例前,你必须添加一个公共密钥到计算服务。
13.2.一、导入租户``demo``的凭证
$ . demo-openrc
13.2.二、生成和添加秘钥对:
$ ssh-keygen -q -N ""
$ openstack keypair create --public-key ~/.ssh/id_rsa.pub testkey
注解:另外,你能够跳过执行 ssh-keygen 命令而使用已存在的公钥。
13.2.三、验证公钥的添加:
$ openstack keypair list
13.三、增长安全组规则
添加规则到 default 安全组。
13.3.一、容许 ICMP (ping):
$ openstack security group rule create --proto icmp default
13.3.二、容许安全 shell (SSH) 的访问:
$ openstack security group rule create --proto tcp --dst-port 22 default
13.四、在provider网络上建立实例
(在dashboard上图形界面操做)
注解:以前已经在KVM中建立了rhel6.7虚拟机映像并经过dashboard上传,这里就直接选择那个5G的映像源来建立卷。
注解:14是本次生成的实例,12是以前直接使用qcow2文件启动的实例。
打开控制台:
默认分配的是222.222.222.14,那么就给实例配置这个IP地址:
这里发现一个小问题,使用命令查看网卡配置是eth1网卡,可是配置文件是eth0,不知道是系统问题仍是openstack的问题。
直接修改配置文件名称都改成eth1就可使用了,同时把MAC地址注释掉
重启network服务查看IP
从本机直接访问14实例
OK,provider网络建立实例成功!
13.五、在私有网络上建立实例
13.5.一、肯定实例选项
启动一台实例,您必须至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。
13.5.1.一、在控制节点上,得到 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . demo-openrc
13.5.1.二、一个实例指定了虚拟机资源的大体分配,包括处理器、内存和存储。
列出可用类型:
$ openstack flavor list
以前已经修改了一个m1.tiny的flavor,接下来就用这个flavor建立实例
注解:您也能够以 ID 引用类型。
13.5.1.三、列出可用镜像:
$ openstack image list
注解:rhel6.7为dashboard上传的镜像
13.5.1.四、列出可用网络:
$ openstack network list
13.5.1.五、列出可用的安全组:
$ openstack security group list
13.5.1.六、启动实例
$ openstack server create --flavor m1.tiny --image rhel6.7 \
--nic net-id=e4dfadf6-952d-4c07-889e-3ba8b1077176 --security-group default \
--key-name testkey test-instance
注解:若是没有建立公钥,命令行中的key-name也能够不写,以下面案例所示:
openstack server create --flavor win.small --image rhel6.8 \
--nic net-id=d4844e04-0bc6-4616-8df9-4702dc33dcd4 --security-group default test-instance
13.5.1.七、检查实例的状态:
$ openstack server list
13.5.二、使用虚拟控制台访问实例
13.5.2.一、获取你实例的 Virtual Network Computing (VNC) 会话URL并从web浏览器访问它:
$ openstack console url show test-instance
http://controller:6080/vnc_auto.html?token=5d28cfec-1f9a-4aa0-83ad-ba7901dfcf52
13.5.2.二、验证可否ping通私有网络的网关:
修改IP地址为前面分配的192.168.111.4,修改完毕后就能够ping通私网网关和互联网了:
不知道计算节点没法Ping通私网网关是否正常,控制节点是能够Ping通的。
13.5.三、验证可否远程访问实例
13.5.3.一、在公有网络上建立浮动IP地址池:
$ openstack ip floating create provider
注解:以前使用admin建立过浮动IP,可是和demo没法通用
13.5.3.二、为实例分配浮动IP:
$ openstack ip floating add 222.222.222.13 test-instance
13.5.3.三、检查这个浮动 IP 地址的状态:
$ openstack server list
13.5.3.四、验证控制节点或者其余公有网络上的主机经过浮动IP地址ping通实例:
13.5.3.五、在控制节点或其余公有网络上的主机使用 SSH远程访问实例:
(未解决问题:控制节点和计算节点的防火墙配置仍是差端口,只要任意一个节点开启防火墙,私网实例就没法Ping通私网网关)
注解1:实例上只能看到192.168.111.4的IP地址,可是在222网段的主机上能够经过222.222.222.13这个IP地址访问到这台服务器
注解2:demo用户建立的实例可使用这种方法在222网段的主机上访问实例,实测admin用户建立的实例用这个方法行不通!
其余用户建立的实例未测试是否能够,可是社区官方文档说明除了admin用户其余用户是能够的这么操做的!
总结:细心点、耐心点按照社区文档彻底能够0基础搭建一套两节点的Openstack环境!
OK!2020年3月27日,断断续续一个月全部openstack部署测试所有完成!如今已经有信心部署一个小型化的openstack平台了!