跳转至

9. 启动第一个openstack实例

0. 步骤

## 1.创建openstack网络
## 2.创建实例的硬件配置方案
## 3.创建密钥对
## 4.创建安全组规则
## 5.启动一个实例

1:创建网络(网络名+子网)

#controller

#1.创建网络oldboy
neutron net-create --shared --provider:physical_network provider --provider:network_type flat oldboy

#2.创建子网,注意修改成自己的网段及网关
neutron subnet-create --name oldgirl --allocation-pool start=192.168.178.101,end=192.168.178.250 \
  --dns-nameserver 223.5.5.5 --gateway 192.168.178.254 \
  oldboy 192.168.178.0/24
[root@controller ~]# #1.创建网络oldboy
[root@controller ~]# neutron net-create --shared --provider:physical_network provider --provider:network_type flat oldboy
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2021-12-03T02:56:17                  |
| description               |                                      |
| id                        | 925db129-fab0-43c6-9503-5677188adf1f |
| ipv4_address_scope        |                                      |
| ipv6_address_scope        |                                      |
| mtu                       | 1500                                 |
| name                      | oldboy                               |
| 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                 | ddd5154c1a8e46a386f93acfe53c57fd     |
| updated_at                | 2021-12-03T02:56:17                  |
+---------------------------+--------------------------------------+
[root@controller ~]#
[root@controller ~]# #2.创建子网,注意修改成自己的网段及网关
[root@controller ~]# neutron subnet-create --name oldgirl --allocation-pool start=192.168.178.101,end=192.168.178.250 \
>   --dns-nameserver 223.5.5.5 --gateway 192.168.178.254 \
>   oldboy 192.168.178.0/24
Created a new subnet:
+-------------------+--------------------------------------------------------+
| Field             | Value                                                  |
+-------------------+--------------------------------------------------------+
| allocation_pools  | {"start": "192.168.178.101", "end": "192.168.178.250"} |
| cidr              | 192.168.178.0/24                                       |
| created_at        | 2021-12-03T02:56:20                                    |
| description       |                                                        |
| dns_nameservers   | 223.5.5.5                                              |
| enable_dhcp       | True                                                   |
| gateway_ip        | 192.168.178.254                                        |
| host_routes       |                                                        |
| id                | 8356fc87-e72d-4e2a-81a8-be9270355279                   |
| ip_version        | 4                                                      |
| ipv6_address_mode |                                                        |
| ipv6_ra_mode      |                                                        |
| name              | oldgirl                                                |
| network_id        | 925db129-fab0-43c6-9503-5677188adf1f                   |
| subnetpool_id     |                                                        |
| tenant_id         | ddd5154c1a8e46a386f93acfe53c57fd                       |
| updated_at        | 2021-12-03T02:56:20                                    |
+-------------------+--------------------------------------------------------+

2:创建云主机的硬件配置方案

#1.查看默认的硬件配置方案
openstack flavor list

