{"id":27055000,"url":"https://github.com/aschmidt75/mcollective-docker-agent","last_synced_at":"2025-06-25T00:32:02.611Z","repository":{"id":152804688,"uuid":"10843019","full_name":"aschmidt75/mcollective-docker-agent","owner":"aschmidt75","description":"An MCollective Agent for the Docker API. ","archived":false,"fork":false,"pushed_at":"2015-03-23T13:05:54.000Z","size":149,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T09:18:02.532Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/aschmidt75.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-21T13:29:52.000Z","updated_at":"2020-01-17T20:50:22.000Z","dependencies_parsed_at":"2023-04-13T03:11:05.012Z","dependency_job_id":null,"html_url":"https://github.com/aschmidt75/mcollective-docker-agent","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aschmidt75/mcollective-docker-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschmidt75%2Fmcollective-docker-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschmidt75%2Fmcollective-docker-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschmidt75%2Fmcollective-docker-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschmidt75%2Fmcollective-docker-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aschmidt75","download_url":"https://codeload.github.com/aschmidt75/mcollective-docker-agent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschmidt75%2Fmcollective-docker-agent/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261782345,"owners_count":23208902,"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":[],"created_at":"2025-04-05T09:18:06.881Z","updated_at":"2025-06-25T00:32:02.580Z","avatar_url":"https://github.com/aschmidt75.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"mcollective-docker-agent\n========================\n\n##What##\n\nThis is a simple MCollective Agent for the Docker API. It uses [geku/docker-client](https://github.com/geku/docker-client) to access the docker API. \nOn the other end it exposes the services as actions within the mcollective agent. An mcollective application allows for easy\nrpc calls on multiple container hosts.\n\n##Why##\n \nMaintaining a large container-based setup can become hard. A client would have to connect to individual docker daemons, \nwhich does not scale very well. Using this agent, a client can have access to docker daemons on multiple hosts/vms,\ncontrolling all of them in parallel. \n\nFor more information on MCollective, see this [introduction](http://puppetlabs.com/mcollective/introduction/).\n\n##Dependencies##\n\n * MCollective (\u003e=1.3.2) from [puppetlabs](http://puppetlabs.com/puppet/puppet-open-source/), at least mcollective-server on the host side\n * [Docker](http://www.docker.io/)\n * The docker-client from (https://github.com/geku/docker-client)\n   * which needs active_support\n\n##Installation##\n\nClone this repo. The contents of agent/ and appliation/ must be copied to the mcollective library directory, \nwhich is referenced in /etc/mcollective/server.cfg (and /etc/mcollective/client.cfg):\n\n````\n$ MCOBASEDIR=$(cat /etc/mcollective/server.cfg | awk '/^libdir/ { print $3 }')/mcollective\n$ cp agent/docker* $MCOBASEDIR/agent/\n$ cp application/docker* $MCOBASEDIR/application/\n$ service mcollective restart\n````\n\nYou will need a functional mcollective setup (with server,clients and message bus) and a functional docker installation.\nPlease refer to the sites mentioned above for setup instructions.\n\n##Usage##\n\nThe mcollective client application covers a number of use cases provided also by the docker console client. It execute them on \nmultiple servers within the collective and returns the result. The output is similar to the docker command but includes the\nserver name in the first column.\n\n####Show running containers####\n````\n$ mco docker ps\n\n * [ ============================================================\u003e ] 1 / 1\n\nSERVER              ID                  IMAGE               COMMAND             CREATED             STATUS              PORTS\nubu1304             98c5f2f03e14        busybox:latest      /bin/sh             1371815051          Up 2 hours\nubu1304             468f5d70bcb7        busybox:latest      /bin/sh             1371815051          Up 2 hours\n...\n\nFinished processing 1 / 1 hosts in 71.37 ms\n````\n\n####Show *all* containers (including non-running), but limit output to 20 items ####\n````\n$ mco docker ps --all --limit=20\n````\n\n####List containers created before or since other containers####\n````\n$ mco docker ps --all --beforeId=98c5f2f03e14\n$ mco docker ps --all --sinceId=98c5f2f03e14\n````\n\n####Show images####\n````\n$ mco docker images\n````\n\n##TODOs##\n  * gemspec\n  * rake task\n  * implement commands on application client\n  * implement more actions \n  * make agent configurable\n\n\n###License###\nThis is open source, see LICENSE.txt inside.\n(C) 2013 by Andreas Schmidt, \u003candreas.schmidt@cassini.de\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faschmidt75%2Fmcollective-docker-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faschmidt75%2Fmcollective-docker-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faschmidt75%2Fmcollective-docker-agent/lists"}