Skip to content
Docker environment for testing out Rundeck
Makefile Shell Dockerfile Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.makestate cleanup Aug 9, 2018
database Finish up credential rotation guide Aug 25, 2018
docs Finish up credential rotation guide Aug 25, 2018
fpm
loadbalancer clean up node naming Aug 9, 2018
rundeck-cli add plugin bootstrap tool, move rd to native instead of dockerized Oct 27, 2018
rundeck-plugin-bootstrap
rundeck-plugins Use the plugin api Oct 17, 2018
rundeck-project Group jobs, add uuids Oct 17, 2018
rundeck Use the plugin api Oct 17, 2018
ssh Finish up credential rotation guide Aug 25, 2018
tools add plugin bootstrap tool, move rd to native instead of dockerized Oct 27, 2018
web Finish up credential rotation guide Aug 25, 2018
.gitignore support java plugins Dec 19, 2018
Makefile support java plugins Dec 19, 2018
README.md move env vars into make Oct 27, 2018
_config.yml
docker-compose.yml support java plugins Dec 19, 2018

README.md

Rundeck playground

Overview

This is a Docker environment to help you develop and test Rundeck plugins in a distributed system.

Note that while all these services are in Docker containers, Rundeck doesn't need Docker to run, nor do you need to have a dockerized application to benefit from it. Docker is only used here so that you can play with a distributed system on your local workstation.

See the Rundeck docs for how to install Rundeck in a real world setting.

Prerequisites

Usage

To start up the environment:

make

This will run docker-compose to build all the images and start the containers in the foreground. Leave this process running so you can see the logs from all the containers.

To configure the Rundeck server with the example project, jobs, keys and hello world plugin, run:

make rd-config

To kick off the hello world job:

make rd-run-job

You should see something like this:

 Found matching job: c8c66849-a66a-4714-bdc1-5b6f09dbd151 Hello Test Job
# Execution started: [97] c8c66849-a66a-4714-bdc1-5b6f09dbd151 /Hello Test Job <http://127.0.0.1:4440/project/hello-project/execution/show/97>
[727700d20fcf] Hello bash from Hello Test Job
[ace491b72364] Hello bash from Hello Test Job

You might have to wait a few seconds for the Rundeck server to finish booting up before running rd-run-job.

You can also interact with the Rundeck server using the rd command line tool. To install it locally:

make tools
eval $(make env)

To use:

rd run -f --job 'HelloWorld'

Directory structure

This repo is docker-compose project with several containers, each with a corresponding directory:

  • rundeck - the Rundeck server
  • rundeck-cli - the rd Rundeck command line client
  • web - a simple web app that would represent your company's app. There are 2 instance of them in the docker-compose environment. This container also runs an ssh daemon to allow for rundeck to ssh into it and run commands
  • database - a postgres database that the web app depends on
  • loadbalancer - the public facing web proxy that load balances between the web instances

Other directories that aren't containers:

  • rundeck-project - Various Rundeck server configuration
  • rundeck-plugins - Sample Rundeck plugins. Any new directories will get deployed as Rundeck plugins
  • docs - A guide on how build a Rundeck plugin that's used here

The containers are run by docker-compose as specified by the docker-compose.yml file. See the docker-compose docs for reference.

You can’t perform that action at this time.