Proxmox при перезагрузке ВМ выдает 1 и тот-же ip адрес
господа знатоки. Суть в следующем: Имеется proxmox VE. На нем хочется через ansible поднимать ВМ-ки (ubuntu 20.04) в большом колличестве, имеется плейбук:
---
- name: up stage VM
hosts: localhost
ignore_errors: yes
tasks:
- name: Clone VMs
proxmox_kvm:
node: "{{ node }}"
name: "{{ name }}"
api_user: "{{ api_user }}"
api_password: "{{ api_password }}"
api_host: "{{ api_host }}"
clone: "{{ clone_vm }}"
- name: Pause for 1 minutes to build clone
pause:
minutes: 1
- name: get vmid
shell: "qm list | grep {{ name }} | cut -b 8,9,10"
register: qm
- debug: msg="{{ qm.stdout }}"
- name: Start VMs
proxmox_kvm:
api_host: "{{ api_host }}"
api_password: "{{ api_password }}"
api_user: "{{ api_user }}"
vmid: "{{ qm.stdout }}"
node: "{{ node }}"
state: started
name: "{{ name }}"
- name: wait for up VM
pause:
minutes: 1
- name: get new dhcp ip
shell: qm guest exec {{ qm.stdout }} -- bash -c "dhclient -r && dhclient"
- name: Get IP VM
shell: qm guest cmd {{ qm.stdout }} network-get-interfaces | grep ip-address | grep 192 | cut -d ':' -f 2 | cut -d '"' -f 2
register: vmip
- debug: msg="{{ vmip.stdout }}"
Плейбук работает более чем хорошо, но если посмотреть в него внимательно, то можно увидеть неплохой такой костыль:
- name: get new dhcp ip
shell: qm guest exec {{ qm.stdout }} -- bash -c "dhclient -r && dhclient"
Сделано это для того, что-бы при разворачивании менялся IP у машины, потому-что по дефолту он получает 101(условно, иногда и другие) IP и все. Костыль работает и очень хорошо, но если машину рестартнуть, то он обратно получит 101 IP, отсюда вопрос, почему? Как это пофиксить? Где может быть проблема?
Опережая пару встречных вопросов: ВМ разворачивается из шаблона, созданного заранее, в шаблоне при создании указывался dhcp, и да, MAC у ВМ-ок у всех разный.