热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStackFolsom+Quantum双网卡安装过程记录

OpenstackFolsom发布好久了,但由于新的组件Quantum的加入,以及知识的跨度,比如同时需要系统管理及网络工程方面的知识,所以Folsom的安装还是挺费事的。经过几天的测试,参考各种文档,终于完成了Folsom基于双网卡的安装,总结至此。本文HTML版本见
Openstack Folsom 发布好久了,但由于新的组件Quantum的加入,以及知识的跨度,比如同时需要系统管理及网络工程方面的知识,所以Folsom的安装还是挺费事的。
经过几天的测试,参考各种文档,终于完成了Folsom基于双网卡的安装,总结至此。
本文HTML版本见:https://github.com/888888/OpenStack-Folsom-Install-guide/blob/GRE/2NICs/OpenStack_Folsom_Install_Guide_WebVersion.rst
1. 需求说明
====================
:节点名称: NICs
:控制节点: eth0 (100.10.10.51), eth1 (192.168.100.51)
:网络节点: eth0 (100.10.10.52), eth2 (0.0.0.0)
:计算节点: eth0 (100.10.10.53)
**备注 1: ** 本文为双网卡安装Folsom设计,根据官方说明,网络节点最好采用三块网卡控制节点可以和计算节点合二为一.
**备注 2:** 本文安装指南环境为实现Folsom功能评估,力求简单方便,安全性差,不可用于生产环境。
**备注 3: ** 本文不适用于虚拟机环境.请使用物理计算机安装.
.. image:: http://i.imgur.com/4D51h.jpg
2. 控制节点
===============
2.1. 准备系统
-----------------
* 安装系统注意事项::
    - ubuntu-12.10-server-amd64.iso
    - 为Cinder服务预留独立分区 例如: /dev/sda5
    - 提前定义好各服务器主机名及IP,尽量别改,一定要改,请修改/etc/hosts中的对应关系
* 以下所有命令均在root权限下完成,所以在装好ubuntu后,请切换到root::
   sudo passwd
   su
* 更新系统(依据笔者经验,安装完Folsom环境后最好别再使用dist-upgrade,以免产生些许小问题,如虚拟机获得不了ip等..)::
   apt-get update
   apt-get upgrade
   apt-get dist-upgrade
* 因为要更新和下载的软件比较多,可以在空闲时间一次更新系统并提前安装所需要软件,以后只需要配置就行了:
   apt-get update && apt-get dist-upgrade -y && apt-get update -y && apt-get dist-upgrade -y && apt-get install -y rabbitmq-server ntp vlan bridge-utils keystone curl openssl glance quantum-server quantum-plugin-openvswitch nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms openstack-dashboard memcached python-mysqldb mysql-server 
2.2.配置网卡
------------
* 主控应该有一个外网网卡::
   #访问Openstack API 
   auto eth1
   iface eth1 inet static
   address 192.168.100.51
   netmask 255.255.255.0
   gateway 192.168.100.1
   dns-nameservers 8.8.8.8
   #管理网络和虚拟机网络合二为一
   auto eth0
   iface eth0 inet static
   address 100.10.10.51
   netmask 255.255.255.0
* 重启网络服务::
   service networking restart
2.3. MySQL & RabbitMQ
------------
* 安装 MySQL 和 RabbitMQ::
   apt-get install mysql-server python-mysqldb rabbitmq-server 
* 配置Mysql监听所有地址::
   sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
   service mysql restart
* 为了简化安装,以后所有连接mysql服务均使用 root:password登录,将root权限更改为所有主机可以访问(默认只能本机访问)
   mysql -uroot -ppassword
   use mysql;
   update user set host='%' where user='root' and host='localhost';
   flush privileges;
* 创建所有必须的数据库::
   create database keystone;
   create database nova;
   create database glance;
   create database cinder;
   create database quantum;
