{"id":21461994,"url":"https://github.com/juku/ansible-manager","last_synced_at":"2026-05-06T10:32:10.484Z","repository":{"id":39641835,"uuid":"395683449","full_name":"JuKu/ansible-manager","owner":"JuKu","description":"A ansible manager / server as an alternative to Ansible semaphore and ansible tower","archived":false,"fork":false,"pushed_at":"2023-01-23T01:43:24.000Z","size":330,"stargazers_count":1,"open_issues_count":19,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-09T18:12:42.822Z","etag":null,"topics":["administration","ansible","ansible-playbook","ansible-roles","ci","continuous-delivery","continuous-deployment","continuous-integration","devops","devops-tools","infrastructure","infrastructure-as-code","orchestration","server"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuKu.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}},"created_at":"2021-08-13T14:26:14.000Z","updated_at":"2022-01-05T23:31:18.000Z","dependencies_parsed_at":"2023-02-12T19:31:22.621Z","dependency_job_id":null,"html_url":"https://github.com/JuKu/ansible-manager","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/JuKu/ansible-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Fansible-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Fansible-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Fansible-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Fansible-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuKu","download_url":"https://codeload.github.com/JuKu/ansible-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Fansible-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32689104,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["administration","ansible","ansible-playbook","ansible-roles","ci","continuous-delivery","continuous-deployment","continuous-integration","devops","devops-tools","infrastructure","infrastructure-as-code","orchestration","server"],"created_at":"2024-11-23T07:12:10.653Z","updated_at":"2026-05-06T10:32:10.465Z","avatar_url":"https://github.com/JuKu.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Manager Server for Ansible\n\n[![Build Status](https://travis-ci.com/JuKu/ansible-manager.svg?branch=master)](https://travis-ci.com/JuKu/ansible-manager)\n[![CircleCI](https://circleci.com/gh/JuKu/ansible-manager/tree/master.svg?style=svg)](https://circleci.com/gh/JuKu/ansible-manager/tree/master)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=ncloc)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=com.jukusoft%3Aansible-manager-backend)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=coverage)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n[![Technical Debt Rating](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=sqale_index)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=code_smells)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=bugs)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=vulnerabilities)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aansible-manager-backend\u0026metric=security_rating)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aansible-manager-backend)\n\n[![Sonarcloud](https://sonarcloud.io/api/project_badges/quality_gate?project=com.jukusoft%3Aansible-manager-backend)](https://sonarcloud.io/dashboard?id=com.jukusoft%3Aansible-manager-backend)\n\n\nA ansible manager / server as an alternative to Ansible semaphore and ansible tower.\nfrontend: https://github.com/JuKu/ansible-manager-frontend\n\n## the problem\n\nAnsible is a very nice tool to automate your infrastructure.\nBut if you have much servers to adminsitrate, it become to be difficult and expensive.\nThe cause for this is, that you have to edit your inventory files regulary, you need to deal with things like host key verification, execution of the scripts, get the ssh private keys and so on.\n\n# the solution\n\nThis solution tries to solve this problems in a form of a centralized angular manager-server with multiple worker nodes.\nThe manager-server provides a nice UI to administrate your servers, your playbooks and roles, create templates and execution plans (e.q. \"execute a playbook every night at 4.00 a clock\") and so on.\nIts also for CI / CD approaches and quick deployments of complex systems or clusters of servers.\n\n# Why?\n\nAt my job as a software engineer and network \u0026 server adminstrator at a startup in Dresden i try to make admistrative things faster and more efficient.\nWe don't have the man power to spend much time in many recurring tasks, which are so linear, that they don't need a person who did this.\nBut currently we did, because there is no solution which fits our needs. So we execute ansible playbooks manually, from the console, wait a much of time, edit many files instead of generating them and so on.\nSo the thought was: This can be done better! So this is the idea, why is started this project.\n\n# HowTo use\n\n**Requirements**:\n  - A **mysql** / **mariadb** or a **postgresql** database\n  - actual optional: RabbitMQ Server for messaging\n\nThe CI Server automatically builds a current docker image, if the build was successful.\nYou have to start 2 docker containers with the same database:\n  - jukusoft/anman-manager\n    * https://hub.docker.com/r/jukusoft/anman-manager\n  - jukusoft/anman-worker\n    * https://hub.docker.com/r/jukusoft/anman-worker\n\n# the roadmap\n\n## August - December 2021\n\n  - initialize project \u0026#9745;\n  - authentication \u0026#9745;\n  - LDAP integration (test with FreeIPA) \u0026#9745;\n  - permission system\n  - Create admin user on first start \u0026#9745;\n  - inventory management\n  - generation of inventory files\n\n//\u0026#9744;\n\nSee also: https://github.com/JuKu/ansible-manager/projects/1?add_cards_query=is%3Aopen\nZenHub: https://app.zenhub.com/workspaces/anman-61afc4e126f6d300107f6a88/board\n\n# Deployment\n\n## example docker-compose.yml\n\n```text\nversion: \"3.1\"\n\nnetworks:\n  ansible-manager:\n    external: true\n\n\nservices:\n\n  mariadb:\n    image: bitnami/mariadb:latest\n    restart: always\n    environment:\n      - ALLOW_EMPTY_PASSWORD=no\n#      - MARIADB_EXTRA_FLAGS='--max-connect-errors=1000 --max_connections=155'\n      - MARIADB_ROOT_USER=root\n      - MARIADB_ROOT_PASSWORD=\u003cYOUR DB ROOT PASSWORD\u003e\n      - MARIADB_DATABASE=ansible-manager\n      - MARIADB_USER=ansible-manager\n      - MARIADB_PASSWORD=\u003cYOUR DB PASSWORD\u003e\n    networks:\n      - ansible-manager\n    ports:\n      - 3306:3306\n    volumes:\n      - /opt/docker/volumes/mariadb:/bitnami/mariadb\n\n  ansible-manager:\n    image: jukusoft/anman-manager:master-latest\n    restart: always\n    environment:\n      - DATABASE_TYPE=mysql\n      - DATABASE_HOST=mariadb\n      - DATABASE_PORT=3306\n      - DATABASE_NAME=ansible-manager\n      - DATABASE_USER=ansible-manager\n      - DATABASE_PASSWORD=\u003cYOUR DB PASSWORD\u003e\n    depends_on:\n      - mariadb\n    networks:\n      - ansible-manager\n    ports:\n      - 8081:8080\n    volumes:\n      - /opt/docker/run/ansible-manager/application.yml:/var/lib/jetty/application.yml\n\n  ansible-worker:\n    image: jukusoft/anman-worker:master-latest\n    restart: always\n    environment:\n      - DATABASE_TYPE=mysql\n      - DATABASE_HOST=mariadb\n      - DATABASE_PORT=3306\n      - DATABASE_NAME=ansible-manager\n      - DATABASE_USER=ansible-manager\n      - DATABASE_PASSWORD=\u003cYOUR DB PASSWORD\u003e\n    depends_on:\n      - mariadb\n    networks:\n      - ansible-manager\n    ports:\n      - 8082:8080\n    volumes:\n      - /opt/docker/run/ansible-manager/application.yml:/var/lib/jetty/application.yml\n\n  anman-frontend:\n    image: jukusoft/anman-frontend:master-latest\n    restart: always\n    environment:\n      - BACKEND_API=http://\u003cYour public Backend IP or Domain\u003e:8081/\n      - DEFAULT_LANGUAGE=de\n    depends_on:\n      - ansible-manager\n    networks:\n      - ansible-manager\n    ports:\n      - 80:80\n\n  # if required\n  phpmyadmin:\n    image: phpmyadmin\n    restart: always\n    ports:\n      - 8080:80\n    environment:\n      - PMA_ARBITRARY=1\n      - PMA_ABSOLUTE_URI=http://\u003cYour public Backend IP or Domain\u003e:8080/\n    depends_on:\n      - mariadb\n    networks:\n      - ansible-manager\n```\n\n# Changelogs\n\n## V0.1.0 (WIP)\n\n**New Features**:\n\n  - Added example docker-compose.yml in README, see #5\n  - Added global settings, see #10\n\n**Developer Improvements**:\n\n  - Upgrade spring version, see #15\n  - Fix a security leak in log4j, see #13\n  - Upgrade springfox swagger to Springdocs, see #16","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuku%2Fansible-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuku%2Fansible-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuku%2Fansible-manager/lists"}