OpenStack认识与使用2-实例,可视化,私有网络,镜像,以及存储节点


1、启动一个实例

官方参考链接

1.1 创建虚拟网络

在启动实例之前,必须创建必须的虚拟机网络设施。对于网络选项1,实例使用提供者(外部)网络,提供者网络通过L2(桥/交换机)设备连接到物理网络。这个网络包括为实例提供IP地址的DHCP服务器。

admin或者其他权限用户必须创建这个网络,因为它直接连接到物理网络设施。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.1.1 创建提供者网络

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

$ . admin-openrc

2.创建网络

$ neutron net-create --shared --provider:physical_network provider \
  --provider:network_type flat provider
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | 0e62efcd-8cee-46c7-b163-d8df05c3c5ad |
| mtu                       | 1500                                 |
| name                      | provider                             |
| port_security_enabled     | True                                 |
| provider:network_type     | flat                                 |
| provider:physical_network | provider                             |
| provider:segmentation_id  |                                      |
| router:external           | False                                |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tenant_id                 | d84313397390425c8ed50b2f6e18d092     |
+---------------------------+--------------------------------------+

3.创建子网

$ neutron subnet-create --name provider \
  --allocation-pool start=172.25.200.100,end=172.25.200.200 \ ## dhcp地址池范围
  --dns-nameserver 114.114.114.114 --gateway 172.25.200.250 \ ## dns服务器地址与网关地址
  provider 172.25.200.0/24                                     ## 公共网 网段
Created a new subnet:
+-------------------+----------------------------------------------------+
| Field             | Value                                              |
+-------------------+----------------------------------------------------+
| allocation_pools  | {"start": "172.25.200.100", "end": "172.25.200.200"} |
| cidr              | 172.25.200.0/24                                    |
| dns_nameservers   | 114.114.114.114                                    |
| enable_dhcp       | True                                               |
| gateway_ip        | 172.25.200.250                                     |
| host_routes       |                                                    |
| id                | 5cc70da8-4ee7-4565-be53-b9c011fca011               |
| ip_version        | 4                                                  |
| ipv6_address_mode |                                                    |
| ipv6_ra_mode      |                                                    |
| name              | provider                                           |
| network_id        | 0e62efcd-8cee-46c7-b163-d8df05c3c5ad               |
| subnetpool_id     |                                                    |
| tenant_id         | d84313397390425c8ed50b2f6e18d092                   |
+-------------------+----------------------------------------------------+

1.1.2 创建私有网络

这里实验暂时使用公共网络
官网从参考链接

1.2 创建m1.nano规格的主机

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

$ 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       |
+----------------------------+---------+

1.3 生成一个键值对

大部分云镜像支持公共密钥认证而不是传统的密码认证。在启动实例前,你必须添加一个公共密钥到计算服务。

1.导入租户"demo"的凭证
$ . demo-openrc

2.生成和添加秘钥对:
$ ssh-keygen -q -N ""
$ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey   ##需要先做ssh-keygen生成公钥
+-------------+-------------------------------------------------+
| Field       | Value                                           |
+-------------+-------------------------------------------------+
| fingerprint | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
| name        | mykey                                           |
| user_id     | 58126687cbcc4888bfa9ab73a2256f27                |
+-------------+-------------------------------------------------+

 另外,你可以跳过执行 ssh-keygen 命令而使用已存在的公钥。

3.验证公钥的添加:
$ openstack keypair list
+-------+-------------------------------------------------+
| Name  | Fingerprint                                     |
+-------+-------------------------------------------------+
| mykey | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
+-------+-------------------------------------------------+

1.4 增加安全组规则

默认情况下, default安全组适用于所有实例并且包括拒绝远程访问实例的防火墙规则。对诸如CirrOS这样的Linux镜像,我们推荐至少允许ICMP (ping) 和安全shell(SSH)规则。

添加规则到 default 安全组。

- 允许 ICMP (ping):

$ openstack security group rule create --proto icmp default
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| id                    | a1876c06-7f30-4a67-a324-b6b5d1309546 |
| ip_protocol           | icmp                                 |
| ip_range              | 0.0.0.0/0                            |
| parent_group_id       | b0d53786-5ebb-4729-9e4a-4b675016a958 |
| port_range            |                                      |
| remote_security_group |                                      |
+-----------------------+--------------------------------------+

- 允许安全 shell (SSH) 的访问:

$ openstack security group rule create --proto tcp --dst-port 22 default
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| id                    | 3d95e59c-e98d-45f1-af04-c750af914f14 |
| ip_protocol           | tcp                                  |
| ip_range              | 0.0.0.0/0                            |
| parent_group_id       | b0d53786-5ebb-4729-9e4a-4b675016a958 |
| port_range            | 22:22                                |
| remote_security_group |                                      |
+-----------------------+--------------------------------------+

1.5 启动一个实例

如果选择网络选项1,你只能在公网创建实例。如果选择网络选项2,你可以在公网或私网创建实例。