2.4. 节点时间同步
------------------
* 安装时间服务器,其它节点时间同此服务器同步::
   apt-get install ntp
   sed -i 's/server ntp.ubuntu.com/server ntp.ubuntu.comserver 127.127.1.0fudge 127.127.1.0 stratum 10/g' /etc/ntp.conf
   service ntp restart  
2.5. Others
-------------------
* 安装其它服务::
   apt-get install vlan bridge-utils
* 允许IP转发::
   vi /etc/sysctl.conf
   net.ipv4.conf.all.rp_filter = 0
   net.ipv4.conf.default.rp_filter = 0 
   sysctl net.ipv4.ip_forward=1
   # 检查一下
   sysctl -p 
2.6. Keystone
-------------------
* 安装组件::
   apt-get install keystone
* 编辑 /etc/keystone/keystone.conf 数据库连接::
   cOnnection= mysql://root:password@100.10.10.51/keystone
* 重启keystone并初始化数据库::
   service keystone restart
   keystone-manage db_sync
* 使用 `自动化脚本 `_ 创建keystone用户、服务、服务端点。为了简化,这里只创建admin一个用户,请不要修改此用户密码。 
    bash keystone_basic.sh
    执行一次,否则会创建多个service
    bash keystone_endpoints_basic.sh
* 创建/root/novarc文件,写入以下内容::
    export OS_TENANT_NAME=admin
    export OS_TENANT_ID=c7fb80d964a24ab1bc0fd370696c804e
    export OS_USERNAME=admin
    export OS_PASSWORD=password
    export OS_AUTH_URL="http://127.0.0.1:35357/v2.0"
    export OS_REGION_NAME=RegionOne
    export OS_IDENTITY_API_VERSION=2.0
    export SERVICE_TOKEN=ADMIN
    export SERVICE_ENDPOINT="http://127.0.0.1:35357/v2.0"
    各项值请根据实际情况替换
    keystone tenant-list
    将获取的tenant_id替换到novarc
    source /root/novarc
    echo "source /root/novarc" >> ~/.bashrc
2.7. Glance
-------------------
* 安装组件
    apt-get install glance
* 分别修改 /etc/glance/glance-api-paste.ini 和/etc/glance/glance-registry-paste.ini::
   [filter:authtoken]
   paste.filter_factory = keystone.middleware.auth_token:filter_factory
   auth_host = 100.10.10.51
   auth_port = 35357
   auth_protocol = http
   admin_tenant_name = admin
   admin_user = admin
   admin_password = password
* 分别修改 /etc/glance/glance-api.conf 和/etc/glance/glance-registry.conf ::
   sql_cOnnection= mysql://root:password@100.10.10.51/glance
   [paste_deploy]
   flavor = keystone
* 重启glance服务并同步glance数据库::
   service glance-api restart; service glance-registry restart
   glance-manage db_sync
* 测试glance 服务,不输出任何结果代表成功::
    glance index
* 上传个镜像::
   wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
   glance image-create --name myFirstImage --is-public true --container-format bare
    --disk-format qcow2
* 再查看一下::
   glance image-list
2.8. Quantum
-------------------
* 安装组件::
   apt-get install quantum-server quantum-plugin-openvswitch
* 修改 /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini,移动后文件最后,有模板:: 
   [DATABASE]
   sql_cOnnection= mysql://root:password@100.10.10.51/quantum
   #Under the OVS section
   [OVS]
   tenant_network_type = gre
   tunnel_id_ranges = 1:1000
   enable_tunneling = True
* 修改 /etc/quantum/api-paste.ini ::
   [filter:authtoken]
   paste.filter_factory = keystone.middleware.auth_token:filter_factory
   auth_host = 100.10.10.51
   auth_port = 35357
   auth_protocol = http
   admin_tenant_name = admin
   admin_user = admin
   admin_password = password
* 重启 quantum server::
   service quantum-server restart
2.9. Nova
-------------------
* 安装组件::
   apt-get install -y nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy
* 修改 /etc/nova/api-paste.ini ::
   [filter:authtoken]
   paste.filter_factory = keystone.middleware.auth_token:filter_factory
   auth_host = 100.10.10.51
   auth_port = 35357
   auth_protocol = http
   admin_tenant_name = admin
   admin_user = admin
   admin_password = password
   signing_dirname = /tmp/keystone-signing-nova
* Modify the /etc/nova/nova.conf like this::
   [DEFAULT]
   logdir=/var/log/nova
   state_path=/var/lib/nova
   lock_path=/run/lock/nova
   verbose=True
   api_paste_cOnfig=/etc/nova/api-paste.ini
 scheduler_driver=nova.scheduler.simple.SimpleScheduler
   s3_host=100.10.10.51
   ec2_host=100.10.10.51
   ec2_dmz_host=100.10.10.51
   rabbit_host=100.10.10.51
   cc_host=100.10.10.51
   dmz_cidr=169.254.169.254/32
   metadata_host=100.10.10.51
   metadata_listen=0.0.0.0
   nova_url=http://100.10.10.51:8774/v1.1/
 sql_cOnnection=mysql://novaUser:novaPass@100.10.10.51/nova
 ec2_url=http://100.10.10.51:8773/services/Cloud 
   root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
   # Auth
   use_deprecated_auth=false
   auth_strategy=keystone
 keystone_ec2_url=http://100.10.10.51:5000/v2.0/ec2tokens
   # Imaging service
   glance_api_servers=100.10.10.51:9292
   image_service=nova.image.glance.GlanceImageService
   # Vnc configuration
   novnc_enabled=true
 novncproxy_base_url=http://192.168.100.51:6080/vnc_auto.html
   novncproxy_port=6080
   vncserver_proxyclient_address=192.168.100.51
   vncserver_listen=0.0.0.0 
   # Network settings
   network_api_class=nova.network.quantumv2.api.API
   quantum_url=http://100.10.10.51:9696
   quantum_auth_strategy=keystone
   quantum_admin_tenant_name=admin
   quantum_admin_username=admin
   quantum_admin_password=password
 quantum_admin_auth_url=http://100.10.10.51:35357/v2.0
 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
 linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
 firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
   # Compute #
   compute_driver=libvirt.LibvirtDriver
   # Cinder #
   volume_api_class=nova.volume.cinder.API
   osapi_volume_listen_port=5900
* 初始化nova数据库::
   nova-manage db sync
* 重启所有nova服务::
   cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done   
* 检查nova服务,有笑脸图标,证明服务正常::
   nova-manage service list
    Binary           Host             Zone             Status     State Updated_At
    nova-cert        sm1u07           nova             enabled    :-)   2013-03-15 12:08:31
    nova-consoleauth sm1u07           nova             enabled    :-)   2013-03-15 12:08:30
    nova-scheduler   sm1u07           nova             enabled    :-)   2013-03-15 12:08:30
2.10. Cinder
-------------------
* 安装组件::
   apt-get install cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms
* 打开iscsi服务::
   sed -i 's/false/true/g' /etc/default/iscsitarget
   service iscsitarget start
   service open-iscsi start
* 修改 /etc/cinder/api-paste.ini 认证信息::
   [filter:authtoken]
   paste.filter_factory = keystone.middleware.auth_token:filter_factory
   service_protocol = http
   service_host = 100.10.10.51
   service_port = 5000
   auth_host = 100.10.10.51
   auth_port = 35357
   auth_protocol = http
   admin_tenant_name = admin
   admin_user = password
   admin_password = password
* 修改the /etc/cinder/cinder.conf to::
   [DEFAULT]
   rootwrap_cOnfig=/etc/cinder/rootwrap.conf
   sql_cOnnection= mysql://root:password@100.10.10.51/cinder
   api_paste_cOnfg= /etc/cinder/api-paste.ini
   iscsi_helper=ietadm
   volume_name_template = volume-%s
   volume_group = cinder-volumes
   verbose = True
   auth_strategy = keystone
* 初始化cinder数据库::
   cinder-manage db sync
