Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/henrybarreto/walkietalkie
Remote command runner
https://github.com/henrybarreto/walkietalkie
client hacktoberfest linux newbie p2p rust server
Last synced: about 1 month ago
JSON representation
Remote command runner
- Host: GitHub
- URL: https://github.com/henrybarreto/walkietalkie
- Owner: henrybarreto
- License: mit
- Created: 2021-05-30T20:08:35.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-02-16T15:55:38.000Z (almost 2 years ago)
- Last Synced: 2023-03-10T10:06:25.938Z (almost 2 years ago)
- Topics: client, hacktoberfest, linux, newbie, p2p, rust, server
- Language: Rust
- Homepage:
- Size: 248 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## What is Walkietalkie?
Walkietalkie is a simple remote command runner. The main idea is to help system admins to execute simple commands in many
remote devices at once. It is a composition of a server (soldier) and a client (commander).The server is set up and
configured in the remote device with the commands and the client request the execution of those commands.### Soldier (server)
The Soldier is the Walkietalkie's server, and it is responsible to receive, execute and return the result from the
commands.The Soldier configuration file is `soldier.ron`.
```ron
(
name: "S. Buck", // It should be unique and it used to indefy the Soldier.
addr: "127.0.0.1:14114", // It is the host what the Soldier listen.
group: "root", // It is the unix group who will use the Soldier.
user: "root", // It is the unix user who will use the Soldier.
seal: ( // It defines credentials to acess the Soldier.
username: "root",
password: "root",
),
commands: [ // List of commands to be executed.
Command (
id: "echo",
name: "echo",
args: [
"Hello, world!"
]),
Command (
id: "curl",
name: "curl",
args: [
"www.google.com"
])
],
)
```### Commander (client)
Commander is the Walkietalkie's client, therefore it sends the commands to be executed in the Soldier
(Server) and deal with output.```ron
(
name: "Cpt. Steven Rogers", // It should be unique and it used to indefy the Commander.
devices: [ // List of devices what the commander can connect and execute payloads.
Device (
address: "127.0.0.1:14114", // Device address.
seal: Seal ( // It defines credentials to acess the Soldier.
username: "root",
password: "root"
)
),
],
commands: ["echo", "google"], // List of commands to be executed in the Soldier.
)
```### The Soldier:
- Listening for Commander's connection
- Authenticate
- Require commands
- Executes commands
- Send back the Responses
- Wait new commands### The Commander:
- Send the commands to Soldiers configured in `commander.ron`
- Wait for a response
- Show the output## How to use?
To start a soldier with the right `soldier.ron` configuration file:
```sh
walkietalkie soldier
```To send a commands from a Commander to all Soldiers configured in `commander.ron` file:
```sh
walkietalkie commander
```