I was hoping that you can give me a hand with an issue here. I have about a 
thousand routers that I’m trying to configure. I have all the device 
specific information on a CSV file that I would like to use for populating 
all the necessary device fields. I would like to loop through this CSV 
file, so I don’t have create a playbook with a thousand tasks. I have a 
playbook that works on a single device basis, but I want to expand it to be 
able to use for as many routers as I can have on a CSV file. Can you give 
me some ideas here? Thank you for any help or tips you can provide. 

 - hosts: vmanage
  connection: local
  gather_facts: no
  vars:
    ansible_user: testing123
    vmanage_ip: 10.10.2.2
    ansible_password: testing123
    state: present
    host_name_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=1') }}"
    system_ip_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=2') }}"
    site_id_var: "{{ lookup('csvfile','123456 file=csvdata.csv delimiter=, 
col=3') }}"
    vpn_next_hop_0_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=4') }}"
    vpn_next_hop_1_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=5') }}"
    vpn_if_ipv4_1_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=6') }}"
    vpn_if_ipv4_2_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=7') }}"
    vpn_if_ipv4_var: "{{ lookup('csvfile','123456 file=csvdata.csv 
delimiter=, col=8') }}"

  tasks:
   - vmanage_device_attachment:
       user: "{{ ansible_user }}"
       host: "{{ vmanage_ip }}"
       password: "{{ ansible_password }}"
       validate_certs: false
       device: Branch2
       template: BRANCHES-CSR-TEMPLATEv2
       variables:
         vpn_next_hop_ip_address_0: "{{ vpn_next_hop_0_var }}"
         vpn_next_hop_ip_address_1: "{{ vpn_next_hop_1_var }}"
         vpn_if_ipv4_address_2: "{{ vpn_if_ipv4_1_var }}"
         vpn_if_ipv4_address: "{{ vpn_if_ipv4_2_var }}"
         host-name: "{{ host_name_var }}"
         system-ip: "{{ system_ip_var }}"
         site-id: "{{ site_id_var }}"
         vpn_if_ipv4_address_1: "{{ vpn_if_ipv4_var }}"
       wait: yes
       state: "{{ state }}"

 cat /etc/ansible/python-viptela/ansible/vars/csvdata.csv
system-uuid,hostname,system-ip,site-id,vpn_next_hop_ip_address_0,vpn_next_hop_ip_address_1,vpn_if_ipv4_address_2,vpn_if_ipv4_address,vpn_if_ipv4_address_1
123456,Branch2,100.1.4.1,141,98.1.9.2, 
98.1.10.2,98.1.9.1/30,98.1.10.1/30,10.141.0.254/24

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/cf9ab37b-91e6-4d69-8fe2-eb0df123730an%40googlegroups.com.

Reply via email to