{"id":15482537,"url":"https://github.com/btr1975/automation-framework","last_synced_at":"2025-04-22T16:21:44.721Z","repository":{"id":145588274,"uuid":"367485692","full_name":"btr1975/automation-framework","owner":"btr1975","description":"Automation Framework has many tools commonly used for Network Automation","archived":false,"fork":false,"pushed_at":"2025-03-19T13:50:57.000Z","size":2267,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-17T04:19:38.959Z","etag":null,"topics":["development","docker","docker-compose","docker-swarm","elasticsearch","elk-stack","environment","framework","grafana","hashicorp-vault","helm","helm-charts","influxdb","k8s","kafka","kubernetes","microk8s","mongodb","nautobot","pod-porter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/btr1975.png","metadata":{"files":{"readme":"README.md","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,"zenodo":null}},"created_at":"2021-05-14T21:42:43.000Z","updated_at":"2025-04-15T23:52:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"8780e849-ded9-429e-ad71-09bb9d4ab1fe","html_url":"https://github.com/btr1975/automation-framework","commit_stats":{"total_commits":140,"total_committers":2,"mean_commits":70.0,"dds":0.1428571428571429,"last_synced_commit":"77734f7805e97ed357c1114f84f6e543c6f5f6ff"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btr1975%2Fautomation-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btr1975%2Fautomation-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btr1975%2Fautomation-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btr1975%2Fautomation-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/btr1975","download_url":"https://codeload.github.com/btr1975/automation-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250275564,"owners_count":21403681,"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":["development","docker","docker-compose","docker-swarm","elasticsearch","elk-stack","environment","framework","grafana","hashicorp-vault","helm","helm-charts","influxdb","k8s","kafka","kubernetes","microk8s","mongodb","nautobot","pod-porter"],"created_at":"2024-10-02T05:09:24.990Z","updated_at":"2025-04-22T16:21:44.686Z","avatar_url":"https://github.com/btr1975.png","language":"Python","readme":"# automation-framework\nAutomation Framework\n\n**This is not meant to be in production, this is a development environment**\n\n## Assumptions if you are using Docker with or without Swarm Mode\n\n1. You know the basics of [Docker](https://www.docker.com/).\n2. You know the basics of [Docker Compose](https://docs.docker.com/compose/).\n3. You know the basics of [Docker Swarm](https://docs.docker.com/engine/swarm/).\n4. You know the basics of the [Compose Specification](https://compose-spec.io/).\n\n* [\"Normal Compose and Swarm Files\"](./docker/compose) \n\n## Assumptions if you are using Podman\n\n1. You know the basics of [Podman](https://podman.io/).\n2. You know the basics of [Podman Compose](https://docs.podman.io/en/latest/markdown/podman-compose.1.html).\n3. You know the basics of the [Compose Specification](https://compose-spec.io/).\n\n## Assumptions if you are using Kubernetes single node or cluster\n\n1. You are using [microk8s](https://microk8s.io/).\n2. You have enabled [add-ons](https://microk8s.io/docs/addons) dns, metallb, \n   storage, and registry in [microk8s](https://microk8s.io/).\n3. You know the basics of [Kubernetes/k8s](https://kubernetes.io/).\n4. You know the basics of [Kubernetes YAML](https://kubernetes.io/docs/reference/).\n\n* [\"Normal Kubernetes Manifests\"](./k8s) \n\n## Assumptions if you are using HELM with Kubernetes single node or cluster\n\n1. You know the basics of [HELM](https://helm.sh/).\n\n* [HELM Packages](./helm) \n\n## Assumptions if you are using Pod-Porter with Podman or Docker\n\n1. You know the basics of [Pod-Porter](https://pod-porter.readthedocs.io/en/latest)\n\n* [Pod-Porter Packages](./porter) \n\n## General Information\n\n* The base Makefile is meant to be used with Docker Swarm\n\n* The Makefile located in docker/compose is used for individual architecture pieces\n\n* **Compose** does not have memory limits\n\n### Possible Special Need for ELK\n\n* You may need to run this command on the host system\n\n```text\nsysctl -w vm.max_map_count=262144\n```\n\n### Nautobot required after creating container\n\n* You need to create a super user use the following command, and follow prompts.\n\n```text\ndocker exec -it \u003ccontainer-name\u003e nautobot-server createsuperuser\n```\n\n### Graphana iformation\n\n* Default username admin default password admin\n\n* It will ask you to change the password on first login\n\n### Docker registry information\n\n* This is a **insecure** registry the following must be done to use it\n\n1. create daemon.json in /etc/docker and add the following\n\n```json\n{\n  \"insecure-registries\" : [\"\u003cip or domain name\u003e:5000\"]\n}\n```\n\n2. restart docker daemon\n\n```text\nsudo systemctl restart docker\n```\n\n3. In order to use the registry in compose you must log in using the credentials' admin/admin\n\n```text\ndocker login \u003cip or domain name\u003e:5000 -u admin -p admin\n```\n\n4. You can verify you are logged in by looking in ~/.docker/config.json you should see something like this\n\n```json\n{\n\t\"auths\": {\n\t\t\"\u003cip or domain name\u003e:5000\": {\n\t\t\t\"auth\": \"secret-key\"\n\t\t}\n\t}\n}\n\n```\n\n5. To check images you add in it. In your browser.\n\n```text\n\n# To see your repositories\nhttp://\u003cip or domain name\u003e:5000/v2/_catalog\n\n# To see the tags in your repositories\nhttp://\u003cip or domain name\u003e:5000/v2/\u003crepo-name\u003e/tags/list\n```\n\n### Information URLs\n\n* [vm.max_map_count](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/vm-max-map-count.html#vm-max-map-count)\n* [curl examples send data to ELK](https://mindmajix.com/elasticsearch/curl-syntax-with-examples)\n* [nautobot-lab reference](https://github.com/nautobot/nautobot-lab)\n* [Pod-Porter](https://pod-porter.readthedocs.io/en/latest)\n* [Docker](https://www.docker.com/)\n* [Docker Compose](https://docs.docker.com/compose/)\n* [Docker Swarm](https://docs.docker.com/engine/swarm/)\n* [Podman](https://podman.io/)\n* [Compose Specification](https://compose-spec.io/)\n* [Dockerfile Reference](https://docs.docker.com/engine/reference/builder/)\n* [Docker Compose Reference](https://docs.docker.com/compose/compose-file/)\n* [Docker Registry Detail](https://docs.docker.com/registry/)\n* [Helm](https://helm.sh/)\n* [Kubernetes/k8s](https://kubernetes.io/)\n* [Kubernetes YAML](https://kubernetes.io/docs/reference/)\n* [microk8s](https://microk8s.io/)\n* [microk8s add-ons](https://microk8s.io/docs/addons)\n* [kompose](https://kompose.io/)\n\n\n### What is Available Using Helm\n\n[Helm Charts](./helm)\n\n| ARCHITECTURE       | USED FOR                                      |\n|--------------------|-----------------------------------------------|\n| Batfish            | Modeling                                      |\n| ELK Elastic Search | Logging search, various other stuff           |\n| GitLab             | Pipelines and source control, docker registry |\n| Grafana            | Pretty Graphs                                 |\n| Influxdb           | Series dB                                     |\n| Kafka              | As a message bus                              |\n| MongoDB            | Document dB                                   |\n| Nautobot           | \"Source of truth\"                             |\n| RabbitMQ           | Messaging                                     |\n| Redis              | Messaging                                     |\n| TeamCity           | CI/CD                                         |\n| Hashicorp Vault    | Secrets Storage                               |\n\n### What is Available Using Pod-Porter\n\n[Pod-Porter Maps](./porter)\n\n| ARCHITECTURE       | USED FOR                                      |\n|--------------------|-----------------------------------------------|\n| Batfish            | Modeling                                      |\n| ELK Elastic Search | Logging search, various other stuff           |\n| GitLab             | Pipelines and source control, docker registry |\n| Grafana            | Pretty Graphs                                 |\n| Influxdb           | Series dB                                     |\n| Kafka              | As a message bus                              |\n| MongoDB            | Document dB                                   |\n| Nautobot           | \"Source of truth\"                             |\n| RabbitMQ           | Messaging                                     |\n| Redis              | Messaging                                     |\n| TeamCity           | CI/CD                                         |\n| Hashicorp Vault    | Secrets Storage                               |\n\n### What is Available in Swarm\n\n| ARCHITECTURE         | USED FOR                              |\n|----------------------|---------------------------------------|\n| Kafka                | As a message bus                      |\n| ELK Elastic Search   | Logging search, various other stuff   |\n| Hashicorp Vault      | Secrets Storage                       |\n| Nautobot             | \"Source of truth\"                     |\n| A Genie Parser       | Something to parse show commands      |\n\n![Automation Framework Swarm](diagrams/automation_framework_swarm.png)\n\n### What is Available in Compose\n\n| ARCHITECTURE            | USED FOR                              |\n|-------------------------|---------------------------------------|\n| Kafka                   | As a message bus                      |\n| ELK Elastic Search      | Logging search, various other stuff   |\n| Hashicorp Vault         | Secrets Storage                       |\n| Nautobot                | \"Source of truth\"                     |\n| A Genie Parser          | Something to parse show commands      |\n| MongoDB                 | Document dB                           |\n| Batfish                 | Modeling                              |\n| Influxdb                | Series dB                             |\n| Grafana                 | Pretty Graphs                         |\n| Docker Registry         | To hold docker images                 |\n| Docker Registry Browser | To Browse the Registry                |\n| JetBrains TeamCity      | CI/CD                                 |\n\n![Automation Framework Compose](diagrams/automation_framework_compose.png)\n\n### What is Available in Kubernetes\n\n| ARCHITECTURE       | USED FOR                              |\n|--------------------|---------------------------------------|\n| Kafka              | As a message bus                      |\n| ELK Elastic Search | Logging search, various other stuff   |\n| Hashicorp Vault    | Secrets Storage                       |\n| MongoDB            | Document dB                           |\n| Batfish            | Modeling                              |\n| Influxdb           | Series dB                             |\n| Grafana            | Pretty Graphs                         |\n| JetBrains TeamCity | CI/CD                                 |\n\n![Automation Framework Compose](diagrams/automation_framework_kubernetes.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtr1975%2Fautomation-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbtr1975%2Fautomation-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtr1975%2Fautomation-framework/lists"}