CCNA: Configuration Management with Ansible

Three branch routers need consistent configs. `~/netauto` already has `ansible.cfg`, an inventory and host_vars for `br1` and `br2`. Generate the IOS configs from data with a Jinja2 template, prove the playbook is idempotent, then roll out a change by editing a variable.

Tasks

  1. Add ~/netauto/hostvars/br3.yml for the third router: hostname: BR3, interface GigabitEthernet0/0 with 10.3.0.1 255.255.255.0, and VLAN 10 named DATA (copy br1.yml as a model).
  2. Write the template ~/netauto/ios.j2 and a playbook ~/netauto/site.yml (hosts: branches, connection: local, gatherfacts: false) that uses ansible.builtin.template to write configs/{{ inventoryhostname }}.cfg; run it.
  3. Run the playbook again and confirm it is idempotent: the PLAY RECAP shows changed=0 for all three routers.
  4. Add VLAN 40 named VOICE to br2 by editing its hostvars only, and re-run the playbook so configs/br2.cfg contains it.