{"id":15583623,"url":"https://github.com/mirceaulinic/ripe76-tutorial","last_synced_at":"2025-03-20T03:30:28.933Z","repository":{"id":98895812,"uuid":"131763803","full_name":"mirceaulinic/ripe76-tutorial","owner":"mirceaulinic","description":"Event-driven Network Automation and Orchestration - Tutorial presented at RIPE 76, Marseille, FR","archived":false,"fork":false,"pushed_at":"2018-05-15T17:04:29.000Z","size":15,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T22:48:14.745Z","etag":null,"topics":["docker","docker-compose","napalm","napalm-logs","openconfig","salt","saltstack"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mirceaulinic.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-01T21:14:28.000Z","updated_at":"2020-09-25T06:36:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"21738423-f8e5-4a65-9ab6-a9f05f460daa","html_url":"https://github.com/mirceaulinic/ripe76-tutorial","commit_stats":{"total_commits":16,"total_committers":3,"mean_commits":5.333333333333333,"dds":0.25,"last_synced_commit":"047f5bd30d07ff8a7224b619797017e8a9f774ab"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirceaulinic%2Fripe76-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirceaulinic%2Fripe76-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirceaulinic%2Fripe76-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirceaulinic%2Fripe76-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mirceaulinic","download_url":"https://codeload.github.com/mirceaulinic/ripe76-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244047608,"owners_count":20389205,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","napalm","napalm-logs","openconfig","salt","saltstack"],"created_at":"2024-10-02T20:15:00.155Z","updated_at":"2025-03-20T03:30:28.927Z","avatar_url":"https://github.com/mirceaulinic.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"Event-driven Network Automation and Orchestration: RIPE 76 tutorial\n===================================================================\n\nDocker and Docker compose files to easily startup with Salt for Event-driven\nNetwork Automation and Orchestration.\n\nThe files in this repository are used in my `RIPE 76 \ntutorial \u003chttps://ripe76.ripe.net/programme/meeting-plan/tutorials/\u003e`_, \n*Event-driven Network Automation and Orchestration*.\n\nThe slides are available `\u003chttps://ripe76.ripe.net/presentations/17-RIPE76_-Event-driven-network-automation-and-orchestration.pdf\u003e`_. \n\nPlease follow the installation notes for `Docker \n\u003chttps://docs.docker.com/install/\u003e`_ and `Docker Compose \n\u003chttps://docs.docker.com/compose/install/\u003e`_ to be able to reproduce the steps \nbelow.\n\nUsage (briefly)\n---------------\n\nYou can use the steps below to validate your environment, and ensure\nthat the Proxy Minion is up and usable:\n\n1. Clone this repo:\n\n   .. code-block:: bash\n\n     git clone https://github.com/mirceaulinic/ripe76-tutorial.git\n\n2. Change dir:\n\n   .. code-block:: bash\n\n     cd ripe76-tutorial\n\n3. Edit the file ``pillar/device1_pillar.sls`` with the correct credentials of\n   your device you want to manage.\n\n   Ensure your device sends the syslog messages to the host where napalm-logs \n   is running, over port ``17171`` (as configured in the ``napalm-logs.conf`` \n   file).\n   Configuration example for Junos: ``set system syslog host 10.10.10.1 port \n   17171 any any``. For more detailed notes for other platforms, check the \n   `Supported devices and configuration \n   \u003chttps://napalm-logs.com/en/latest/device_config/index.html\u003e`_ section in \n   the napalm-logs documentation.\n\n4. Start using it:\n\n   .. code-block:: bash\n\n     make PROXYID=device1\n\nExample output:\n\n.. code-block:: bash\n\n  $ make PROXYID=device1\n  docker-compose up -d\n  Creating salt-proxy-device1 ... done\n  Creating napalm-logs        ... done\n  Creating salt-master        ... done\n\nCheck that the ``device1`` Proxy Minion is up:\n\n.. code-block:: bash\n\n  $ docker exec -it salt-master bash\n  root@salt-master:/# salt device1 test.ping\n  device1:\n      True\n\nIf the device does not return, you might want to start the containers in debug\nmode (i.e., execute ``$ make PROXYID=device1 LOG_LEVEL=debug``), and check why\nthe Minion does not come up (most frequently the device is unreachable, e.g.,\nblocked by a firewall, incorrect credentials etc.): ``$ docker logs -f salt-proxy-device1``.\n\nRun a test State:\n\n.. code-block:: bash\n\n  $ docker exec -it salt-master bash\n  root@salt-master:/# salt device1 state.apply test\n  device1:\n  ----------\n            ID: Yay it works\n      Function: test.succeed_without_changes\n        Result: True\n       Comment: Success!\n       Started: 11:57:21.295204\n      Duration: 0.76 ms\n       Changes:\n\n  Summary for device1\n  ------------\n  Succeeded: 1\n  Failed:    0\n  ------------\n  Total states run:     1\n  Total run time:   0.760 ms\n  root@salt-master:/# %\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirceaulinic%2Fripe76-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirceaulinic%2Fripe76-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirceaulinic%2Fripe76-tutorial/lists"}