OpenStack(三)——allinone云平台的使用方法

如果OpenStack的宿主机是Exsi创建的虚拟机,则必须进行如下操作,选中OpenStack所在的Esxi系统-->进入摘要-->选中OpenStack宿主机所使用的虚拟网卡-->右键,编辑设置-->选择设置页面的安全-->混杂模式、MAC地址更改、伪传输全部设置为接受。希望后来者不会再被坑了

(1).使用命令创建OpenStack云主机

1)安装OpenStack客户端,方便使用命令行管理

1

2

3

4

5

6

7

8

9

10

[root@OpenStack240 ~]# pip install python-openstackclient//pip安装OpenStack客户端

ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.5'

[root@OpenStack240 ~]# pip install more-itertools==5.0.0

[root@OpenStack240 ~]# pip install python-openstackclient

ERROR: dogpile-cache 0.9.0 has requirement decorator>=4.0.0, but you'll have decorator 3.4.0 which is incompatible.

ERROR: Cannot uninstall 'ipaddress'. It is a distutils installed project and thus we cannot accurately determine which

 files belong to it which would lead to only a partial uninstall.

[root@OpenStack240 ~]# pip install dogpile-cache

[root@OpenStack240 ~]# pip install --ignore-installed ipaddress

[root@OpenStack240 ~]# pip install python-openstackclient

可以看到上面总共报了3个错误。第一个和第二个错误较为简单,只需要升级相应模块即可;第三个错误需要强制升级。

注意1:在pip安装时遇到“ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.5'”并不一定要升级python,也可以使用“pip install more-itertools==5.0.0”解决该问题。

注意2:在pip安装时遇到“ERROR: Cannot uninstall '模块名'. It is a distutils installed...”时,需要使用“pip install --ignore-installed [报错的模块名]”安装,之后再重新pip安装。

2)安装OpenStack网络相关命令

1

[root@OpenStack240 ~]# pip install python-neutronclient

如果出现某个模块已安装的提示,可以使用“pip install --ignore-installed [模块]”来强制安装解决该问题。

3)修改init-runonce脚本指定VIP地址范围,并使用该脚本创建OpenStack云项目

修改init-runonce脚本

1

2

3

4

5

[root@OpenStack240 ~]# vim /usr/share/kolla-ansible/init-runonce

//修改第19~21行,是网卡ens33所接入的局域网地址

EXT_NET_CIDR='192.168.128.0/24'

EXT_NET_RANGE='start=192.168.128.200,end=192.168.128.210'//取值范围

EXT_NET_GATEWAY='192.168.128.254'

使用init-runonce脚本创建一个OpenStack云项目。注意:该init-runonce脚本只能运行一次,断开就不能再运行了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

//查看是否存在,如果不存在运行kolla-ansible -i /etc/kolla/all-in-one post-deploy

[root@OpenStack240 ~]# ls /etc/kolla/admin-openrc.sh

/etc/kolla/admin-openrc.sh

[root@OpenStack240 ~]# source /etc/kolla/admin-openrc.sh//加载到环境变量中

[root@OpenStack240 ~]# sh /usr/share/kolla-ansible/init-runonce//执行init-runonce脚本

//成功后会提示执行以下命令,可能会不一样,但只要没有报错,执行就可以了

To deploy a demo instance, run:

openstack server create \

    --image cirros \

    --flavor m1.tiny \

    --key-name mykey \

    --network demo-net \

    demo1

//执行提示的命令

[root@OpenStack240 ~]# openstack server create \

>     --image cirros \//指定使用的镜像ID

>     --flavor m1.tiny \//指定使用的flavor名称

>     --key-name mykey \//指定key名称

>     --network demo-net \//指定网络名称

>     demo1//指定新建虚拟机的名称

虚拟机默认账号密码在登录时会有提示,如下

扩展:创建虚拟机命令中的参数可以到Web查看,当然也可以使用命令查看参数列表。确保加载了环境变量“source /etc/kolla/admin-openrc.sh”,才能使用以下命令。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

//查看已有镜像ID

[root@OpenStack240 ~]# openstack image list

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+--------------------------------------+--------+--------+

| ID                                   | Name   | Status |

+--------------------------------------+--------+--------+

| 3133fb61-24d2-4ee4-88d2-d7f4ae313ee4 | cirros | active |

+--------------------------------------+--------+--------+

[root@OpenStack240 ~]# glance image-list//镜像管理组件glance

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+--------------------------------------+--------+

