Task Deal has been released. - Reflect settings on multiple generation machines. An alternative to Perl's Ruby Chef.
We have released 0.01 of Task Deal that we were developing. This is a major release. Since it is a tool made by Perl, it can be installed easily, and the environment settings can be reflected on multiple machines from the screen of the Web browser. It is possible to send one command to multiple machines at once.
Example
You can try Task Deal below. For your safety, only the echo command can be executed. The ehoc command is just a shell.
(ID admin, password test)
Repository
Features
Task Deal has the following features.
- You can execute commands from a web browser screen on multiple machines.
- The client (target machine side) and the server (web browser side) communicate using WebSocket. Push delivery of commands from the server to the client.
- It's portable. It can be installed on Unix/Linux servers and Cygwin on Windows (requires gcc4).
- Only Perl 5.8.7 or higher is required. Installation is very easy.
- It also supports SSL.
- You don't have to memorize a dedicated description or cookbook using Ruby's DSL like Chef. You can write machine settings in a familiar shell.
- Since push delivery type communication is performed from the server side, there is no need to set the client. All you have to do is connect the client to the server side.
- The client-side command log is retrieved on the server side, so you can see what happened on the server side.
Installation on Unix/Linux machines
Task Deal is very easy to install.
Download
Download the tar.gz file, unpack it, and change the directory.
curl -kL https://github.com/yuki-kimoto/taskdeal/archive/latest.tar.gz> taskdeal-latest.tar.gz tar xf taskdeal-latest.tar.gz mv taskdeal-latest taskdeal cd task deal
Setup
Run the following command: The required modules will be installed.
./setup.sh
Exam
Check if the setup is successful with the following command.
prove t
If "All tests successful" is displayed, the setup is successful.
Operation
Server startup and restart
Start the Task Deal server with the following command. The server starts in the background. The default port number is 10040.
./taskdeal-server
Please access the following URL.
http: // localhost: 10040
If you want to change the port, edit taskdeal-server.conf. If you cannot access this port, please review your firewall settings as well.
You can perform tasks on the client from the screen of your web browser.
The connection port for clients is 10041 by default.
Stop server
You can stop the server with the - stop option.
./taskdeal-server - stop
Start client
You can start the client with the following command.
./taskdeal-client
The client receives the task from the server and executes it.
The client connects to http: // localhost: 10041 by default. If you want to change this value, change the host and port in the server section of taskdeal-client.conf.
Stop client
- You can stop the server with the -stop option.
./taskdeal-client - stop
Server settings
See taskdeal-server.conf.
Client configuration
See taskdeal-client.conf.
Role and task settings
You can create roles in server/roles . A role is just a directory that stores tasks.
First, let's create roles in the server/roles directory with the names small and medium. You can give the roll any name you like.
server/roles/small /medium
The task is just an executable file. Give the file execute permission. It can be created in the role directory.
server/roles/small/echo
The echo task is just an executable script that prints "foo".
# !/bin/sh echo "foo"
Tasks can also be hierarchically structured using directories.
server/roles/small/echo /dir/echo2
Developer
If you are a developer, you can start the server and client with the following commands.
# Start the server ./devels # Start client ./develc
You can access it at the following URL:
http: // localhost: 3000
If you have git, you can easily install it using git.
git clone git: //github.com/yuki-kimoto/taskdeal.git
It would be convenient to write the settings in taskdeal-client.my.conf and taskdeal-server.my.conf.