* 创建cinder使用的物理卷及卷组::
   pvcreate /dev/sda5
   vgcreate cinder-volumes /dev/sda5
   service cinder-volume restart
   service cinder-api restart
2.11. 控制面板
-------------------
* 安装组件 ::
   apt-get install openstack-dashboard memcached
* dashboard依赖apache和memcache::
   service apache2 restart; service memcached restart
现在可以访问Dashboard了 **http://192.168.100.51/horizon** 用户名密码 **admin:password**.
3. 网络节点
=========================
3.1. 准备系统
------------------
* 安装ubuntu12.01::
   apt-get update
   apt-get upgrade
   apt-get dist-upgrade
    快速:
    apt-get update && apt-get dist-upgrade -y && apt-get install -y ntp vlan bridge-utils openvswitch-switch openvswitch-datapath-dkms quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent
* 安装配置基本服务ntp,vlan,bridge-utils::
   apt-get install ntp vlan bridge-utils
   sed -i 's/server ntp.ubuntu.com/server 100.10.10.51/g' /etc/ntp.conf
   service ntp restart  
* 允许ip转发::
   vi /etc/sysctl.conf
   net.ipv4.conf.all.rp_filter = 0
   net.ipv4.conf.default.rp_filter = 0
   sysctl net.ipv4.ip_forward=1
3.2.配置网卡
------------
* 网络节点eth1网卡将做为虚拟机与互联网通讯端口,设置网卡为 promisc mode::
   #虚拟机外网出口
   auto eth1
   iface eth1 inet manual
   up ifconfig $IFACE 0.0.0.0 up
   up ip link set $IFACE promisc on
   down ip link set $IFACE promisc off
   down ifconfig $IFACE down
   #管理网络及内部通信
   auto eth0
   iface eth0 inet static
   address 100.10.10.52
   netmask 255.255.255.0
3.3. OpenVSwitch
------------------
* 安装虚拟交换机::
   apt-get install -y openvswitch-switch openvswitch-datapath-dkms
* 创建网桥::
   #br-int is used for VM integration
   ovs-vsctl add-br br-int
   #br-ex is used for accessing internet.
   ovs-vsctl add-br br-ex
   ovs-vsctl br-set-external-id br-ex bridge-id br-ex
   ovs-vsctl add-port br-ex eth1
   启动br-ex
   ip link set br-ex up
3.4. Quantum
------------------
* 安装quantum组件::
   apt-get -y install quantum-dhcp-agent quantum-l3-agent quantum-plugin-openvswitch-agent
* 编辑/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini :: 
   #Under the database section
   [DATABASE]
   sql_cOnnection= mysql://root:password@100.10.10.51/quantum
   #Under the OVS section
   [OVS]
   tenant_network_type = gre
   tunnel_id_ranges = 1:1000
   integration_bridge = br-int
   tunnel_bridge = br-tun
   local_ip = 100.10.10.52
   enable_tunneling = True
* 更新 /etc/quantum/l3_agent.ini::
   auth_url = http://100.10.10.51:35357/v2.0
   auth_region = RegionOne
   admin_tenant_name = admin
   admin_user = admin
   admin_password = password
   metadata_ip = 100.10.10.51
   metadata_port = 8775
   use_namespaces = False
* 修改 /etc/quantum/dhcp_agent.ini::
   use_namespaces = False
* 修改/etc/quantum/quantum.conf ::
   rabbit_host = 100.10.10.51
* 重启所有服务::
   service quantum-dhcp-agent restart
   service quantum-l3-agent restart
   service quantum-plugin-openvswitch-agent restart
4. 计算节点
=========================
4.1. 准备系统
------------------
* 更新升级::
   apt-get update
   apt-get upgrade
   apt-get dist-upgrade
   快速:
    apt-get update && apt-get dist-upgrade -y && apt-get install -y ntp vlan bridge-utils cpu-checker kvm libvirt-bin pm-utils openvswitch-switch openvswitch-datapath-dkms  quantum-plugin-openvswitch-agent nova-compute-kvm