| ID                                   | Name   |

+--------------------------------------+--------+

| 3133fb61-24d2-4ee4-88d2-d7f4ae313ee4 | cirros |

+--------------------------------------+--------+

//查看flavor

[root@OpenStack240 ~]# openstack network flavor list

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

[root@OpenStack240 ~]# nova flavor-list//计算管理组件nova

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+

| ID | Name      | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |

+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+

| 1  | m1.tiny   | 512        | 1    | 0         |      | 1     | 1.0         | True      | -           |

| 2  | m1.small  | 2048       | 20   | 0         |      | 1     | 1.0         | True      | -           |

| 3  | m1.medium | 4096       | 40   | 0         |      | 2     | 1.0         | True      | -           |

| 4  | m1.large  | 8192       | 80   | 0         |      | 4     | 1.0         | True      | -           |

| 5  | m1.xlarge | 16384      | 160  | 0         |      | 8     | 1.0         | True      | -           |

+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+

//查看网络

[root@OpenStack240 ~]# openstack network list

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+--------------------------------------+----------+--------------------------------------+

| ID                                   | Name     | Subnets                              |

+--------------------------------------+----------+--------------------------------------+

| 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 3b52a206-72e8-4b0e-8c28-827619c62b90 |

| 8c73de34-f031-435a-9d80-ceaba6573d3e | public1  | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 |

+--------------------------------------+----------+--------------------------------------+

[root@OpenStack240 ~]# neutron net-list//网络组件neutron

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.

+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+

| id                                   | name     | tenant_id                        | subnets                                               |

+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+

| 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 7fff31018c7b4e0f82e9431c5c86e87c | 3b52a206-72e8-4b0e-8c28-827619c62b90 10.0.0.0/24      |

| 8c73de34-f031-435a-9d80-ceaba6573d3e | public1  | 7fff31018c7b4e0f82e9431c5c86e87c | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 192.168.128.0/24 |

+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+

在以上没有错误的情况下,此时就可以到Web页面看到名为demo1的实例了(项目-->计算-->实例)。如下:

  剩下的配置可以通过Web页面进行配置。

4)给云主机分配浮动IP地址

在Web页面中选择:项目-->网络-->浮动IP-->分配IP给项目

之后出出现如下页面,选择资源池,选填描述,点击分配IP

创建成功后的浮动IP如下所示:

另外可以通过项目-->网络-->网络拓扑查看网络拓扑结构,如下:

还可以在项目-->网络-->网络查看网络信息,如下:

最重要的绑定浮动IP步骤如下,在项目-->计算-->实例-->更多-->绑定浮动IP

出现如下页面,选择IP地址和待连接的端口,进行关联

最后如下:

(2).使用命令查看云主机项目信息和网络连通性

要在确保加载了环境变量的情况下执行以下命令“source /etc/kolla/admin-openrc.sh”。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

[root@OpenStack240 ~]# openstack router list

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+

| ID                                   | Name        | Status | State | Project                          | Distributed | HA    |

+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+

| f8e89ffc-89c4-4ae9-8a1a-f8d694997f5f | demo-router | ACTIVE | UP    | 7fff31018c7b4e0f82e9431c5c86e87c | False       | False |

+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+

[root@OpenStack240 ~]# openstack router show demo-router

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Field                   | Value                                                                                                                                                                                       |

+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| admin_state_up          | UP                                                                                                                                                                                          |

| availability_zone_hints |                                                                                                                                                                                             |

| availability_zones      | nova                                                                                                                                                                                        |

| created_at              | 2019-11-30T08:37:36Z                                                                                                                                                                        |

| description             |                                                                                                                                                                                             |

| distributed             | False                                                                                                                                                                                       |

| external_gateway_info   | {"network_id""8c73de34-f031-435a-9d80-ceaba6573d3e""enable_snat"true"external_fixed_ips": [{"subnet_id""9d0c5344-d0de-465d-9eb3-65906d80d6e1""ip_address""192.168.128.206"}]} |

| flavor_id               | None                                                                                                                                                                                        |

| ha                      | False                                                                                                                                                                                       |

| id                      | f8e89ffc-89c4-4ae9-8a1a-f8d694997f5f                                                                                                                                                        |

| interfaces_info         | [{"subnet_id""3b52a206-72e8-4b0e-8c28-827619c62b90""ip_address""10.0.0.1""port_id""a15eefcc-f85c-4ea9-8b89-c6e35047b4aa"}]                                                        |

