geard is a command-line client and agent for integrating and linking Docker containers into systemd across multiple hosts. It is the core of the next generation of OpenShift Origin and helps administrators install and manage the components of their developers' applications. geard is currently under active development in the upstream community - get involved today!
Docker has radically simplified the process of downloading and running application execution environments on Linux. The technology underlying these environments - cgroups, Linux namespaces, and secure process isolation with SELinux - has existed for some time, but Docker combines them with an efficient image layering and downloading scheme that makes building and running these images a snap. To learn more about Docker, see the excellent Docker tutorial.
At the same time, the systemd process manager (slated for inclusion in all major distributions of Linux) now offers administrators powerful control over the execution of applications and services. Its ability to manage and isolate processes and to aggregate and audit their log output into journald provides an excellent platform for user applications.
Together Docker and systemd ensure that developers can deliver and reliably run their applications to any environment. geard acts as an agent on each host to install Docker containers into systemd and support other container linking and configuration changes. The command-line client can connect to these agents for simple administrative tasks across a cluster, and in the future OpenShift brokers and other orchestrators will use the agent to manage containers across a cluster.
The geard agent requires systemd 207+ (Fedora 20, RHEL7) and a recent build of Docker. You can run the client on any platform that compiles the Go language.
Available via RPM in Fedora 19, 20, Rawhide, and in EPEL for RHEL7-beta:
yum install --enablerepo=updates-testing geard
yum install geard
yum install http://download.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.1.noarch.rpm yum install geard
Don't have systemd? Want to keep your main work system clean? Use a Vagrant VM to get Fedora 20 in a box.
You can set up VM-based testing by installing a few utilities:
Now if you have Go installed (and you have a valid $GOPATH variable), you can use it to pull the geard source code from GitHub:
go get github.com/openshift/geard cd $GOPATH/src/github.com/openshift/geard vagrant up vagrant ssh build/contrib
Clone the geard source code directly from GitHub:
git clone firstname.lastname@example.org:openshift/geard cd geard vagrant up vagrant ssh build/contrib
Once you have your geard environment ready to go you can try out an example.
geard is intended to provide host level services to an orchestrator (like OpenShift) or administrator. We expect it to be extended to add additional capabilities and to plug existing system services in where possible — services such as monitoring, identity management, or secure transport. More information about extensions coming soon.
Found a bug? Let us know! OpenShift uses a public Bugzilla instance.