OpenStack启动一个实例
一、第一次启动实例需要步骤
1:创建openstack网络
2: 创建实例的硬件配置方案
3:创建密钥对
4:创建安全组规则
5:启动一个实例
二、启动实例实践(控制节点上操作)
1. 创建网络
[root@controller ~]# neutron net-create --shared --provider:physical_network provider --provider:network_type flat test-net Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | | | created_at | 2020-11-19T14:46:02 | | description | | | id | 2fcb8979-fc5f-41f0-a1ce-955c595d521e | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 1500 | | name | test-net | | port_security_enabled | True | | provider:network_type | flat | | provider:physical_network | provider | | provider:segmentation_id | | | router:external | False | | shared | True | | status | ACTIVE | | subnets | | | tags | | | tenant_id | 9a6e662b63de48eeb651a3332c74b092 | | updated_at | 2020-11-19T14:46:02 | +---------------------------+--------------------------------------+
创建子网
[root@controller ~]# neutron subnet-create --name test-subnet --allocation-pool start=10.0.0.101,end=10.0.0.250 --dns-nameserver 223.5.5.5 --gateway 10.0.0.254 test-net 10.0.0.0/24 Created a new subnet: +-------------------+----------------------------------------------+ | Field | Value | +-------------------+----------------------------------------------+ | allocation_pools | {"start": "10.0.0.101", "end": "10.0.0.250"} | | cidr | 10.0.0.0/24 | | created_at | 2020-11-19T14:48:23 | | description | | | dns_nameservers | 223.5.5.5 | | enable_dhcp | True | | gateway_ip | 10.0.0.254 | | host_routes | | | id | 013e3bc4-e0b4-4dd6-badb-d6d1d04e934b | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | test-subnet | | network_id | 2fcb8979-fc5f-41f0-a1ce-955c595d521e | | subnetpool_id | | | tenant_id | 9a6e662b63de48eeb651a3332c74b092 | | updated_at | 2020-11-19T14:48:23 | +-------------------+----------------------------------------------+
2. 创建云主机的硬件配置方案
查看硬件配置
[root@controller ~]# openstack flavor list +----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +----+-----------+-------+------+-----------+-------+-----------+
创建一个64M的 1个CPU的flavor
[root@controller ~]# openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano +----------------------------+---------+ | Field | Value | +----------------------------+---------+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 1 | | id | 0 | | name | m1.nano | | os-flavor-access:is_public | True | | ram | 64 | | rxtx_factor | 1.0 | | swap | | | vcpus | 1 | +----------------------------+---------+
[root@controller ~]# openstack flavor list +----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+-----------+ | 0 | m1.nano | 64 | 1 | 0 | 1 | True | | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +----+-----------+-------+------+-----------+-------+-----------+
3. 创建密钥对
[root@controller ~]# ssh-keygen -q -N "" -f ~/.ssh/id_rsa [root@controller ~]# ll /root/.ssh/ total 12 -rw------- 1 root root 1675 Nov 19 22:53 id_rsa -rw-r--r-- 1 root root 397 Nov 19 22:53 id_rsa.pub -rw-r--r-- 1 root root 171 Nov 18 17:01 known_hosts
[root@controller ~]# openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey +-------------+-------------------------------------------------+ | Field | Value | +-------------+-------------------------------------------------+ | fingerprint | e3:4f:b0:3d:4d:6a:b4:ce:ae:93:e8:03:ef:9d:86:a3 | | name | mykey | | user_id | 10e57203019442eb85062f7e90e5604b | +-------------+-------------------------------------------------+
4. 创建安全组规则
创建2条规则(tcp和icmp)
[root@controller ~]# openstack security group rule create --proto icmp default +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | id | 4b909adf-3230-4b7f-8d1b-f87f890de599 | | ip_protocol | icmp | | ip_range | 0.0.0.0/0 | | parent_group_id | c7bf606a-69b5-4b6e-982e-aa597e7c7519 | | port_range | | | remote_security_group | | +-----------------------+--------------------------------------+ [root@controller ~]# openstack security group rule create --proto tcp --dst-port 22 default +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | id | 1e7ff4f2-7e6c-4713-a59a-c15d8a32dd86 | | ip_protocol | tcp | | ip_range | 0.0.0.0/0 | | parent_group_id | c7bf606a-69b5-4b6e-982e-aa597e7c7519 | | port_range | 22:22 | | remote_security_group | | +-----------------------+--------------------------------------+
5. 启动一个实例
查看实例需要的镜像和网络
[root@controller ~]# openstack image list +--------------------------------------+--------+--------+ | ID | Name | Status | +--------------------------------------+--------+--------+ | 0dc22fbc-be1c-4fe8-9b0f-138e486fd3af | cirros | active | +--------------------------------------+--------+--------+ [root@controller ~]# neutron net list Unknown command [u'net', u'list'] [root@controller ~]# neutron net-list +--------------------------------------+----------+--------------------------------------------------+ | id | name | subnets | +--------------------------------------+----------+--------------------------------------------------+ | 2fcb8979-fc5f-41f0-a1ce-955c595d521e | test-net | 013e3bc4-e0b4-4dd6-badb-d6d1d04e934b 10.0.0.0/24 | +--------------------------------------+----------+--------------------------------------------------+
创建实例
[root@controller ~]# openstack server create --flavor m1.nano --image cirros --nic net-id=2fcb8979-fc5f-41f0-a1ce-955c595d521e --security-group default --key-name mykey test-vm +--------------------------------------+-----------------------------------------------+ | Field | Value | +--------------------------------------+-----------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | instance-00000001 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | None | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | | | adminPass | uymPLgZi545T | | config_drive | | | created | 2020-11-19T15:02:09Z | | flavor | m1.nano (0) | | hostId | | | id | 82e12d66-f233-4eab-acc8-12e8f2a96aec | | image | cirros (0dc22fbc-be1c-4fe8-9b0f-138e486fd3af) | | key_name | mykey | | name | test-vm | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | project_id | 9a6e662b63de48eeb651a3332c74b092 | | properties | | | security_groups | [{u'name': u'default'}] | | status | BUILD | | updated | 2020-11-19T15:02:11Z | | user_id | 10e57203019442eb85062f7e90e5604b | +--------------------------------------+-----------------------------------------------+
查看实例状态
[root@controller ~]# openstack server list +--------------------------------------+---------+--------+---------------------+ | ID | Name | Status | Networks | +--------------------------------------+---------+--------+---------------------+ | 82e12d66-f233-4eab-acc8-12e8f2a96aec | test-vm | ACTIVE | test-net=10.0.0.102 | +--------------------------------------+---------+--------+---------------------+ [root@controller ~]# nova list +--------------------------------------+---------+--------+------------+-------------+---------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+---------+--------+------------+-------------+---------------------+ | 82e12d66-f233-4eab-acc8-12e8f2a96aec | test-vm | ACTIVE | - | Running | test-net=10.0.0.102 | +--------------------------------------+---------+--------+------------+-------------+---------------------+
6. 在计算节点查看虚拟机
安装virsh命令的包
[root@computer1 ~]# yum install libvirt -y
[root@computer1 ~]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-11-19 23:07:07 CST; 50s ago Docs: man:libvirtd(8) http://libvirt.org Main PID: 7865 (libvirtd) CGroup: /system.slice/libvirtd.service ├─7865 /usr/sbin/libvirtd ├─7999 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libv... └─8000 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libv... Nov 19 23:07:07 computer1 systemd[1]: Started Virtualization daemon. Nov 19 23:07:23 computer1 dnsmasq[7999]: started, version 2.76 cachesize 150 Nov 19 23:07:23 computer1 dnsmasq[7999]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-co...inotify Nov 19 23:07:23 computer1 dnsmasq-dhcp[7999]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h Nov 19 23:07:23 computer1 dnsmasq-dhcp[7999]: DHCP, sockets bound exclusively to interface virbr0 Nov 19 23:07:23 computer1 dnsmasq[7999]: reading /etc/resolv.conf Nov 19 23:07:23 computer1 dnsmasq[7999]: using nameserver 223.5.5.5#53 Nov 19 23:07:23 computer1 dnsmasq[7999]: read /etc/hosts - 4 addresses Nov 19 23:07:23 computer1 dnsmasq[7999]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses Nov 19 23:07:23 computer1 dnsmasq-dhcp[7999]: read /var/lib/libvirt/dnsmasq/default.hostsfile Hint: Some lines were ellipsized, use -l to show in full.
查看虚拟机
[root@computer1 ~]# virsh list Id Name State ---------------------------------------------------- 1 instance-00000001 running [root@computer1 ~]# netstat -lntup |grep 5900 tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 7666/qemu-kvm [root@computer1 ~]#
在控制节点上再创建一个实例
[root@controller ~]# openstack server create --flavor m1.nano --image cirros --nic net-id=2fcb8979-fc5f-41f0-a1ce-955c595d521e --security-group default --key-name mykey test-vm2 +--------------------------------------+-----------------------------------------------+ | Field | Value | +--------------------------------------+-----------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | instance-00000002 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | None | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | | | adminPass | vGQYgLz48aLi | | config_drive | | | created | 2020-11-19T15:10:40Z | | flavor | m1.nano (0) | | hostId | | | id | 854e2371-a45c-45cf-91d3-5c70a7be1fd9 | | image | cirros (0dc22fbc-be1c-4fe8-9b0f-138e486fd3af) | | key_name | mykey | | name | test-vm2 | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | project_id | 9a6e662b63de48eeb651a3332c74b092 | | properties | | | security_groups | [{u'name': u'default'}] | | status | BUILD | | updated | 2020-11-19T15:10:40Z | | user_id | 10e57203019442eb85062f7e90e5604b | +--------------------------------------+-----------------------------------------------+
[root@controller ~]# nova list +--------------------------------------+----------+--------+------------+-------------+---------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+----------+--------+------------+-------------+---------------------+ | 82e12d66-f233-4eab-acc8-12e8f2a96aec | test-vm | ACTIVE | - | Running | test-net=10.0.0.102 | | 854e2371-a45c-45cf-91d3-5c70a7be1fd9 | test-vm2 | ACTIVE | - | Running | test-net=10.0.0.103 | +--------------------------------------+----------+--------+------------+-------------+---------------------+
计算节点上查看虚拟机
[root@computer1 ~]# virsh list Id Name State ---------------------------------------------------- 1 instance-00000001 running 2 instance-00000002 running [root@computer1 ~]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 7666/qemu-kvm tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 8116/qemu-kvm tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7999/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1161/sshd tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::80 :::* LISTEN 7119/httpd tcp6 0 0 :::22 :::* LISTEN 1161/sshd udp 0 0 192.168.122.1:53 0.0.0.0:* 7999/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 7999/dnsmasq udp 0 0 127.0.0.1:323 0.0.0.0:* 936/chronyd udp6 0 0 ::1:323 :::* 936/chronyd
7 在web页面上查看
三、web页面创建实例操作
1. 启动实例
点击启动实例
2. 控制台登录实例
解决办法:在windows的host配置文件中添加controller解析ip地址
刷新后报错如下(如果实例卡在gurb界面)
解决办法:
在计算节点上修改/etc/nova/nova.conf配置文件
[root@computer1 ~]# openstack-config --set /etc/nova/nova.conf libvirt cpu_mode none [root@computer1 ~]# openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu [root@computer1 ~]# cat /etc/nova/nova.conf [DEFAULT] enabled_apis = osapi_compute,metadata rpc_backend = rabbit auth_strategy = keystone my_ip = 10.0.0.12 use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver [api_database] [barbican] [cache] [cells] [cinder] [conductor] [cors] [cors.subdomain] [database] [ephemeral_storage_encryption] [glance] api_servers = http://controller:9292 [guestfs] [hyperv] [image_file_url] [ironic] [keymgr] [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 = nova password = 123456 [libvirt] cpu_mode = none virt_type = qemu [matchmaker_redis] [metrics] [neutron] url = http://controller:9696 auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = 123456 [osapi_v21] [oslo_concurrency] lock_path = /var/lib/nova/tmp [oslo_messaging_amqp] [oslo_messaging_notifications] [oslo_messaging_rabbit] rabbit_host = 10.0.0.11 rabbit_userid = openstack rabbit_password = 123456 [oslo_middleware] [oslo_policy] [rdp] [serial_console] [spice] [ssl] [trusted_computing] [upgrade_levels] [vmware] [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [workarounds] [xenserver]
#重启openstack-nova-compute服务
[root@computer1 ~]# systemctl restart openstack-nova-compute.service [root@computer1 ~]# systemctl status openstack-nova-compute.service ● openstack-nova-compute.service - OpenStack Nova Compute Server Loaded: loaded (/usr/lib/systemd/system/openstack-nova-compute.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-11-19 23:43:04 CST; 10s ago Main PID: 9389 (nova-compute) CGroup: /system.slice/openstack-nova-compute.service └─9389 /usr/bin/python2 /usr/bin/nova-compute Nov 19 23:42:44 computer1 systemd[1]: Starting OpenStack Nova Compute Server... Nov 19 23:43:04 computer1 nova-compute[9389]: /usr/lib/python2.7/site-packages/pkg_resources/__init__.py:187: RuntimeWarning: You ha... Nov 19 23:43:04 computer1 nova-compute[9389]: stacklevel=1, Nov 19 23:43:04 computer1 systemd[1]: Started OpenStack Nova Compute Server. Hint: Some lines were ellipsized, use -l to show in full.
3. 重启实例,登录实例控制台
4. 控制节点免秘钥登录,登录成功
[root@controller ~]# ssh cirros@10.0.0.102 The authenticity of host '10.0.0.102 (10.0.0.102)' can't be established. RSA key fingerprint is SHA256:bqTdki/sHHJAcMAJsL+pBXjvc1E0/g7F8F6DUVEtiz4. RSA key fingerprint is MD5:4e:c9:ea:05:16:9f:88:52:e4:fe:66:fc:0c:fa:df:f8. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.102' (RSA) to the list of known hosts. $ cat /etc/os-release NAME=Buildroot VERSION=2012.05 ID=buildroot VERSION_ID=2012.05 PRETTY_NAME="Buildroot 2012.05" $
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示