| location                | cloud='', project.domain_id=, project.domain_name='Default', project.id='7fff31018c7b4e0f82e9431c5c86e87c', project.name='admin', region_name='RegionOne', zone=                            |

| name                    | demo-router                                                                                                                                                                                 |

| project_id              | 7fff31018c7b4e0f82e9431c5c86e87c                                                                                                                                                            |

| revision_number         | 4                                                                                                                                                                                           |

| routes                  |                                                                                                                                                                                             |

| status                  | ACTIVE                                                                                                                                                                                      |

| tags                    |                                                                                                                                                                                             |

| updated_at              | 2019-11-30T08:37:47Z                                                                                                                                                                        |

+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

[root@OpenStack240 ~]# openstack network list//查看网络信息

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+--------------------------------------+----------+--------------------------------------+

| ID                                   | Name     | Subnets                              |

+--------------------------------------+----------+--------------------------------------+

| 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 3b52a206-72e8-4b0e-8c28-827619c62b90 |

| 8c73de34-f031-435a-9d80-ceaba6573d3e | public1  | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 |

+--------------------------------------+----------+--------------------------------------+

[root@OpenStack240 ~]# openstack subnet list//查看子网信息

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7)

 or chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+--------------------------------------+----------------+--------------------------------------+------------------+

| ID                                   | Name           | Network                              | Subnet           |

+--------------------------------------+----------------+--------------------------------------+------------------+

| 3b52a206-72e8-4b0e-8c28-827619c62b90 | demo-subnet    | 2de2f8e9-f134-4d92-8202-be9b45d09355 | 10.0.0.0/24      |

| 9d0c5344-d0de-465d-9eb3-65906d80d6e1 | public1-subnet | 8c73de34-f031-435a-9d80-ceaba6573d3e | 192.168.128.0/24 |

+--------------------------------------+----------------+--------------------------------------+------------------+

[root@OpenStack240 ~]# openstack server show demo1//查看云主机实例信息

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or

 chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)

+-------------------------------------+----------------------------------------------------------+

| Field                               | Value                                                    |

+-------------------------------------+----------------------------------------------------------+

| OS-DCF:diskConfig                   | MANUAL                                                   |

| OS-EXT-AZ:availability_zone         | nova                                                     |

| OS-EXT-SRV-ATTR:host                | OpenStack240                                             |

| OS-EXT-SRV-ATTR:hypervisor_hostname | OpenStack240                                             |

| OS-EXT-SRV-ATTR:instance_name       | instance-00000001                                        |

| OS-EXT-STS:power_state              | Running                                                  |

| OS-EXT-STS:task_state               | None                                                     |

| OS-EXT-STS:vm_state                 | active                                                   |

| OS-SRV-USG:launched_at              | 2019-11-30T08:40:18.000000                               |

| OS-SRV-USG:terminated_at            | None                                                     |

| accessIPv4                          |                                                          |

| accessIPv6                          |                                                          |

| addresses                           | demo-net=10.0.0.45, 192.168.128.203                      |

| config_drive                        |                                                          |

| created                             | 2019-11-30T08:39:45Z                                     |

| flavor                              | m1.tiny (1)                                              |

| hostId                              | d6416488e7208ea8095807bf5c7dd880b962d890292ba8f8940697f2 |

| id                                  | c90e4476-ec3f-44d2-8041-58c65a65e6dc                     |

| image                               | cirros (3133fb61-24d2-4ee4-88d2-d7f4ae313ee4)            |

| key_name                            | mykey                                                    |

| name                                | demo1                                                    |

| progress                            | 0                                                        |

| project_id                          | 7fff31018c7b4e0f82e9431c5c86e87c                         |

| properties                          |                                                          |

| security_groups                     | name='default'                                           |

| status                              | ACTIVE                                                   |

| updated                             | 2019-11-30T08:40:18Z                                     |

| user_id                             | b46452d885d14cb78fb4640ed8672ffe                         |

| volumes_attached                    |                                                          |

+-------------------------------------+----------------------------------------------------------+

(3).使用Web界面创建OpenStack云主机

  1)创建一个OpenStack全新的项目,并分配给一个新用户

创建一个名为testuser的用户,身份管理-->用户-->创建用户-->填写用户名和密码-->创建用户