1.5.1 在公有网络上创建实例

启动一台实例,您必须至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。

1.在控制节点上,获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . demo-openrc
一个实例指定了虚拟机资源的大致分配,包括处理器、内存和存储。

2.列出可用类型:
$ 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      |
+----+-----------+-------+------+-----------+-------+-----------+
这个实例使用"m1.tiny"规格的主机。如果你创建了"m1.nano"这种主机规格,使用"m1.nano"来代替"m1.tiny"。

3.列出可用镜像:
$ openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 390eb5f7-8d49-41ec-95b7-68c0d5d54b34 | cirros | active |
+--------------------------------------+--------+--------+
这个实例使用"cirros"镜像。  ##可以网上查找,我是下载到本地的

4.列出可用网络:
$ openstack network list
+--------------------------------------+--------------+--------------------------------------+
| ID                                   | Name         | Subnets                              |
+--------------------------------------+--------------+--------------------------------------+
| 4716ddfe-6e60-40e7-b2a8-42e57bf3c31c | selfservice  | 2112d5eb-f9d6-45fd-906e-7cabd38b7c7c |
| b5b6993c-ddf9-40e7-91d0-86806a42edb8 | provider     | 310911f6-acf0-4a47-824e-3032916582ff |
+--------------------------------------+--------------+--------------------------------------+
这个实例使用 "provider"公有网络。 你必须使用ID而不是名称才可以使用这个网络。

5.列出可用的安全组:
$ openstack security group list
+--------------------------------------+---------+------------------------+
| ID                                   | Name    | Description            |
+--------------------------------------+---------+------------------------+
| dd2b614c-3dad-48ed-958b-b155a3b38515 | default | Default security group |
+--------------------------------------+---------+------------------------+
这个实例使用 default 安全组。

1.5.2 创建实例

1.启动实例:

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


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

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

+--------------------------------------+-----------------------------------------------+
| Property                             | Value                                         |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                        |
| OS-EXT-AZ:availability_zone          | nova                                          |
| OS-EXT-STS:power_state               | 0                                             |
| OS-EXT-STS:task_state                | scheduling                                    |
| OS-EXT-STS:vm_state                  | building                                      |
| OS-SRV-USG:launched_at               | -                                             |
| OS-SRV-USG:terminated_at             | -                                             |
| accessIPv4                           |                                               |
| accessIPv6                           |                                               |
| adminPass                            | hdF4LMQqC5PB                                  |
| config_drive                         |                                               |
| created                              | 2015-09-17T21:58:18Z                          |
| flavor                               | m1.tiny (1)                                   |
| hostId                               |                                               |
| id                                   | 181c52ba-aebc-4c32-a97d-2e8e82e4eaaf          |
| image                                | cirros (38047887-61a7-41ea-9b49-27987d5e8bb9) |
| key_name                             | mykey                                         |
| metadata                             | {}                                            |
| name                                 | provider-instance                             |
| os-extended-volumes:volumes_attached | []                                            |
| progress                             | 0                                             |
| security_groups                      | default                                       |
| status                               | BUILD                                         |
| tenant_id                            | f5b2ccaa75ac413591f12fcaa096aa5c              |
| updated                              | 2015-09-17T21:58:18Z                          |
| user_id                              | 684286a9079845359882afc3aa5011fb              |
+--------------------------------------+-----------------------------------------------+

2.检查实例的状态:
$ openstack server list
+--------------------------------------+-------------------+--------+---------------------------------+
| ID                                   | Name              | Status | Networks                        |
+--------------------------------------+-------------------+--------+---------------------------------+
| 181c52ba-aebc-4c32-a97d-2e8e82e4eaaf | provider-instance | ACTIVE | provider=203.0.113.103 |
+--------------------------------------+-------------------+--------+---------------------------------+
当构建过程完全成功后,状态会从 "BUILD" 变为"ACTIVE"

1.5.3 使用虚拟控制台访问实例

[root@controller ~]# openstack console url show provider-instance
+-------+--------------------------------------------------------------------------------+
| Field | Value                                                                          |
+-------+--------------------------------------------------------------------------------+
| type  | novnc                                                                          |
| url   | http://controller:6080/vnc_auto.html?token=535f20e2-51f4-48bc-                 |
|       | 9c39-2bb60dc37bde                                                              |
+-------+--------------------------------------------------------------------------------+

如果你运行浏览器的主机无法解析"controller" 主机名,你可以将 "controller"替换为你控制节点管理网络的IP地址


验证能否ping通公有网络的网关
[root@controller ~]# ping -c 4 172.25.200.250

验证能否连接到互联网
[root@controller ~]# ping -c 4 www.baidu.com

在这里插入图片描述

1.5.4 验证能否远程访问实例

