daiba/Pawn
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Pawn : Yet Another Deploy Tool I want to use a simple deploy tool, which consist of a file and depends on core modules. This is my solution. Pawn.pl reads a configuration file, recognize which servers to process and what commands to execute. sample configurations: -- ex1 -- hosts 'host1 host2' commands sub { ( [ 'hostname' => sub { print shift } ], [ 'date' => sub { print shift } ] ); }; -- ex2 -- include 'hosts'; commands sub { ( [ 'hostname' => sub { print shift } ], [ 'date' => sub { print shift } ] ); }; -- hosts -- hosts 'host1 host2'; -- ex3 -- include 'hosts'; commands sub { ( [ 'hostname' => sub { print shift } ], [ sub { 'scp' => '/etc/motd HOST:/home/daiba'} => sub { print $_=(shift==0)? 'OK' : 'NG',"\n" } ], [ 'date' => sub { print shift } ] ); }; -- ex4 -- include 'hosts'; commands sub { ( [ 'hostname' => sub { print shift } ], [ sub { 'scp' => 'HOST:/etc/redhat-release /Users/daiba/HOST_release'}, => sub { print $_=(shift==0)? 'OK' : 'NG',"\n" } ], [ 'date' => sub { print shift } ] ); }; -- ex5 -- include 'hosts'; commands sub { ( [ 'hostname' => sub { print shift } ], [ sub { 'local' => 'hostname'} => sub { print shift } ], [ 'date' => sub { print shift } ] ); }; -- ex6 -- include 'hosts'; commands sub { ( [ 'hostname' => sub { print shift } ], [ 'ls AST' => sub { print shift } ] ); }; -- ex7 -- include 'hosts'; commands sub { ( [ 'hostname' => sub { print shift } ], [ sub { 'local' => 'ls AST'} => sub { print shift } ], ); }; how to run: $ pawn.pl ex1 # ex1 as a configuration file above $ pawn.pl -s commands_file # shell mode $ pawn.pl -h # help
About
Yet another deploy tool
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published