Используйте Ansible инвентарь IP в Playbook - PullRequest
0 голосов
/ 30 мая 2019

У меня есть файл инвентаря с именем inventory.ini, который содержит ровно просто:

10.0.0.4
10.0.0.5

Я хотел бы использовать IP-адреса, перечисленные здесь, в моей Playbook под переменной ip_address:

- name: Import & load configuration file into PAN-OS
  hosts: localhost
  connection: local
  gather_facts: False

  vars:
    ip_address: "{{ SOMETHING-GOES-HERE }}"
    username: "#{PALOS_USERNAME}#"
    password: "#{PALOS_PASSWORD}#"
    config_file: ""
    load_file: ""

  roles:
  - role: PaloAltoNetworks.paloaltonetworks

  tasks:
  - name: wait for reboot
    panos_check:
      ip_address: "{{ ip_address }}"
      username: "{{ username }}"
      password: "{{ password }}"
      interval: 5
      timeout: 900

  - name: import configuration file into PAN-OS
    panos_import:
      ip_address: "{{ ip_address }}"
      username: "{{ username }}"
      password: "{{ password }}"
      file: "{{ config_file }}"
      category: "configuration"

Я пытался использовать {{ inventory_hostname }}, но вместо этого возвращается localhost. Я также пытался использовать {{ ansible_host }}, но это возвращает 127.0.0.1

Кто-нибудь знает, как я могу использовать IP-адреса, перечисленные в перечне, вместо переменной, когда она проходит через каждое развертывание?

Просто чтобы заметить, я запускаю playbook так:

ansible-playbook panos-config.yml -i inventory.ini --extra-vars "config_file=./xml-config/asdf.xml load_file=asdf.xml" -vvv

Ansible версия - 2.8.0

1 Ответ

0 голосов
/ 30 мая 2019

Оказывается, мне нужно было изменить hosts на all и оставить {{ ansible_host }} в поле переменной ip_address.IP-адреса извлекаются из файла инвентаризации и развертываются нормально.Вот так:

- name: Import & load configuration file into PAN-OS
  hosts: all
  connection: local
  gather_facts: False

  vars:
    ip_address: "{{ ansible_host }}"
    username: "#{PALOS_USERNAME}#"
    password: "#{PALOS_PASSWORD}#"
    config_file: ""
    load_file: ""

  roles:
  - role: PaloAltoNetworks.paloaltonetworks

  tasks:
  - name: wait for reboot
    panos_check:
      ip_address: "{{ ip_address }}"
      username: "{{ username }}"
      password: "{{ password }}"
      interval: 5
      timeout: 900

  - name: import configuration file into PAN-OS
    panos_import:
      ip_address: "{{ ip_address }}"
      username: "{{ username }}"
      password: "{{ password }}"
      file: "{{ config_file }}"
      category: "configuration"
...