Назад | Перейти на главную страницу

статический плавающий адрес openstack с доступным

Я пытаюсь назначить статический плавающий 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-адрес.