ITA-RunDeck

Last modified by Christian Reiber on 2021/09/24 19:40

Purpose

This software stack provides RunDeck, an IT Automation (ITA) tool for enabling Self-Service Operations, i.e., give specific users access to your existing tools, services, and scripts.

Properties

 Stack-Description  RunDeck IT Automation (ITA)    
 Stack-Image        docker.msg.team/ps/docker-stack-ita-rundeck   
 Stack-Version      4.8.0 
 Stack-Release      20230321 
 Product-Name  RunDeck 
 Product-Vendor  RunDeck, Inc. 
 Product-Contact  https://rundeck.org/ 
 Product-Model  Open Source 
 Product-License  Apache 
 Product-Limits  none 
Implementation Base  Java
Execution Base       JVM (Spring)
Initial Start Time   00:01:20
Documentation       https://docs.rundeck.com/docs/ (look at the menu tabs for tutorials and other resources)

Topology

The stack consists of 2 containers:

  • ita-rundeck: the RunDeck application
  • ita-rundeck-postgresql: the RDBMS storage backend

Configuration

Variable Name       Default Meaning  

See also the variables which control integration of the stack into the reverse proxy.
For changes to take effect the stack has to be reinstalled.

First Steps

RunDeck is administered through a web UI which is started when you click the ITA-RunDeck tile on the PS4 start page. You are requested to log in, the administration user is predefined as admin with initial password admin.

In RunDeck you define jobs which automate tasks. They may be triggered through Web UI, API,CLI or by schedule. Configuration can be done either in the Web UI or by uploading XML or YAML files. A role-based access control system is in place so that users or groups can be authorized to trigger such tasks  note that RunDeck is specifically useful for self-service. Plugins allow to extend Rundeck's functionality.

A job contains commands which are executed on nodes (i.e. hosts) through a node executor. This encapsulates the protocol which is used to execute the command on the node, e.g. ssh. To keep order jobs can be gathered into job groups which work like folders.

The toplevel order criterion of RunDeck is a project. Everything belongs to and occurs in the context of a project, therefore the first action in a new Rundeck instance is to create at least one project. After login you are immediately presented with a New Project button. The project just needs a name.

Consequently, whenever you login to RunDeck the first thing you have to do is selecting a project. The navigation bar on the right side of the screen shows a Projects entry. When expanded the list of projects you have access to is displayed below. Clicking on a project reveals its context with dashboard, jobs, nodes, commands and activities. If you have access to just one project it will be automatically selected.

To create a job:

  • Click Jobs in the navigation bar and New job in the following pane. (If jobs already exist use the Job actions drop down on the right instead where you choose New job). You are presented with a pane consisting of several tabs. We start in the Details tab which should be already selected.
  • Enter a job name and optionally a job group (written in Unix path syntax) and a job description. Nota that for the description it is convention to give a one-liner explanation in the first line followed by a blank line and a more detailed description which may use Markdown format.
  • What to execute: The Workflow tab is where you put meat to your job: It details what should be done. As a job may consist of several steps you find an Add a step button or dialog where you have to select the step type and then detail what to execute. Steps are then displayed in a list, icons to the right allow you to modify the steps, e.g. change their sequency. (On which nodes these steps will be executed is defined on the next pane.) Among the available step types you find
    • Command:// executes a single command
    • Script:// executes a set of commands
    • Script file or URL:// executes command in a script which is fetched through a file path or a URL
    • Job reference:// executes another job
  • Where to execute: Switch to the Nodes tab. The primary decision is whether to let the job Execute locally (which means on your RunDeck container) or Dispatch to Nodes. In the latter case you are presented with a variety of entry fields to specify where to execute the job. As long as you have not provided additional nodes (which RunDeck calls a ressource model, possibly to give a simple thing a complicated name...) just your local RunDeck container is available.
  • A few other tabs allow to fint-tune the job, e.g. whether it should be executed based on a time schedule or whether notifications should be sent via e-mail or webhook on certain events, e.g. success or failure of the job.
  • Eventually press Create to finish job creation.
  • You are then dropped into the job's detail view where a green Run job now button allows to trigger immediate job execution.
  • Th eother way to manually start the job is through the Jobs entry on the navigation panel. You have to drill down through the job groups (if you have used them) to the job you want to execute, press the green triangle and then the Run job now button. The Follow executions drop down list determines what information you are presented with once the job executes.

The Activity entry in the navigation pane always display the list of executing and executed jobs. Each job's detail pane shows the executions of this job. By clocking on the job line the steps are expanded and you see the result of each step and can look at the log output when clicking on the step's line. The Log output button reveals everything the job has written to stdout or stderr.

Related Documents

 

Tags:
Created by Christian Reiber on 2020/02/20 14:22

Navigation