├── .gitignore ├── README.md ├── abstraction.html ├── abstraction ├── custom.css └── img │ ├── abstract.png │ ├── abstract2.png │ ├── expose.png │ ├── network_diagram.png │ ├── old_conf_mgmt_scale.png │ └── templating_is_not_enough.png ├── ansible ├── ansible.cfg ├── callback_plugins │ └── selective.py ├── deploy_network.yml ├── host_vars │ ├── eos.spine1 │ ├── eos.spine2 │ ├── vmx.core1 │ └── vmx.core2 ├── hosts ├── library │ ├── check_fabric_links.py │ ├── napalm_get_facts.py │ └── napalm_install_config ├── roles │ └── fabric │ │ ├── tasks │ │ └── main.yml │ │ ├── templates │ │ ├── eos │ │ │ └── fabric.j2 │ │ └── junos │ │ │ └── fabric.j2 │ │ └── vars │ │ └── main.yml ├── tasks.py └── test_network.yml ├── configure_environment.sh ├── howto ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png └── 6.png ├── packs └── chatops_demo │ ├── actions │ ├── add_link.yaml │ ├── check_fabric_health.yaml │ ├── clone_repo.yaml │ ├── confirm_exec.meta.yaml │ ├── deploy_fabric.yaml │ ├── deploy_fabric_with_confirm.meta.yaml │ ├── deploy_fabric_with_confirm_api.meta.yaml │ ├── hello.yaml │ ├── invoke_wrapper.py │ ├── remove_link.yaml │ ├── update_repo.yaml │ └── workflows │ │ ├── confirm_exec.yaml │ │ ├── deploy_fabric.yaml │ │ └── deploy_fabric_api.yaml │ ├── aliases │ ├── add_link.yaml │ ├── check_fabric_health.yaml │ ├── confirm.yaml │ ├── deploy_fabric.yaml │ ├── hello.yml │ └── remove_link.yaml │ ├── chatops_demo │ ├── config.yaml │ ├── pack.yaml │ ├── requirements.txt │ └── rules │ ├── add_link.yaml │ ├── deploy_fabric.yaml │ ├── remove_link.yaml │ ├── restart_docker_hubot.yaml │ └── webhook_to_slack.yaml ├── requirements.txt ├── static └── router_confs │ ├── eos-spine1 │ ├── eos-spine2 │ ├── vmx1 │ └── vmx2 ├── templating_is_not_always_enough ├── build_config.py ├── eos-spine1.yml ├── eos-spine2.yml └── eos.j2 └── vagrant ├── Vagrantfile └── st2 ├── post_result.yaml ├── rc.local └── st2bootstrap-deb.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/README.md -------------------------------------------------------------------------------- /abstraction.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction.html -------------------------------------------------------------------------------- /abstraction/custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/custom.css -------------------------------------------------------------------------------- /abstraction/img/abstract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/img/abstract.png -------------------------------------------------------------------------------- /abstraction/img/abstract2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/img/abstract2.png -------------------------------------------------------------------------------- /abstraction/img/expose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/img/expose.png -------------------------------------------------------------------------------- /abstraction/img/network_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/img/network_diagram.png -------------------------------------------------------------------------------- /abstraction/img/old_conf_mgmt_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/img/old_conf_mgmt_scale.png -------------------------------------------------------------------------------- /abstraction/img/templating_is_not_enough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/abstraction/img/templating_is_not_enough.png -------------------------------------------------------------------------------- /ansible/ansible.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/ansible.cfg -------------------------------------------------------------------------------- /ansible/callback_plugins/selective.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/callback_plugins/selective.py -------------------------------------------------------------------------------- /ansible/deploy_network.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/deploy_network.yml -------------------------------------------------------------------------------- /ansible/host_vars/eos.spine1: -------------------------------------------------------------------------------- 1 | --- 2 | id: 6 3 | os: eos 4 | asn: 65001 5 | -------------------------------------------------------------------------------- /ansible/host_vars/eos.spine2: -------------------------------------------------------------------------------- 1 | --- 2 | id: 7 3 | os: eos 4 | asn: 65001 5 | -------------------------------------------------------------------------------- /ansible/host_vars/vmx.core1: -------------------------------------------------------------------------------- 1 | --- 2 | id: 1 3 | os: junos 4 | asn: 65000 5 | -------------------------------------------------------------------------------- /ansible/host_vars/vmx.core2: -------------------------------------------------------------------------------- 1 | --- 2 | id: 2 3 | os: junos 4 | asn: 65000 5 | -------------------------------------------------------------------------------- /ansible/hosts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/hosts -------------------------------------------------------------------------------- /ansible/library/check_fabric_links.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/library/check_fabric_links.py -------------------------------------------------------------------------------- /ansible/library/napalm_get_facts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/library/napalm_get_facts.py -------------------------------------------------------------------------------- /ansible/library/napalm_install_config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/library/napalm_install_config -------------------------------------------------------------------------------- /ansible/roles/fabric/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/roles/fabric/tasks/main.yml -------------------------------------------------------------------------------- /ansible/roles/fabric/templates/eos/fabric.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/roles/fabric/templates/eos/fabric.j2 -------------------------------------------------------------------------------- /ansible/roles/fabric/templates/junos/fabric.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/roles/fabric/templates/junos/fabric.j2 -------------------------------------------------------------------------------- /ansible/roles/fabric/vars/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/roles/fabric/vars/main.yml -------------------------------------------------------------------------------- /ansible/tasks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/tasks.py -------------------------------------------------------------------------------- /ansible/test_network.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/ansible/test_network.yml -------------------------------------------------------------------------------- /configure_environment.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/configure_environment.sh -------------------------------------------------------------------------------- /howto/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/howto/1.png -------------------------------------------------------------------------------- /howto/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/howto/2.png -------------------------------------------------------------------------------- /howto/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/howto/3.png -------------------------------------------------------------------------------- /howto/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/howto/4.png -------------------------------------------------------------------------------- /howto/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/howto/5.png -------------------------------------------------------------------------------- /howto/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/howto/6.png -------------------------------------------------------------------------------- /packs/chatops_demo/actions/add_link.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/add_link.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/check_fabric_health.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/check_fabric_health.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/clone_repo.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/clone_repo.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/confirm_exec.meta.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/confirm_exec.meta.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/deploy_fabric.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/deploy_fabric.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/deploy_fabric_with_confirm.meta.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/deploy_fabric_with_confirm.meta.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/deploy_fabric_with_confirm_api.meta.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/deploy_fabric_with_confirm_api.meta.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/hello.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/hello.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/invoke_wrapper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/invoke_wrapper.py -------------------------------------------------------------------------------- /packs/chatops_demo/actions/remove_link.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/remove_link.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/update_repo.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/update_repo.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/workflows/confirm_exec.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/workflows/confirm_exec.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/workflows/deploy_fabric.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/workflows/deploy_fabric.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/actions/workflows/deploy_fabric_api.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/actions/workflows/deploy_fabric_api.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/aliases/add_link.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/aliases/add_link.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/aliases/check_fabric_health.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/aliases/check_fabric_health.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/aliases/confirm.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/aliases/confirm.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/aliases/deploy_fabric.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/aliases/deploy_fabric.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/aliases/hello.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/aliases/hello.yml -------------------------------------------------------------------------------- /packs/chatops_demo/aliases/remove_link.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/aliases/remove_link.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/chatops_demo: -------------------------------------------------------------------------------- 1 | /vagrant/packs/chatops_demo -------------------------------------------------------------------------------- /packs/chatops_demo/config.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packs/chatops_demo/pack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/pack.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/requirements.txt: -------------------------------------------------------------------------------- 1 | ansible 2 | napalm 3 | invoke==0.12.2 4 | jinja2 5 | -------------------------------------------------------------------------------- /packs/chatops_demo/rules/add_link.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/rules/add_link.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/rules/deploy_fabric.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/rules/deploy_fabric.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/rules/remove_link.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/rules/remove_link.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/rules/restart_docker_hubot.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/rules/restart_docker_hubot.yaml -------------------------------------------------------------------------------- /packs/chatops_demo/rules/webhook_to_slack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/packs/chatops_demo/rules/webhook_to_slack.yaml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/requirements.txt -------------------------------------------------------------------------------- /static/router_confs/eos-spine1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/static/router_confs/eos-spine1 -------------------------------------------------------------------------------- /static/router_confs/eos-spine2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/static/router_confs/eos-spine2 -------------------------------------------------------------------------------- /static/router_confs/vmx1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/static/router_confs/vmx1 -------------------------------------------------------------------------------- /static/router_confs/vmx2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/static/router_confs/vmx2 -------------------------------------------------------------------------------- /templating_is_not_always_enough/build_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/templating_is_not_always_enough/build_config.py -------------------------------------------------------------------------------- /templating_is_not_always_enough/eos-spine1.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/templating_is_not_always_enough/eos-spine1.yml -------------------------------------------------------------------------------- /templating_is_not_always_enough/eos-spine2.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/templating_is_not_always_enough/eos-spine2.yml -------------------------------------------------------------------------------- /templating_is_not_always_enough/eos.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/templating_is_not_always_enough/eos.j2 -------------------------------------------------------------------------------- /vagrant/Vagrantfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/vagrant/Vagrantfile -------------------------------------------------------------------------------- /vagrant/st2/post_result.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/vagrant/st2/post_result.yaml -------------------------------------------------------------------------------- /vagrant/st2/rc.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/vagrant/st2/rc.local -------------------------------------------------------------------------------- /vagrant/st2/st2bootstrap-deb.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dravetech/preso_abstract_all_the_things/HEAD/vagrant/st2/st2bootstrap-deb.sh --------------------------------------------------------------------------------