我有几种方法,首先定义port
,或者在创建实例后分配静态IP,但我总是遇到同样的问题,接口存在,但它没有启动。
我可以登录到该实例并用ip addr add 10.10.10.10/24 dev ensX && ip link set ensX up
配置它,然后它就可以与同一子网上的其他实例通信,但就我而言,我不知道如何自动实现这一点。
例如:
openstack server create -f value -c id --wait --nic net-id=90d79af5-5f54-4055-9e51-1f796fd2957a --nic net-id=bdef0023-176d-4be3-9e0d-135bef6034da,v4-fixed-ip=10.10.10.10 --flavor m1.medium --image 0a213f2f-3a83-4518-b35e-d478259d74d9 --key-name mypubkey testserver
其中网络配置为子网10.10.10.0/24
,并且启用了DHCP或禁用了。
我还尝试先创建一个端口,然后使用--port
,但得到了相同的结果。
关于我遗漏了什么,有什么建议吗?我在ubuntu 18.04上运行openstackclient==4.0.0和python openstackclient===5.2.0。
我的问题似乎是由Ubuntu 18.04和netplan
引起的。我决定有两种方法可以解决我的问题:
- 使用ansible配置
/etc/netplan/50-cloud-init.yaml
- 使用
ifupdown
而不是netplan
创建自定义基本映像
我决定不违背Ubuntu 18.04的标准,只在构建后配置接口。