搭建多OpenStack多节点私有云平台)(七)(创建实例)

创建一个网络实例

1、命令创建云主机

  1. 创建虚拟网络创建网络

    1. 在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限:

      $ . admin-openrc
      
    2. 创建网络:

      --shared 共享的;

      --provider:physical_network provider:物理网络名词叫:provider;

      与配置文件里 [root@controller ~]# cat /etc/neutron/plugins/ml2/ml2_conf.ini 的物理网络一样flat类型

      --provider:network_type flat myprovider创建的网络名字交myprovider

      $ neutron net-create --shared --provider:physical_network provider \
        --provider:network_type flat myprovider
      +---------------------------+--------------------------------------+
      | Field                     | Value                                |
      +---------------------------+--------------------------------------+
      | admin_state_up            | True                                 |
      | availability_zone_hints   |                                      |
      | availability_zones        |                                      |
      | created_at                | 2020-11-23T05:16:40Z                 |
      | description               |                                      |
      | id                        | fb2e720c-f8a7-4e68-b4cb-ed3b9ea67223 |
      | ipv4_address_scope        |                                      |
      | ipv6_address_scope        |                                      |
      | mtu                       | 1500                                 |
      | name                      | myprovider                           |
      | port_security_enabled     | True                                 |
      | project_id                | 144d035e5f604e5383fc3cc4e1ce5b3c     |
      | provider:network_type     | flat                                 |
      | provider:physical_network | provider                             |
      | provider:segmentation_id  |                                      |
      | revision_number           | 2                                    |
      | router:external           | False                                |
      | shared                    | True                                 |
      | status                    | ACTIVE                               |
      | subnets                   |                                      |
      | tags                      |                                      |
      | tenant_id                 | 144d035e5f604e5383fc3cc4e1ce5b3c     |
      | updated_at                | 2020-11-23T05:16:40Z                 |
      +---------------------------+--------------------------------------+
      
      

      查看配置文件有没有以下内容:/etc/neutron/plugins/ml2/ml2_conf.ini:

      [ml2_type_flat]
      flat_networks = provider
      

      /etc/neutron/plugins/ml2/linuxbridge_agent.ini:

      [linux_bridge]
      physical_interface_mappings = provider:ens33
      
    3. 在网络上创建一个子网:

      $ neutron subnet-create --name provider \
        --allocation-pool start=START_IP_ADDRESS,end=END_IP_ADDRESS \
        --dns-nameserver DNS_RESOLVER --gateway PROVIDER_NETWORK_GATEWAY \
        provider PROVIDER_NETWORK_CIDR
      

      使用提供者物理网络的子网CIDR标记替换PROVIDER_NETWORK_CIDR

      START_IP_ADDRESSEND_IP_ADDRESS使用你想分配给实例的子网网段的第一个和最后一个IP地址。这个范围不能包括任何已经使用的IP地址。

      DNS_RESOLVER 替换为DNS解析服务的IP地址。在大多数情况下,你可以从主机/etc/resolv.conf 文件选择一个使用。

      PUBLIC_NETWORK_GATEWAY 替换为公共网络的网关,一般的网关IP地址以 ”.1” 结尾。

      例子

      公共网络203.0.113.0/24的网关为203.0.113.1。DHCP服务为每个实例分配IP,IP从203.0.113.101 到 203.0.113.200。所有实例的DNS使用8.8.4.4。

      $ neutron subnet-create --name myproviderps \
        --allocation-pool start=192.168.25.230,end=192.168.25.240 \
        --dns-nameserver 114.114.114.114 --gateway 192.168.25.2 \
        myprovider 192.168.25.0/24
      +-------------------+------------------------------------------------------+
      | Field             | Value                                                |
      +-------------------+------------------------------------------------------+
      | allocation_pools  | {"start": "192.168.25.230", "end": "192.168.25.240"} |
      | cidr              | 192.168.25.0/24                                      |
      | created_at        | 2020-11-23T05:27:44Z                                 |
      | description       |                                                      |
      | dns_nameservers   | 114.114.114.114                                      |
      | enable_dhcp       | True                                                 |
      | gateway_ip        | 192.168.25.2                                         |
      | host_routes       |                                                      |
      | id                | 22d0df96-db82-4ab2-bf99-7d8bcf6be4aa                 |
      | ip_version        | 4                                                    |
      | ipv6_address_mode |                                                      |
      | ipv6_ra_mode      |                                                      |
      | name              | myproviderps                                         |
      | network_id        | cb5f2225-2d0f-4c04-9493-0e9e8b546990                 |
      | project_id        | 144d035e5f604e5383fc3cc4e1ce5b3c                     |
      | revision_number   | 0                                                    |
      | service_types     |                                                      |
      | subnetpool_id     |                                                      |
      | tags              |                                                      |
      | tenant_id         | 144d035e5f604e5383fc3cc4e1ce5b3c                     |
      | updated_at        | 2020-11-23T05:27:44Z                                 |
      +-------------------+------------------------------------------------------+
      
      
  2. 创建规格

    默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的,我们推荐创建只需要64 MB的m1.nano规格的主机。若单纯为了测试的目的,请使用m1.nano规格的主机来加载CirrOS镜像

    --disk 1 硬盘需要1G

    $ 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    |
    | properties                 |         |
    | ram                        | 64      |
    | rxtx_factor                | 1.0     |
    | swap                       |         |
    | vcpus                      | 1       |
    +----------------------------+---------+
    

    查看有哪些硬件规程方案 [root@controller ~]# openstack flavor list

  3. 生成键值对

    1. 生成和添加秘钥对:

      $ ssh-keygen -q -N ""
      Enter file in which to save the key (/root/.ssh/id_rsa): 
      /root/.ssh/id_rsa already exists.
      Overwrite (y/n)? 
      $ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
      +-------------+-------------------------------------------------+
      | Field       | Value                                           |
      +-------------+-------------------------------------------------+
      | fingerprint | 91:42:8a:af:f6:e0:a1:8d:5b:df:d7:30:d7:3a:2b:24 |
      | name        | mykey                                           |
      | user_id     | d2f32ce32f764264afa783e11c5e6e92                |
      +-------------+-------------------------------------------------+
      
    2. 验证公钥的添加:

      $ openstack keypair list
      +-------+-------------------------------------------------+
      | Name  | Fingerprint                                     |
      +-------+-------------------------------------------------+
      | mykey | 91:42:8a:af:f6:e0:a1:8d:5b:df:d7:30:d7:3a:2b:24 |
      +-------+-------------------------------------------------+
      
  4. 增加安全组规则

    添加规则到 default 安全组。

    • 允许 ICMP (ping):

      $ openstack security group rule create --proto icmp default
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | created_at        | 2020-11-23T01:04:44Z                 |
      | description       |                                      |
      | direction         | ingress                              |
      | ether_type        | IPv4                                 |
      | id                | 8429fc67-e19a-4afd-b2e2-0241beda99f2 |
      | name              | None                                 |
      | port_range_max    | None                                 |
      | port_range_min    | None                                 |
      | project_id        | 144d035e5f604e5383fc3cc4e1ce5b3c     |
      | protocol          | icmp                                 |
      | remote_group_id   | None                                 |
      | remote_ip_prefix  | 0.0.0.0/0                            |
      | revision_number   | 0                                    |
      | security_group_id | 187247aa-8278-4df7-8be3-3e1473dd683a |
      | updated_at        | 2020-11-23T01:04:44Z                 |
      +-------------------+--------------------------------------+
      
    • 允许安全 shell (SSH) 的访问:

      $ openstack security group rule create --proto tcp --dst-port 22 default
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | created_at        | 2020-11-23T01:05:33Z                 |
      | description       |                                      |
      | direction         | ingress                              |
      | ether_type        | IPv4                                 |
      | id                | c4cb0fb5-3930-43ac-9ddc-4a1818040bfd |
      | name              | None                                 |
      | port_range_max    | 22                                   |
      | port_range_min    | 22                                   |
      | project_id        | 144d035e5f604e5383fc3cc4e1ce5b3c     |
      | protocol          | tcp                                  |
      | remote_group_id   | None                                 |
      | remote_ip_prefix  | 0.0.0.0/0                            |
      | revision_number   | 0                                    |
      | security_group_id | 187247aa-8278-4df7-8be3-3e1473dd683a |
      | updated_at        | 2020-11-23T01:05:33Z                 |
      +-------------------+--------------------------------------+
      
  5. 确定实例环境

    1. 一个实例指定了虚拟机资源的大致分配,包括处理器、内存和存储。

      列出可用类型:

      $ openstack flavor list
      +----+---------+-----+------+-----------+-------+-----------+
      | ID | Name    | RAM | Disk | Ephemeral | VCPUs | Is Public |
      +----+---------+-----+------+-----------+-------+-----------+
      | 0  | m1.nano |  64 |    1 |         0 |     1 | True      |
      +----+---------+-----+------+-----------+-------+-----------+
      
    2. 列出可用镜像:

      $ openstack image list
      +--------------------------------------+--------+--------+
      | ID                                   | Name   | Status |
      +--------------------------------------+--------+--------+
      | d81bc2ba-ffcf-402c-abe4-62dd062d583f | cirros | active |
      +--------------------------------------+--------+--------+
      

      这个实例使用cirros镜像。

    3. 列出可用网络:

      $ openstack network list
      +--------------------------------------+------------+--------------------------------------+
      | ID                                   | Name       | Subnets                              |
      +--------------------------------------+------------+--------------------------------------+
      | 2af382f6-5935-489c-8962-53a0b91609bd | myprovider | 3f3f0c5b-19d9-4f29-91cb-0ff4a2e3e954 |
      +--------------------------------------+------------+--------------------------------------+
      
    4. 列出可用的安全组:

      $ openstack security group list
      +--------------------------------------+---------+-------------+----------------------------------+
      | ID                                   | Name    | Description | Project                          |
      +--------------------------------------+---------+-------------+----------------------------------+
      | 187247aa-8278-4df7-8be3-3e1473dd683a | default | 缺省安全组  | 144d035e5f604e5383fc3cc4e1ce5b3c |
      +--------------------------------------+---------+-------------+----------------------------------+
      
      

      这个实例使用 default 安全组。

  6. 创建实例

    1. 启动实例:

      使用provider公有网络的ID替换PUBLIC_NET_ID

      如果你选择选项1并且你的环境只有一个网络,你可以省去–nic 选项因为OpenStack会自动选择这个唯一可用的网络。

      $ openstack server create --flavor m1.tiny --image cirros \
        --nic net-id=PROVIDER_NET_ID --security-group default \
        --key-name mykey provider-instance
      

      例子:

      # neutron net-list
      +--------------------------------------+------------+----------------------------------+------------------------------------------------------+
      | id                                   | name       | tenant_id                        | subnets                                              |
      +--------------------------------------+------------+----------------------------------+------------------------------------------------------+
      | 2af382f6-5935-489c-8962-53a0b91609bd | myprovider | 144d035e5f604e5383fc3cc4e1ce5b3c | 3f3f0c5b-19d9-4f29-91cb-0ff4a2e3e954 192.168.25.0/24 |
      +--------------------------------------+------------+----------------------------------+------------------------------------------------------+
      
      $ openstack server create --flavor m1.nano --image cirros --security-group default --key-name mykey computer1
      +-------------------------------------+-----------------------------------------------+
      | 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       |                                               |
      | OS-EXT-STS:power_state              | NOSTATE                                       |
      | 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                           | d9ZD8cupQ6yu                                  |
      | config_drive                        |                                               |
      | created                             | 2020-11-23T01:07:32Z                          |
      | flavor                              | m1.nano (0)                                   |
      | hostId                              |                                               |
      | id                                  | 50a8fc9c-e73c-4056-a371-e92f07d4994b          |
      | image                               | cirros (d81bc2ba-ffcf-402c-abe4-62dd062d583f) |
      | key_name                            | mykey                                         |
      | name                                | computer1                                     |
      | progress                            | 0                                             |
      | project_id                          | 144d035e5f604e5383fc3cc4e1ce5b3c              |
      | properties                          |                                               |
      | security_groups                     | name='187247aa-8278-4df7-8be3-3e1473dd683a'   |
      | status                              | BUILD                                         |
      | updated                             | 2020-11-23T01:07:32Z                          |
      | user_id                             | d2f32ce32f764264afa783e11c5e6e92              |
      | volumes_attached                    |                                               |
      +-------------------------------------+-----------------------------------------------+
      
      
    2. 检查实例的状态:

      [root@controller ~]# openstack server list
      +--------------------------------------+-----------+--------+---------------------------+---------+---------+
      | ID                                   | Name      | Status | Networks                  | Image   | Flavor  |
      +--------------------------------------+-----------+--------+---------------------------+---------+---------+
      | d6768be9-d93f-4c6c-9e62-e98c560878fb | computer1 | ACTIVE | myprovider=192.168.16.165 | cirros5 | m1.nano |
      +--------------------------------------+-----------+--------+---------------------------+---------+---------+
      [root@controller ~]# nova list
      +--------------------------------------+-----------+--------+------------+-------------+---------------------------+
      | ID                                   | Name      | Status | Task State | Power State | Networks                  |
      +--------------------------------------+-----------+--------+------------+-------------+---------------------------+
      | d6768be9-d93f-4c6c-9e62-e98c560878fb | computer1 | ACTIVE | -          | Running     | myprovider=192.168.16.165 |
      +--------------------------------------+-----------+--------+------------+-------------+---------------------------+
      
      

