``
conn: Connection = create_connection()
nics = [{'net-id': '`net_id`', 'subnet-id': '`subnet_id`'}]
params = {
'name': 'Instance_app_2',
'networks': [{'uuid': 'net_id'}],
'nics': nics,
'security_groups': [{'name': 'GroupName'}],
'user_data': create_user_data(), # encoded user_data
'flavor_id': '`flavor_id`'
'image_id': '`image_id`',
'ipv6_address_mode': None,
'ipv6_ra_mode': None,
}
server = conn.compute.create_server(**params)
``
我运行代码并创建一个同时具有 IPv4 和 IPv6 的服务器。 如何创建一个只有 IPv4 的新服务器?请
首先,
ipv6_address_mode
和ipv6_ra_mode
被network.create_subnet
使用而不是compute.create_server
方法,以及他们的Valid values are: 'dhcpv6-stateful', 'dhcpv6-stateless', or 'slaac'
.
其次,
networks
方法中的Mutually exclusive with the nics parameter
参数create_server
。
最后,在你的情况下
create a server have both IPv4 and IPv6
,我猜你已经在net_id中定义了ipv6_address_scope
或在subnet_id中定义了ipv6_*_mode
,所以它会自动创建ipv6地址。
尝试创建一个 port_id port only with ipv4 address, 只需使用
'nics': port_id,
到 create_server
.
另见:https://docs.openstack.org/openstacksdk/latest/user/connection.html