* 安装 ntp vlan bridge-utils::
   apt-get install ntp vlan bridge-utils
   sed -i 's/server ntp.ubuntu.com/server 100.10.10.51/g' /etc/ntp.conf
   service ntp restart  
* 允许IP转发::
   vi /etc/sysctl.conf
   net.ipv4.conf.all.rp_filter = 0
   net.ipv4.conf.default.rp_filter = 0
   sysctl net.ipv4.ip_forward=1
4.2.配置网卡
------------
* vi /etc/network/interfaces ::
   # 管理网络和内部通讯网络
   auto eth0
   iface eth0 inet static
   address 100.10.10.53
   netmask 255.255.255.0
4.3 KVM
------------------
* 确认硬件支持虚拟化::
   apt-get install cpu-checker
   kvm-ok
* 安装kvm组件::
   apt-get install -y kvm libvirt-bin pm-utils
* 编辑libvirt设备列表支持tun  /etc/libvirt/qemu.conf::
   cgroup_device_acl = [
   "/dev/null", "/dev/full", "/dev/zero",
   "/dev/random", "/dev/urandom",
   "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
   "/dev/rtc", "/dev/hpet","/dev/net/tun"
   ]
* 删除kvm默认网络配置 ::
   virsh net-destroy default
   virsh net-undefine default
* 允许动态迁移 ::
   vi /etc/libvirt/libvirtd.conf 
   listen_tls = 0
   listen_tcp = 1
   auth_tcp = "none"
   vi /etc/init/libvirt-bin.conf
   env libvirtd_opts="-d -l"
   vi /etc/default/libvirt-bin
   libvirtd_opts="-d -l"
   service libvirt-bin restart
4.4. OpenVSwitch
------------------
* 安装 openVSwitch::
   apt-get install -y openvswitch-switch openvswitch-datapath-dkms
* 创建网桥 bridges::
   #br-int will be used for VM integration
   ovs-vsctl add-br br-int
4.5. Quantum
------------------
* 安装 Quantum openvswitch agent::
   apt-get -y install quantum-plugin-openvswitch-agent
* 编辑OVS配置 /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini:: 
   #Under the database section
   [DATABASE]
   sql_cOnnection= mysql://root:password@100.10.10.51/quantum
   #Under the OVS section
   [OVS]
   tenant_network_type = gre
   tunnel_id_ranges = 1:1000
   integration_bridge = br-int
   tunnel_bridge = br-tun
   local_ip = 100.10.10.53
   enable_tunneling = True
* 修改rabbitMQ IP ::
   vi /etc/quantum/quantum.conf
   rabbit_host = 100.10.10.51
* 重启所有服务::
   service quantum-plugin-openvswitch-agent restart
4.6. Nova
------------------
* 安装nova compute组件::
   apt-get install nova-compute-kvm
* 修改 /etc/nova/api-paste.ini::
   [filter:authtoken]
   paste.filter_factory = keystone.middleware.auth_token:filter_factory
   auth_host = 100.10.10.51
   auth_port = 35357
   auth_protocol = http
   admin_tenant_name = admin
   admin_user = admin
   admin_password = password
   signing_dirname = /tmp/keystone-signing-nova
* 编辑 /etc/nova/nova-compute.conf::
   [DEFAULT]
   libvirt_type=kvm
   libvirt_ovs_bridge=br-int
   libvirt_vif_type=ethernet
 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
   libvirt_use_virtio_for_bridges=True
