创建公共网络:
1、在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限:
source admin-openrc.sh
2、创建网络:
# –shared 选项允许所有项目使用虚拟网络:
neutron net-create public --shared --provider:physical_network public \
--provider:network_type flat
# 在/etc/neutron/plugins/ml2/linuxbridge_agent.ini 中PUBLIC_INTERFACE_NAME一般为eth1
3、 在网络上创建一个子网:
neutron subnet-create public PUBLIC_NETWORK_CIDR --name public \
--allocation-pool start=START_IP_ADDRESS,end=END_IP_ADDRESS\
--dns-nameserver DNS_RESOLVER --gateway PUBLIC_NETWORK_GATEWAY
# ①将PUBLIC_NETWORK_CIDR替换为公共物理网络的子网CIDR标记。
# ②将START_IP_ADDRESS和END_IP_ADDRESS使用你想分配给实例的子网网段的第一个和最后一个IP地址。这个范围不能包括任何已经使用的IP地址。
# ③将 DNS_RESOLVER 替换为DNS解析服务的IP地址。在大多数情况下,你可以从主机/etc/resolv.conf 文件选择一个使用。
# ④将PUBLIC_NETWORK_GATEWAY 替换为你想在公共网络中使用的网关,一般是 “.1” IP地址。
例如:
neutron subnet-create public 203.0.113.0/24 --name public \
--allocation-pool start=203.0.113.101,end=203.0.113.200 \
--dns-nameserver 8.8.4.4 --gateway 203.0.113.1
# 公共网络使用203.0.113.0/24网关203.0.113.1。(这里根据你的主机地址填写你的公共网络和网关,注意公共网络是可以访问外部网络的那个网络,并不是内网,这一步设置对了,虚机就可以顺利访问外网了)
# DHCP服务负责为每个实例从203.0.113.101 到 203.0.113.200中分配IP地址。
# 所有实例使用8.8.4.4作DNS。
生成一个密钥对:
1、执行 demo
租户凭证:
source demo-openrc.sh
2、生成和添加秘钥对:
ssh-keygen -q -N "" # 你可以跳过执行 ssh-keygen 命令而使用已存在的公钥。
nova keypair-add --pub-key ~/.ssh/id_rsa.pub mykey
3、验证公钥的添加:
nova keypair-list
添加安全组规则:
1、添加规则到 default 安全组:
# 允许 ICMP (ping):
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
# 允许安全 shell (SSH) 的访问:
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
确定实例选项:
1、在控制节点上,获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
source demo-openrc.sh
2、一个实例指定了虚拟机资源的大致分配,包括处理器、内存和存储,列出可用类型:
nova flavor-list
3、列出可用镜像:
nova image-list
4、列出可用网络:
neutron net-list
# 这个实例使用 public网络 ,必须使用ID而不是名称才可以引用这个网络
5、列出可用的安全组:
nova secgroup-list
注:以上都正常显示了则可以创建新的实例了。
启动实例:
1、启动实例,使用public
网络的ID替换PUBLIC_NET_ID
:
# 如果你选择选项1并且你的环境只有一个网络,你可以省去 –nic 选项因为OpenStack会自动选择这个唯一可用的网络
nova boot --flavor m1.tiny --image cirros --nic net-id=PUBLIC_NET_ID \
--security-group default --key-name mykey public-instance
2、检查实例的状态:
nova list
# 当构建过程全部成功后,状态会从 BUILD变为ACTIVE
使用虚拟控制台访问实例:
1、获取你的实例的 Virtual Network Computing (VNC) 会话URL并从web浏览器访问它:
nova get-vnc-console public-instance novnc
# 如果你运行浏览器的主机无法解析controller 主机名,你可以将 controller替换为你控制节点管理网络的IP地址
2、验证到公共网络网关的访问:
ping -c 4 203.0.113.1
# 这里是你的网关地址
3、检验互联网访问:
ping -c 4 www.baidu.com
远程访问实例:
1、在控制节点或者任何公共网络上的主机验证到实例的访问:
ping -c 4 203.0.113.103
2、通过控制节点或任意公共网络上的主机使用 SSH 访问您的实例:
ssh cirros@203.0.113.103
# 如果你的主机没有包含前面步骤创建的public/private密钥对,SSH提示的默认密码是 cirros 用户是 cubswin
- 注:至此,一个简易的可以运行虚机的OpenStack平台已经搭建完成,这里所有的设置都是最简的,仅供同学们学习熟悉OpenStack之用,如有更好的想法请留言,大家互相交流促进。
参考文章: OpenStack官方文档