Я пытаюсь назначить статический плавающий IP-адрес своим серверам с помощью модуля ansible os_floating_ip
. мой код плейбука ниже:
- name: Assign floating IP
os_floating_ip:
state: present
cloud: "{{ os_project }}"
server: "{{ inventory_hostname }}"
reuse: yes
network: "{{ public_network_name }}"
fixed_address: "{{ hostvars[inventory_hostname]['fixed_ip'] }}"
floating_ip_address: "{{ hostvars[inventory_hostname]['floating_ip_address'] }}"
wait: true
timeout: 180
register: floater
when: hostvars[inventory_hostname]['floating_ip']
опция fixed_address работает нормально, в то время как float_ip_address игнорируется и назначает случайный IP-адрес из моего пула. Я также использовал другую опцию в задачах os_server:
- name: Create instances
os_server:
state: present
cloud: "{{ os_project }}"
name: "{{ inventory_hostname }}"
image: "{{ hostvars[inventory_hostname]['image'] }}"
key_name: "{{ ssh_key_name }}"
flavor: "{{ hostvars[inventory_hostname]['flavor'] }}"
wait: yes
timeout: 300
nics:
- port-name: "{{ inventory_hostname }}"
# auto_ip: no # disabled when I using floating_ips
floating_ips: "{{ hostvars[inventory_hostname]['floating_ip_address'] }}"
Вызов правильный, но сервер автоматически назначает IP-адрес:
floating_ip:
attached: true
created_at: '2020-05-06T22:30:23Z'
description: ''
dns_domain: ''
dns_name: ''
fixed_ip_address: 10.0.254.41
floating_ip_address: 10.0.5.122
floating_network_id: 99ba3d82-7756-4373-90be-6159ceb3cb25
id: e0c8dc12-cb6f-4d57-a91c-2cf2a72a0eff
location:
cloud: defaults
project:
domain_id: null
domain_name: Default
id: 4b2b04ead3aa49e1a91521d741bd431d
name: ocp311
region_name: regionOne
zone: null
network: 99ba3d82-7756-4373-90be-6159ceb3cb25
port: ca44eb5f-ac2c-4eeb-aea3-76070c787311
port_id: ca44eb5f-ac2c-4eeb-aea3-76070c787311
project_id: 4b2b04ead3aa49e1a91521d741bd431d
properties:
dns_domain: ''
dns_name: ''
tags: []
revision_number: 2
router: ec7166b2-8b0c-4277-b40d-c78fd5306386
router_id: ec7166b2-8b0c-4277-b40d-c78fd5306386
status: ACTIVE
tags: []
tenant_id: 4b2b04ead3aa49e1a91521d741bd431d
updated_at: '2020-05-06T22:30:25Z'
invocation:
module_args:
api_timeout: null
auth: null
auth_type: null
availability_zone: null
ca_cert: null
client_cert: null
client_key: null
fixed_address: 10.0.254.41
floating_ip_address: 10.0.5.41
interface: public
nat_destination: null
network: public
purge: false
region_name: null
reuse: true
server: dnssrv
state: present
timeout: 180
validate_certs: null
wait: true
Я пробовал использовать CLI openstack для назначения плавающего IP-адреса проекту.
openstack --os-cloud mycloud floating ip create --floating-ip-address 10.0.5.150 --project myprj public
и это работает. Я хотел бы сделать то же самое, если возможно, используя только доступный модуль. Любая идея, как заставить плавающий IP-адрес.