创建一个名为test的项目,身份管理-->项目-->创建项目-->填写项目名称-->转到项目成员-->通过左侧的加号将testuser加入右边,并选择成员的角色-->创建项目。项目组类似用户组的作用,根据需求使用。

查看项目的配额,根据需求修改。身份管理-->项目-->修改配额-->编辑计算里的实例、VCPU数量和内存(物理机CPU4核,内存16G)-->转到网络-->修改浮动IP-->保存。

另外,还可以回到身份管理-->用户-->testuser的编辑-->将test项目作为testuser的主项目

此时我们就可以转到testuser用户下进行操作。

2)创建实例类型

创建一个新的实例类型,在创建实例时选择不同的实例类型分配设置好的资源大小,管理员-->计算-->实例类型-->创建实例类型-->填写名称、VCPU数量、内存和根磁盘-->创建实例类型。注意:设置的VCPU数量、内存和根磁盘必须小于物理机剩余资源。

说明:临时磁盘是指除根磁盘(系统盘)和Swap磁盘之外的磁盘,可以将其当作数据盘。

3)上传镜像

这里以cirros镜像作为例子,下载地址Index of /0.4.0,下载cirros-0.4.0-[系统架构]-disk.img。现在完成后通过网页创建镜像,管理员-->计算-->镜像-->创建镜像-->填写镜像名称,选择镜像文件地址,选择镜像格式-->创建镜像,元数据根据需求进行修改。注意:cirros镜像默认格式为qcow2格式

4)创建两个网络:内网和外网

创建内网in,管理员-->网络-->网络-->创建网络-->填写名称,选择项目和供应商网络类型,填写段ID-->当创建子网被选中时,点击下一项进入创建子网页面-->填写子网相关信息,点击下一项-->选中激活DHCP,填写相关信息,点击创建。

创建外网out,管理员-->网络-->网络-->创建网络-->填写名称,选择项目和供应商网络类型,填写物理网络,勾选外部网络,点击下一项-->填写子网相关信息,点击下一项-->取消激活DHCP,填写相关信息,点击创建。注意:(基于供应商网络为flat下)物理网络需要是ml2_conf.ini文件中的参数“flat_networks = physnet1”,使用kolla安装的请查看/etc/kolla/neutron-openvswitch-agent/ml2_conf.ini,完整安装的请查看/etc/neutron/plugins/ml2/ml2_conf.ini。

  创建完成后可以到项目-->网络-->网络拓扑中查看。

5)创建路由,连接内外网络

创建一个路由连接内外网络,管理员-->网络-->路由-->创建路由-->填写路由名称、选择项目和外部网络-->新建路由。

此时虚拟路由与out网络连接,但还没有与in网络连接,可以在网络拓扑中明显看出

所以现在需要是路由与in网络连接,管理员-->网络-->路由-->点击路由的名称,进入到内部编辑页面-->接口-->添加接口-->选择子网,填写IP地址-->提交

等待几秒查看两个接口的状态是否是运行中,然后再看网络拓扑

6)创建专属安全组

默认存在一个default安全组,规则为全部放行,实际使用中并不会如此使用,这里创建一个ssh-ping安全组,只放行TCP协议22端口(ssh)和所有ICMP协议(ping)。

创建名为ssh-ping的安全组,项目-->网络-->安全组-->创建安全组-->填写名称-->创建安全组。

编辑ssh-ping安全组的规则,项目-->网络-->安全组-->管理规则,进入管理规则页面-->添加规则-->填写相关信息-->添加。注意:0.0.0.0/0表示所有IP

7)创建专属密钥对

创建一个专属密钥对,项目-->计算-->密钥对-->创建密钥对-->填写密钥对名称,选择密钥类型-->创建密钥对。

密钥可以点击密钥旁的小箭头查看,或点击密钥名称查看

8)分配浮动IP(外网IP)

准备一个浮动IP(外网IP),项目-->网络-->浮动IP-->分配IP给项目-->选择资源池-->分配IP

9)创建实例

准备工作全部完成后终于可以创建实例了,项目-->计算-->实例-->创建实例-->填写实例名称和数量-->点击下一项,进入源页面-->选择源,将其中一个移动到上方-->点击下一项,进入实例类型页面-->将其中一个实例类型移动到上方-->点击下一项,进入网络页面-->选择内网-->网络接口默认即可,直接跳到安全组-->调整安全组、密钥对和其他配置-->创建实例

最后绑定浮动IP,


版权声明:本文为weixin_44767040原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。