当构建过程完全成功后,状态会从 BUILD``变为``ACTIVE

实例存放位置:

查看有没有弄好:

    [root@compute1 _base]# cd /var/lib/nova/instances/
    [root@compute1 instances]# ls
    _base  compute_nodes  d6768be9-d93f-4c6c-9e62-e98c560878fb  locks
    [root@compute1 instances]# cd d6768be9-d93f-4c6c-9e62-e98c560878fb/
    [root@compute1 d6768be9-d93f-4c6c-9e62-e98c560878fb]# ls
    console.log  disk  disk.info
    [root@compute1 d6768be9-d93f-4c6c-9e62-e98c560878fb]# ll -h
    total 204K
    -rw------- 1 root root    0 Nov 22 12:22 console.log
    -rw-r--r-- 1 qemu qemu 257K Nov 22 12:22 disk
    -rw-r--r-- 1 nova nova   79 Nov 22 12:22 disk.info
    
  1. 使用虚拟机访问实例

    1. 获取你实例的 Virtual Network Computing (VNC) 会话URL并从web浏览器访问它:

      $ openstack console url show provider-instance 
      

      注解

      如果你运行浏览器的主机无法解析controller 主机名,你可以将 [](https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/launch-instance-provider.html#id1)controller替换为你控制节点管理网络的IP地址。

      CirrOS 镜像包含传统的用户名/密码认证方式并需在登录提示中提供这些这些认证。登录到 CirrOS 后,我们建议您验证使用ping验证网络的连通性。

      [root@controller ~]# openstack console url show computer1
      +-------+---------------------------------------------------------------------------------+
      | Field | Value                                                                           |
      +-------+---------------------------------------------------------------------------------+
      | type  | novnc                                                                           |
      | url   | http://controller:6080/vnc_auto.html?token=8757eda3-f872-4619-a2c0-d4482e46792d |
      +-------+---------------------------------------------------------------------------------+
      

      备注:

      1、需要修改C:\Windows\System32\drivers\etc\hosts文件的解析,添加controller解析地址

      2、修改计算节点的nova.conf

      [root@compute1 ~]# vi /etc/nova/nova.conf 
      
      [libvirt]
      virt_type = qemu
      cpu_mode = none
      

      重启计算服务: [root@compute1 ~]# systemctl restart libvirtd.service openstack-nova-compute.service 然后硬重启实例

查看日志文件

less /var/log/nova/nova-compute.log

2、web界面创建云主机

posted @ 2020-12-07 10:13  龙吟九枭  阅读(437)  评论(0)    收藏  举报