* 修改 /etc/nova/nova.conf  ::
   [DEFAULT]
   logdir=/var/log/nova
   state_path=/var/lib/nova
   lock_path=/run/lock/nova
   verbose=True
   api_paste_cOnfig=/etc/nova/api-paste.ini
 scheduler_driver=nova.scheduler.simple.SimpleScheduler
   s3_host=100.10.10.51
   ec2_host=100.10.10.51
   ec2_dmz_host=100.10.10.51
   rabbit_host=100.10.10.51
   cc_host=100.10.10.51
   dmz_cidr=169.254.169.254/32
   metadata_host=100.10.10.51
   metadata_listen=0.0.0.0
   nova_url=http://100.10.10.51:8774/v1.1/
 sql_cOnnection=mysql://novaUser:novaPass@100.10.10.51/nova
 ec2_url=http://100.10.10.51:8773/services/Cloud 
   root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
   # Auth
   use_deprecated_auth=false
   auth_strategy=keystone
 keystone_ec2_url=http://100.10.10.51:5000/v2.0/ec2tokens
   # Imaging service
   glance_api_servers=100.10.10.51:9292
   image_service=nova.image.glance.GlanceImageService
   # Vnc configuration
   novnc_enabled=true
 novncproxy_base_url=http://192.168.100.51:6080/vnc_auto.html
   novncproxy_port=6080
   vncserver_proxyclient_address=100.10.10.53
   vncserver_listen=0.0.0.0 
   # Network settings
   network_api_class=nova.network.quantumv2.api.API
   quantum_url=http://100.10.10.51:9696
   quantum_auth_strategy=keystone
   quantum_admin_tenant_name=admin
   quantum_admin_username=admin
   quantum_admin_password=password
 quantum_admin_auth_url=http://100.10.10.51:35357/v2.0
 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
 linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
 firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
   # Compute #
   compute_driver=libvirt.LibvirtDriver
   # Cinder #
   volume_api_class=nova.volume.cinder.API
   osapi_volume_listen_port=5900
* Restart nova-* services::
   cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done   
* Check for the smiling faces on nova-* services to confirm your installation::
   nova-manage service list
5. 创建虚拟机
============
* 使用 管理虚拟机
* 编辑安全组,允许所有协议,tcp,udp,icmp
    root@sm1u07:~# nova secgroup-list-rules default
    Please enter password for encrypted keyring: 
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range  | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp        | -1        | 255     | 0.0.0.0/0 |              |
| tcp         | 1         | 65535   | 0.0.0.0/0 |              |
| udp         | 1         | 65535   | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
* 使用脚本 `quantum.sh `_ 为admin创建相关的网络,即虚拟机内网和外网
* 查看创建好的网络
    root@hp4u:~# quantum net-list
+--------------------------------------+-----------+--------------------------------------+
| id                                   | name      | subnets            |
+--------------------------------------+-----------+--------------------------------------+
| 14dbb282-c74a-4784-bfc3-351f7ca3d034 | ext_net   | 95bddb90-84dc-4579-99b8-798a393a3edf |
| d402e168-cbda-4345-8ffa-015e6a1c4aa1 | admin-net | 8ef3c4dd-a265-421c-afa2-6cff28ae2c74 |
+--------------------------------------+-----------+--------------------------------------+
    root@hp4u:~# quantum router-list
+--------------------------------------+-----------------+--------------------------------------------------------+
| id                                   | name            | external_gateway_info                |
+--------------------------------------+-----------------+--------------------------------------------------------+
| 623b68f4-967a-4028-9a92-dc5a7d3e16e8 | provider-router | {"network_id": "14dbb282-c74a-4784-bfc3-351f7ca3d034"} |
+--------------------------------------+-----------------+--------------------------------------------------------+
* 修改 /etc/quantum/l3_agent.ini :
     gateway_external_network_id = 14dbb282-c74a-4784-bfc3-351f7ca3d034
     router_id = 623b68f4-967a-4028-9a92-dc5a7d3e16e8
     service quantum-l3-agent restart  
* 使用控制面板创建一个虚拟机,并记录vm-uuid,勇冠vm-uuid获取vm的端口id
     quantum port-list -- --device_id
* 目前horizon不支持quantum的floatingip操作,通过quantum 命令行为vm 分配floatingip,
     quantum floatingip-create --port_id
* 大功告成,现在你可以去dashboard中用vnc登录vm,测试一下各个网络是否通畅
推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
author-avatar
化合价steuart_968
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有