/rundeck-1

Alpine based Docker container running Rundeck

Primary LanguageShell

Rundeck

What is Rundeck?

Rundeck is open source software that helps you automate routine operational procedures in data center or cloud environments. Rundeck provides a number of features that will alleviate time-consuming grunt work and make it easy for you to scale up your automation efforts and create self service for others. Teams can collaborate to share how processes are automated while others are given trust to view operational activity or execute tasks.

Rundeck allows you to run tasks on any number of nodes from a web-based or command-line interface. Rundeck also includes other features that make it easy to scale up your automation efforts including: access control, workflow building, scheduling, logging, and integration with external sources for node and option data.

General information

Getting started

Documentation

Release Notes

Image features

  1. Minimalistic image (based on Alpine Linux)
  2. DB and local file storage configuration support (Postgres default, MySQL tested and working)
  3. SSL certificate support (self-signed or generated by a certification authority)
  4. Email support
  5. Active Directory support

How to use

Clone the repo

git clone https://github.com/hbjcr/rundeck.git

Make sure you change your current folder to rundeck's project folder

Build your rundeck image

docker build -t rundeck .

Create your new rundeck container

Example #1 - Run using local storage and internal ip

docker run -d \
	-p 4440:4440 \
	--name rundeck -h rundeck_dev \
	rundeck

Test: http://[yourdomain.example.com]:4440/

Example #2 - Run using an external PostgreSQL database and specific URL

docker run -d \
	-p 4440:4440 \
	-e SERVER_URL=http://[yourdomain.example.com]:4440 \
	-e DB_HOST=[dbconnection.example.com] \
	-e DB_USER=[yourdbusername] \
	-e DB_PASSWORD=[yourdbpassword] \
	--name rundeck -h rundeck \
	rundeck

Test: http://[yourdomain.example.com]:4440

Example #3 - Run using a self-signed SSL certificate

docker run -d \
	-p 4443:4443 \
	-e SERVER_SECURED_URL=https://[yourdomain.example.com] \
	--name rundeck -h rundeck \
	rundeck

Test: https://[yourdomain.example.com]:4443

Example #4 - Run using an external SSL certificate and email notification support

docker run -d \
	-p 4443:4443 \
	-e SERVER_SECURED_URL=https://[yourdomain.example.com] \
	-e PFX_CERTIFICATE_URL=yourdomain.example.com.pfx \
	-e PFX_CERTIFICATE_PASSWORD=example \
	-e MAIL_HOST=smtp.example.com \
	-e MAIL_FROM=from@example.com \
	-e MAIL_USER=to@example.com \
	-e MAIL_PASSWORD=mypassword \
	--name rundeck -h rundeck \
	rundeck

Test: https://[yourdomain.example.com]:4443

Example #5 - Run using an external PostgreSQL database, external SSL certificate, email notification support and Active Directory authentication

docker run -d \
	-v /etc/localtime:/etc/localtime:ro \
	-v /etc/timezone:/etc/timezone:ro \
	-p 80:4440 \
	-p 443:4443 \
	-e DB_HOST=[dbconnection.example.com] \
	-e DB_USER=postgres \
	-e DB_PASSWORD=postgres \
	-e SERVER_SECURED_URL=https://example-scheduler-dev.example.com \
	-e PFX_CERTIFICATE_URL=yourdomain.example.com.pfx \
	-e PFX_CERTIFICATE_PASSWORD=example \
	-e MAIL_HOST=smtp.example.com \
	-e MAIL_FROM=from@example.com \
	-e MAIL_USER=to@example.com \
	-e MAIL_PASSWORD=mypassword \
	-e AD_HOST=corpad.example.com \
	-e AD_PORT=389 \
	-e AD_BINDN=CN="exampleaccount,OU=ExampleOU,DC=example,DC=com" \
	-e AD_BINPASSWORD=mypassword \
	-e AD_USERBASEDN="DC=example,DC=com" \
	-e AD_ROLEBASEDN="CN=example_developer,OU=ExampleOU,DC=example,DC=com" \
	--name rundeck -h rundeck \
	rundeck

Test: https://[yourdomain.example.com]:4443

Arguments available

USER SETTINGS
   DEFAULT_ADMIN_USER          Set the default admin user (defaults to "admin")
   DEFAULT_ADMIN_PASSWORD      Set the default admin's password (defaults to "admin"). Must be at least 6 chars long
   DEFAULT_USER                Set the default user (defaults to "user")
   DEFAULT_PASSWORD            Set the default user's password (defaults to "user")

SERVER SETTINGS
   SERVER_MEMORY               Increases maximum permanent generation size
   SERVER_URL                  Sets Rundeck's grails.serverURL
   SERVER_PORT                 Sets Rundeck's listening port (defaults to "4440")
   USE_INTERNAL_IP             When SERVER_URL is undefined, use the container's eth0 address (otherwise try to guess external)

SSL SETTINGS
   SERVER_SECURED_URL          Sets Rundeck's grails.serverURL and HTTPS protocol
   SERVER_SECURED_PORT         Sets Rundeck's listening secured port (defaults to "4443")
   PFX_CERTIFICATE_URL         Location (file, folder or URL) of the PFX certificate to be used in the SSL certificate; if not provided then a personal SSL will be generated
   PFX_CERTIFICATE_PASSWORD    Password used to decrypt the private contents of your PFX file

DB SETTINGS
   JDBC_DRIVER                 Enables interaction with a db (defaults to "postgresql", another common option is "mysql")
   DB_HOST                     Database server host address (if not provided then local storage used)
   DB_PORT                     Database server listening port (defaults to "5432")
   DB_NAME                     Rundeck's database name (defaults to "rundeck"; the database won't be created for you, you need to create it upfront and prior to running your Rundeck container)
   DB_USER                     Database username (defaults to "rundeck")
   DB_PASSWORD                 Database password (defaults to "rundeck")

EMAIL SETTINGS
   MAIL_HOST                   Email server host address (if not provided then no email notifications will be available)
   MAIL_PORT                   Email server port number (defaults to "25")
   MAIL_FROM                   From email account
   MAIL_USER                   Email server username
   MAIL_PASSWORD               Email server password

ACTIVE DIRECTORY SETTINGS
   AD_HOST                     Active Directory (AD) server to be used
   AD_PORT                     AD server port number (defaults to "389")
   AD_BINDN                    Username used to query your AD in distinguised name (DN) form  e.g. "cn=myusername,dc=example,dc=com" (https://msdn.microsoft.com/en-us/library/windows/desktop/aa366101(v=vs.85).aspx)
   AD_BINPASSWORD              Password used to query your AD in clear text
   AD_USERBASEDN               Base DN to search for users, this is the OU which recursive searches for users will be performed on, e.g. "ou=People,dc=test1,dc=example,dc=com"
   AD_ROLEBASEDN               Base DN for role membership search, this is where your "rundeck" AD user group is, e.g. "ou=Groups,dc=test1,dc=example,dc=com".

Community

Roadmap

Report bugs

Chat

Mailing list

Twitter