在服务器应用初始化的时候,比如salt-minion,需要在配置文件里说明自己的id,一般用ip。
如果都在一个内网里,从ip命令里获取就行了。
但现在的企业后台环境更加复杂,很多都是跨机房、有物理机,也有云主机。像salt,minion和master不一定在同一个内网。所以都需要自身公网ip
云主机的外网ip都是mapping的,从ip命令无法得知。
可以这样:
用curl ipconfg.me这些服务,返回自己的公网ip。
但是太慢了,10s有的。
所以还是自己写一个
使用django
request.META里包含了客户端的很多信息,REMOTE_ADDR就是对方的外网IP。
把这个消息返回回去就行了
def return_wip(request): ip = request.META['REMOTE_ADDR'] return HttpResponse(ip)
使用curl请求地址,就能获取
curl http://192.168.144.76:8000/deploy/return_wip/192.168.144.86