theforeman/foreman_remote_execution

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Build Status](https://img.shields.io/jenkins/s/http/ci.theforeman.org/test_plugin_foreman_remote_execution_master.svg)](http://ci.theforeman.org/job/test_plugin_foreman_remote_execution_master)
[![Gem Version](https://img.shields.io/gem/v/foreman_remote_execution.svg)](https://rubygems.org/gems/foreman_remote_execution)
[![Code Climate](https://codeclimate.com/github/theforeman/foreman_remote_execution/badges/gpa.svg)](https://codeclimate.com/github/theforeman/foreman_remote_execution)
[![GPL License](https://img.shields.io/github/license/theforeman/foreman_remote_execution.svg)](https://github.com/theforeman/foreman_remote_execution/blob/master/LICENSE)

# Foreman Remote Execution

A plugin bringing remote execution to the Foreman, completing the config
management functionality with remote management functionality.

* Website: [theforeman.org](http://theforeman.org)
* Support: [Foreman support](http://theforeman.org/support.html)

## Features

* Visualize remote execution job process live
![job detail](http://theforeman.org/plugins/foreman_remote_execution/0.0/job_detail_1.png)
* Schedule or run jobs on hosts
![invocation form](http://theforeman.org/plugins/foreman_remote_execution/0.0/invocation_form.png)
* Create templates to customize your jobs
![job templates](http://theforeman.org/plugins/foreman_remote_execution/0.0/job_template_form.png)

## Installation and usage

Check the Foreman manual [remote execution section](http://theforeman.org/plugins/foreman_remote_execution/)

## Compatibility

| Foreman Version | Plugin Version |
| --------------- | -------------- |
| >= 3.1          | ~> 5.0.0       |
| >= 3.2          | >= 6.0.0       |

## Simulated runs
There is an option to use an alternative `ScriptRunner` implementation. Instead of doing ssh connections it discards any input its given and gives back fake output.

It is controlled by setting the following environment variables
`REX_SIMULATE` - setting to 1, yes or true enables the use of the fake runner
`REX_SIMULATE_PATH` - full path to a file which should be given back as output by the runner, currently one line per runner's refresh
`REX_SIMULATE_FAIL_CHANCE` - number from 0 to 100, each host has a `REX_SIMULATE_FAIL_CHANCE` of exiting with `REX_SIMULATE_EXIT`, useful for simulating random failures
`REX_SIMULATE_EXIT` - see the previous

Because it doesn't really open the outgoing connections, it doesn't need hosts with valid IP addresses as targets.

## Links

* [Design document](http://theforeman.github.io/foreman_remote_execution/design/)
* [Issue tracker](http://projects.theforeman.org/projects/foreman_remote_execution)

## Contributing

Fork and send a Pull Request. Thanks!

To run Rubocop use the rake task in foreman dir:

    bundle exec rake foreman_remote_execution:rubocop

Auto correct can be executed directly too:

    bundle exec rubocop ~/work/foreman_remote_execution -a

## Release Process

### Pull Translations from Transifex

As part of the release process, localization must be synced from Transifex. See the [wiki](http://projects.theforeman.org/projects/foreman/wiki/How_to_Create_a_Plugin#Pulling-translations-from-Transifex) for more information.

### Sync Job Templates from Community Templates

The [community-templates](https://github.com/theforeman/community-templates.git) repo is the source for our job templates.  Prior to release, use the script/sync_templates.sh script to pull in any changes.


## Copyright

Copyright (c) 2015 The Foreman developers

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.