#2.创建新的配置方案
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
[root@controller ~]# #1.查看默认的硬件配置方案
[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      |
+----+-----------+-------+------+-----------+-------+-----------+
[root@controller ~]#
[root@controller ~]# #2.创建新的配置方案
[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 ~]#
[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:创建密钥对

#1.生成密钥
ssh-keygen -q -N "" -f ~/.ssh/id_rsa

#2.创建密钥对 mykey
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
[root@controller ~]# #1.生成密钥
[root@controller ~]# ssh-keygen -q -N "" -f ~/.ssh/id_rsa
[root@controller ~]#
[root@controller ~]# #2.创建密钥对 mykey
[root@controller ~]# openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
+-------------+-------------------------------------------------+
| Field       | Value                                           |
+-------------+-------------------------------------------------+
| fingerprint | 95:0f:6b:1e:77:72:2e:41:83:fc:e0:b1:06:9a:2c:17 |
| name        | mykey                                           |
| user_id     | 9f43863f530b446c9c82e7f237d599fa                |
+-------------+-------------------------------------------------+

4:创建安全组规则

#1.开启icmp
openstack security group rule create --proto icmp default

#2.开启22端口(有其他服务,则需要开启其他端口)
openstack security group rule create --proto tcp --dst-port 22 default
[root@controller ~]# #1.开启icmp
[root@controller ~]# openstack security group rule create --proto icmp default
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| id                    | 1abb95b7-b801-4227-86d2-bbfeb72e0354 |
| ip_protocol           | icmp                                 |
| ip_range              | 0.0.0.0/0                            |
| parent_group_id       | 7ed46c27-2bed-4ef7-b90c-272aa3d9f7dc |
| port_range            |                                      |
| remote_security_group |                                      |
+-----------------------+--------------------------------------+
[root@controller ~]#
[root@controller ~]# #2.开启22端口(有其他服务,则需要开启其他端口)
[root@controller ~]# openstack security group rule create --proto tcp --dst-port 22 default
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| id                    | 318de228-800f-4418-948b-c47ec2ffd59f |
| ip_protocol           | tcp                                  |
| ip_range              | 0.0.0.0/0                            |
| parent_group_id       | 7ed46c27-2bed-4ef7-b90c-272aa3d9f7dc |
| port_range            | 22:22                                |
| remote_security_group |                                      |
+-----------------------+--------------------------------------+

5:命令行启动一个实例:

#1.查看neutron的id
neutron net-list
# 得到id:925db129-fab0-43c6-9503-5677188adf1f

#2.修改net-id,然后启动实例!
openstack server create --flavor m1.nano --image cirros \
  --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default \
  --key-name mykey oldboy
[root@controller ~]# neutron net-list
+--------------------------------------+--------+-------------------------------------------------------+
| id                                   | name   | subnets                                               |
+--------------------------------------+--------+-------------------------------------------------------+
| 925db129-fab0-43c6-9503-5677188adf1f | oldboy | 8356fc87-e72d-4e2a-81a8-be9270355279 192.168.178.0/24 |
+--------------------------------------+--------+-------------------------------------------------------+
[root@controller ~]# openstack server create --flavor m1.nano --image cirros \
>   --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default \
>   --key-name mykey oldboy
+--------------------------------------+-----------------------------------------------+
| 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                            | VusMUQJD7ibc                                  |
| config_drive                         |                                               |
| created                              | 2021-12-03T03:02:09Z                          |
| flavor                               | m1.nano (0)                                   |
| hostId                               |                                               |
| id                                   | 3a16160d-d7ae-43e2-a6cd-c62971883bfc          |
| image                                | cirros (9b28c8ce-64d0-40b0-b4ef-61ab38f26d25) |
| key_name                             | mykey                                         |
| name                                 | oldboy                                        |
| os-extended-volumes:volumes_attached | []                                            |
| progress                             | 0                                             |
| project_id                           | ddd5154c1a8e46a386f93acfe53c57fd              |
| properties                           |                                               |
| security_groups                      | [{u'name': u'default'}]                       |
| status                               | BUILD                                         |
| updated                              | 2021-12-03T03:02:09Z                          |
| user_id                              | 9f43863f530b446c9c82e7f237d599fa              |
+--------------------------------------+-----------------------------------------------+
[root@controller ~]#
[root@controller ~]# openstack server list
+--------------------------------------+--------+--------+------------------------+
| ID                                   | Name   | Status | Networks               |
+--------------------------------------+--------+--------+------------------------+
| 3a16160d-d7ae-43e2-a6cd-c62971883bfc | oldboy | ERROR  | oldboy=192.168.178.102 |
+--------------------------------------+--------+--------+------------------------+

1. 查看实例

# 报错内容:No valid host was found. There are not enough hosts available.

img_5.png

6: 解决报错

# compute1节点
#如果实例卡在gurb界面
#1.修改配置文件,添加2行信息
vim /etc/nova/nova.conf
[libvirt]
cpu_mode = none
virt_type = qemu

#2.重启nova服务
systemctl restart openstack-nova-compute
[root@compute1 ~]# vim /etc/nova/nova.conf
[root@compute1 ~]#
[root@compute1 ~]#
[root@compute1 ~]# systemctl restart openstack-nova-compute
[root@compute1 ~]#
[root@compute1 ~]#
[root@compute1 ~]# cat /etc/nova/nova.conf
[DEFAULT]
enabled_apis = osapi_compute,metadata
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.178.31
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 = NOVA_PASS
[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 = NEUTRON_PASS
[osapi_v21]
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[oslo_messaging_amqp]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
[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]

7. 删除实例,重新创建

# 在网页上删除实例,然后重新创建
openstack server create --flavor m1.nano --image cirros   --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default   --key-name mykey oldboy

#2.检查
openstack server list
nova list
[root@controller ~]# openstack server create --flavor m1.nano --image cirros   --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default   --key-name mykey oldboy
+--------------------------------------+-----------------------------------------------+
| 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-00000003                             |
| 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                            | xM6EQXDRyq3Q                                  |
| config_drive                         |                                               |
| created                              | 2021-12-03T03:26:50Z                          |
| flavor                               | m1.nano (0)                                   |
| hostId                               |                                               |
| id                                   | f7428b03-5927-4526-b759-7dc34caebb88          |
| image                                | cirros (9b28c8ce-64d0-40b0-b4ef-61ab38f26d25) |
| key_name                             | mykey                                         |
| name                                 | oldboy                                        |
| os-extended-volumes:volumes_attached | []                                            |
| progress                             | 0                                             |
| project_id                           | ddd5154c1a8e46a386f93acfe53c57fd              |
| properties                           |                                               |
| security_groups                      | [{u'name': u'default'}]                       |
| status                               | BUILD                                         |
| updated                              | 2021-12-03T03:26:50Z                          |
| user_id                              | 9f43863f530b446c9c82e7f237d599fa              |
+--------------------------------------+-----------------------------------------------+
[root@controller ~]#
[root@controller ~]# openstack server list
+--------------------------------------+--------+--------+------------------------+
| ID                                   | Name   | Status | Networks               |
+--------------------------------------+--------+--------+------------------------+
| f7428b03-5927-4526-b759-7dc34caebb88 | oldboy | BUILD  | oldboy=192.168.178.104 |
+--------------------------------------+--------+--------+------------------------+
[root@controller ~]# openstack server list
+--------------------------------------+--------+--------+------------------------+
| ID                                   | Name   | Status | Networks               |
+--------------------------------------+--------+--------+------------------------+
| f7428b03-5927-4526-b759-7dc34caebb88 | oldboy | ACTIVE | oldboy=192.168.178.104 |
+--------------------------------------+--------+--------+------------------------+
[root@controller ~]#
[root@controller ~]# nova list
+--------------------------------------+--------+--------+------------+-------------+------------------------+
| ID                                   | Name   | Status | Task State | Power State | Networks               |
+--------------------------------------+--------+--------+------------+-------------+------------------------+
| f7428b03-5927-4526-b759-7dc34caebb88 | oldboy | ACTIVE | -          | Running     | oldboy=192.168.178.104 |
+--------------------------------------+--------+--------+------------+-------------+------------------------+

8. 在计算节点查看实例

#compute1
#1.安装工具libvert
yum install libvirt -y

#2.查看实例
virsh list
[root@compute1 ~]# #2.查看实例
[root@compute1 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 2     instance-00000003              running
[root@compute1 ~]#
[root@compute1 ~]# netstat -tunlp
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      4356/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      4899/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1179/sshd
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::80                   :::*                    LISTEN      1369/httpd
tcp6       0      0 :::22                   :::*                    LISTEN      1179/sshd
udp        0      0 0.0.0.0:1001            0.0.0.0:*                           828/rpcbind
udp        0      0 192.168.122.1:53        0.0.0.0:*                           4899/dnsmasq
udp        0      0 0.0.0.0:67              0.0.0.0:*                           4899/dnsmasq
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           856/chronyd
udp6       0      0 :::1001                 :::*                                828/rpcbind
udp6       0      0 :::111                  :::*                                1/systemd
udp6       0      0 ::1:323                 :::*                                856/chronyd

9. 网页端创建实例

1. 启动实例

# 在计算-实例中,点击右上角的启动实例,然后输入实例名称:oldgirl,数量调整为2个,然后点击源

img_6.png

2. 选择镜像

# 因为目前只有一个镜像,所以直接点击cirror右侧的“+”

img_7.png

3. 选取硬件配置方案

# 选择64m内存的方案右侧的“+”

img_8.png

4. 启动实例

# 其他选项保持默认即可,然后点击启动实例,启动后如下

img_9.png

10. 网页连接到实例

1. 打开控制台

# 在实例页面,点击实例名称,然后点击控制台

img_10.png

2. windows添加host解析

# 在windows中,添加controller的host解析!
# C:\Windows\System32\drivers\etc\hosts
192.168.178.11 controller

3. 硬重启实例

# 刷新页面,依旧不行。点击右上角的下拉菜单,然后硬重启实例

img_11.png

4. 再次测试

# 谷歌浏览器不好使
# 换到火狐浏览器后,出现如下界面,提示登录,给了用户名和密码:cirros : cubswin:)

img_12.png

# 登录成功如下

img_13.png

11. 服务器连接实例

1. 控制节点

#controller
ssh cirros@192.168.178.104
# 因为启动时设置了密钥对,所以直接免密登录了!
[root@controller ~]# ssh cirros@192.168.178.104
The authenticity of host '192.168.178.104 (192.168.178.104)' can't be established.
RSA key fingerprint is SHA256:LAoleqSBx+oOd9l3xq+Nwk2w2xaeOzhqrurczZOL328.
RSA key fingerprint is MD5:b3:e3:73:f7:7d:55:dc:7e:94:c9:af:d5:0d:28:ba:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.178.104' (RSA) to the list of known hosts.
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether fa:16:3e:10:b4:3a brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.104/24 brd 192.168.178.255 scope global eth0
    inet6 fe80::f816:3eff:fe10:b43a/64 scope link
       valid_lft forever preferred_lft forever
$

2. 计算节点(或其他)

# 需要输入用户名和密码!
[root@compute1 ~]# ssh cirros@192.168.178.104
The authenticity of host '192.168.178.104 (192.168.178.104)' can't be established.
RSA key fingerprint is SHA256:LAoleqSBx+oOd9l3xq+Nwk2w2xaeOzhqrurczZOL328.
RSA key fingerprint is MD5:b3:e3:73:f7:7d:55:dc:7e:94:c9:af:d5:0d:28:ba:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.178.104' (RSA) to the list of known hosts.
cirros@192.168.178.104's password:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether fa:16:3e:10:b4:3a brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.104/24 brd 192.168.178.255 scope global eth0
    inet6 fe80::f816:3eff:fe10:b43a/64 scope link
       valid_lft forever preferred_lft forever
$

最后更新: 2022-02-20 04:00:12