1.验证控制节点或者其他公有网络上的主机能否ping通实例:
$ ping -c 4 203.0.113.103
PING 203.0.113.103 (203.0.113.103) 56(84) bytes of data.
64 bytes from 203.0.113.103: icmp_req=1 ttl=63 time=3.18 ms
64 bytes from 203.0.113.103: icmp_req=2 ttl=63 time=0.981 ms
64 bytes from 203.0.113.103: icmp_req=3 ttl=63 time=1.06 ms
64 bytes from 203.0.113.103: icmp_req=4 ttl=63 time=0.929 ms

--- 203.0.113.103 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.929/1.539/3.183/0.951 ms

2.在控制节点或其他公有网络上的主机使用 SSH远程访问实例:
$ ssh cirros@203.0.113.103
The authenticity of host '203.0.113.102 (203.0.113.102)' can't be established.
RSA key fingerprint is ed:05:e9:e7:52:a0:ff:83:68:94:c7:d1:f2:f8:e2:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '203.0.113.102' (RSA) to the list of known hosts.
$

2、可视化dashboard

官方参考链接

2.1 安装和配置

这个部分将描述如何在控制节点上安装和配置仪表板。

2.1.1 安全并配置组件

1.安装软件包:
# yum install openstack-dashboard

2.编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作:
   
    OPENSTACK_HOST = "controller" #在 controller 节点上配置仪表盘以使用 OpenStack 服务
 
    ALLOWED_HOSTS = ['*', ] #允许所有主机访问仪表板
   
    配置 memcached 会话存储服务:

    SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

    CACHES = {
         'default': {
             'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
             'LOCATION': 'controller:11211',
          }
     }
     将其他的会话存储服务配置注释。


     OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST  #启用第3版认证API


     OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True  #启用对域的支持

     配置API版本:

     OPENSTACK_API_VERSIONS = {
         "identity": 3,
         "image": 2,
         "volume": 2,
     }
	
	 OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default" #通过仪表盘创建用户时的默认域配置为 default

	 OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" #通过仪表盘创建的用户默认角色配置为 user
	 
	 如果您选择网络参数1,禁用支持3层网络服务:

	 OPENSTACK_NEUTRON_NETWORK = {
    	 ...
    	 'enable_router': False,
    	 'enable_quotas': False,
    	 'enable_distributed_router': False,
    	 'enable_ha_router': False,
     	 'enable_lb': False,
    	 'enable_firewall': False,
   	     'enable_vpn': False,
    	 'enable_fip_topology_check': False,
	 }
	 
	 可以选择性地配置时区:
	 TIME_ZONE = "TIME_ZONE"


3.完成安装
# systemctl restart httpd.service memcached.service  #重启web服务器以及会话存储服务

2.1.2 验证操作

在浏览器中输入 http://controller/dashboard访问仪表盘。
验证使用 admin 或者demo用户凭证和default域凭证。
在这里插入图片描述

3、添加私有网络

3.1 配置控制节点与计算节点

参考官网指导配置控制节点私有网络
参考官网指导配置计算节点私有网络

[root@controller ~]# vim /etc/openstack-dashboard/local_settings

在这里插入图片描述

3.2 图形化界面为私有网络添加路由

添加私有网络,把之前的provider网络用admin用户改为public,然后切demo用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 图形化操作使用私有网路创建一个实例

在这里插入图片描述

4、OpenStack 虚拟镜像使用指导

官方指导文档

在这里插入图片描述

4.1 安装准备云镜像

这里的母盘镜像我使用的是红帽7.6 ,仅供参考:

  1. 准备镜像iso

  2. kvm安装镜像,在cpu配置中一定要选择 host-passthrough

  3. 配置网络,yum源,hostname,等

  4. 安装ACPI服务

# yum install acpid
# systemctl enable acpid
  1. Use cloud-init to fetch the public key
# yum install cloud-init   cloud-utils-growpart -y
  1. Disable the zeroconf route
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
  1. Configure console
Edit the /etc/default/grub file and configure the GRUB_CMDLINE_LINUX option. Delete the rhgb quiet and add console=tty0 console=ttyS0,115200n8 to the option.

For example:

...
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8"
Run the following command to save the changes:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.14.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.14.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-605f01abef434fb98dd1309e774b72ba
Found initrd image: /boot/initramfs-0-rescue-605f01abef434fb98dd1309e774b72ba.img
done
  1. 关机,清理并压缩刚才的base镜像
# poweroff
# virt-sysprep -d base
# 压缩命令可以自己查一下,忘了,这步也可以不做
  1. 将制作好的镜像放到apche发布目录/var/www/html

在这里插入图片描述

4.2 使用admin用户创建镜像

在这里插入图片描述

在这里插入图片描述

4.3 切换demo用户选择small镜像拉起一个云主机

在这里插入图片描述

在这里插入图片描述

5、添加块存储

5.1 按照官方文档配置控制节点与存储节点

官方参考链接
新开存储节点,配置可以参考计算节点配置,这里不再赘述
在这里插入图片描述

5.2 demo用户登陆创建云存储并实现在云主机上挂载

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值