I'm a former systems engineer and account manager, who took a liking towards software development.
I hope you like what you see here.
- ๐ญ Iโm currently working on ZEHD
- โก Fun fact: My heat tolerance is >1 million SHU
A lightweight, fast server configuration management & automation tool. With the goal to keep the terminal/console simple and the commands even simpler
License: GNU General Public License v3.0
Parse bash scripts to avoid additional scripting to run with the tool
simplify using the command. eg. gossh all run my-bash-script.sh
gossh [seq/groups/all] update system (or os, haven't decided yet)
this should run a full distribution update/upgrade on all servers, os must be specified in pool.yml file in order for it to work.
check if there is a ssh key specified, if not, then use password auth
ssh: handshake failed: knownhosts: key mismatch
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5f1b61]
goroutine 8 [running]:
github.com/APoniatowski/GoSSH/sshlib.connectAndRun(0xc0000b58a0, 0xc00001cb10, 0xd, 0xc000016840, 0x1a, 0xc00001cb38, 0x8, 0x0, 0x0, 0xc000016900, ...)
C:/dev/golang/GoSSH/sshlib/sshlib.go:78 +0x4b1
created by github.com/APoniatowski/GoSSH/sshlib.RunAllServers
C:/dev/golang/GoSSH/sshlib/sshlib.go:271 +0x463
This will need a quick patch...
noun
"a minimum or starting point used for comparisons"
similar to what the other tools would call playbooks/cookbooks/manifests/etc. I will design and plan how to simplify it, to the point that one does not need to learn a tool intensively. It needs to be fluent, obvious and intuitive.
Create layout/template yaml file for constructing baselines
Create 'apply' function to apply the baseline
Create 'check' function to check if the baseline is compliant
Create 'verify' function to check/verify the baseline you have created (a baseline check to see if you would encounter errors before running it)
gossh [seq/groups/all] update
Should update all servers on major distributions (popular package manager, eg. yum, dnf, apt-get, pacman, zypper,etc )
gossh status
should log the status of all servers. This will run concurrently, instead of giving the option of running them in groups, or sequentially.
I will think of a design, that would be readable and useful as it progresses
This will be needed in the very near future, as one will need sudo in most automation tasks.
Password will become a requirement in the config file, when Need_Sudo is set to yes/true
I will need to resolve this issue, as currently it is set to HostKeyCallback: ssh.InsecureIgnoreHostKey()
The need will arise to use HostKeyCallback: ssh.FixedHostKey()
, for security concerns.
Conditions will have to be put in place, where if it does not find a knownhosts file (windows, if not using bash/putty), it will have to use InsecureIgnoreHostKey
and if it does find it, it needs to parse it and check if they match the config file.
Another condition will then have to be put in place, that if the servers in the config file, does not match the knownhosts, it should either automatically add them, or print a recommendation to use another option (thinking of adding 'add' as an option to sequentially add servers to the knownhosts file)
this will be an interesting one... as one would need to run a specific group, which sounds obvious and trivial, but when one has the ability to write out full sentences in your pool.yml, that can become... tricky.
or
if one runs gossh groups command
, and you have 2 servers in the first group, and 1 in the second group... it would run through the first group just fine (with its errors and log them). but the second group runs twice, with 1 success, even though the second one failed (intentionally tested this)
It is most likely a logic error, which I can't see yet. Or alternatively, find another progress bar to replace the current one. There are a few dynamic ones out there...
I would like to either change the progress bar, or make changes to the progress bar, to show some color. For eg. as the bar progresses, it should show an indication of failed/success, via green or red colors in the progress bar. Also some of the output can also be spruced up a bit.
Colorize progress bar
Colorize some of the output
gossh [seq/groups/all] install package
gossh [seq/groups/all] uninstall package
Should install/uninstall packages on all servers.
Install
Uninstall
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.