如何使用固定/静态IP地址创建OpenStack实例

时间:2020-02-23 14:41:11  来源:igfitidea点击:

在一个OpenStack云环境中,默认的IP分配机制是通过DHCP。
如果我们想在OpenStack中创建具有固定的静态IP地址的实例,该实例这可以通过使用网络端口来实现。
端口是用于将单个设备(例如服务器的NIC)添加到OpenStack网络的连接点。
网络端口还描述了相关的网络配置,例如要在该端口上使用的Mac和IP地址。

在OpenStack网络中,虚拟路由器还使用端口与子网互连。
可以审查这些端口的状态以确定它们是否按预期连接。

第1步:创建网络端口

使用命令 openstack port create在指定的网络上创建一个新端口。

请参阅所有可用的命令参数。

$openstack port create --help
.....
openstack port create --help
usage: openstack port create [-h] [-f {json,shell,table,value,yaml}]
                             [-c COLUMN] [--noindent] [--prefix PREFIX]
                             [--max-width <integer>] [--fit-width]
                             [--print-empty] --network <network>
                             [--description <description>]
                             [--device <device-id>]
                             [--mac-address <mac-address>]
                             [--device-owner <device-owner>]
                             [--vnic-type <vnic-type>] [--host <host-id>]
                             [--dns-name dns-name]
                             [--fixed-ip subnet=<subnet>,ip-address=<ip-address> | --no-fixed-ip]
                             [--binding-profile <binding-profile>]
                             [--enable | --disable] [--project <project>]
                             [--project-domain <project-domain>]
                             [--security-group <security-group> | --no-security-group]
                             [--qos-policy <qos-policy>]
                             [--enable-port-security | --disable-port-security]
                             [--allowed-address ip-address=<ip-address>[,mac-address=<mac-address>]]
                             [--tag <tag> | --no-tag]
                             <name>
......

列出可用的网络和子网:

$openstack network list
+--------------------------------------+---------+--------------------------------------+
| ID                                   | Name    | Subnets                              |
+--------------------------------------+---------+--------------------------------------+
| b94431cb-08cf-42ea-be61-55f5cf459276 | private | 57601b99-ea64-41a8-a927-fbd591ae3f2b |
| f7ccac3b-73eb-49bf-a4ec-af750216b819 | public  | 7536e4a8-6aa8-45dc-aed6-1a98afcf416d |
+--------------------------------------+---------+--------------------------------------+
$openstack subnet list --network private
+--------------------------------------+----------------+--------------------------------------+--------------+
| ID                                   | Name           | Network                              | Subnet       |
+--------------------------------------+----------------+--------------------------------------+--------------+
| 57601b99-ea64-41a8-a927-fbd591ae3f2b | private_subnet | b94431cb-08cf-42ea-be61-55f5cf459276 | 10.10.1.0/24 |
+--------------------------------------+----------------+--------------------------------------+--------------+

我将在专用网络上创建一个具有固定IP地址的端口。

openstack port create --network private --fixed-ip \
subnet=private_subnet,ip-address=10.10.1.20 server1-port0

确认端口创建:

$openstack port list
$openstack port show server1-port0

第2步:在OpenStack中创建具有固定IP的服务器

既然端口是创建的,我们可以通过保存的IP地址引导新实例。

openstack server create \
 --image CentOS-7 \
 --flavor m1.small \
 --security-group  7fffea2a-b756-473a-a13a-219dd0f1913a  \
 --port server1-port0 \
 server1

创建

+-------------------------------------+-------------------------------------------------+
| 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                           | wsDLy8PG6q9C                                    |
| config_drive                        |                                                 |
| created                             | 2019-09-19T10:23:07Z                            |
| flavor                              | m1.small (1)                                    |
| hostId                              |                                                 |
| id                                  | 9c74c4e9-e996-4397-be9b-4fe81aa51881            |
| image                               | CentOS-7 (b8d75f31-fb6b-428b-8b83-f3904b0bd114) |
| key_name                            | jmutai                                          |
| name                                | server1                                         |
| progress                            | 0                                               |
| project_id                          | 06bcc3c56ab1489282b65681e782d7f6                |
| properties                          |                                                 |
| security_groups                     | name='7fffea2a-b756-473a-a13a-219dd0f1913a'     |
| status                              | BUILD                                           |
| updated                             | 2019-09-19T10:23:07Z                            |
| user_id                             | 336acbb7421f47f8be4891eabf0c9cc8                |
| volumes_attached                    |                                                 |
+-------------------------------------+-------------------------------------------------+

创建后,检查服务器状态。

$openstack server show server1
+-------------------------------------+----------------------------------------------------------+
| Field                               | Value                                                    |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                   |
| OS-EXT-AZ:availability_zone         | nova                                                     |
| OS-EXT-SRV-ATTR:host                | dserver.theitroad.com                            |
| OS-EXT-SRV-ATTR:hypervisor_hostname | dserver.theitroad.com                            |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000028                                        |
| OS-EXT-STS:power_state              | Running                                                  |
| OS-EXT-STS:task_state               | None                                                     |
| OS-EXT-STS:vm_state                 | active                                                   |
| OS-SRV-USG:launched_at              | 2019-09-19T10:23:11.000000                               |
| OS-SRV-USG:terminated_at            | None                                                     |
| accessIPv4                          |                                                          |
| accessIPv6                          |                                                          |
| addresses                           | private=10.10.1.20                                       |
| config_drive                        |                                                          |
| created                             | 2019-09-19T10:23:07Z                                     |
| flavor                              | m1.small (1)                                             |
| hostId                              | da0a05ef20a03e97f301563551bab9b669ef04adbce232d941519946 |
| id                                  | 9c74c4e9-e996-4397-be9b-4fe81aa51881                     |
| image                               | CentOS-7 (b8d75f31-fb6b-428b-8b83-f3904b0bd114)          |
| key_name                            | jmutai                                                   |
| name                                | server1                                                  |
| progress                            | 0                                                        |
| project_id                          | 06bcc3c56ab1489282b65681e782d7f6                         |
| properties                          |                                                          |
| security_groups                     | name='default'                                           |
| status                              | ACTIVE                                                   |
| updated                             | 2019-09-19T10:23:11Z                                     |
| user_id                             | 336acbb7421f47f8be4891eabf0c9cc8                         |
| volumes_attached                    |                                                          |
+-------------------------------------+----------------------------------------------------------+

应该可以访问在OpenStack上使用固定IP创建的服务器。

$ ping -c 2 10.10.1.20
 PING 10.10.1.20 (10.10.1.20) 56(84) bytes of data.
 64 bytes from 10.10.1.20: icmp_seq=1 ttl=64 time=0.768 ms
 64 bytes from 10.10.1.20: icmp_seq=2 ttl=64 time=0.491 ms
 --- 10.10.1.20 ping statistics --
$ssh Hyman@theitroad
 Warning: Permanently added '10.10.1.20' (ECDSA) to the list of known hosts.
 Enter passphrase for key '/home/centos/.ssh/id_rsa': 
 [Hyman@theitroad ~]$ip ad
 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
     inet6 ::1/128 scope host 
        valid_lft forever preferred_lft forever
 2: eth0:  mtu 1450 qdisc pfifo_fast state UP group default qlen 1000
     link/ether fa:16:3e:a3:fd:ce brd ff:ff:ff:ff:ff:ff
     inet 10.10.1.20/24 brd 10.10.1.255 scope global dynamic eth0
        valid_lft 86035sec preferred_lft 86035sec
     inet6 fe80::f816:3eff:fea3:fdce/64 scope link 
        valid_lft forever preferred_lft forever