Giter Club home page Giter Club logo

rundeck-playground's Introduction

Rundeck playground

Note:

Gradle build of bootstrapped plugins may not work depending on your gradle version. After creating the bootstrapped plugin, I change "compile" -> "implementation" and "testCompile" to "testImplementation."

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.

rundeck-playground's People

Contributors

clofresh avatar jsboak avatar

Stargazers

Craig Hobbs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.