Giter Club home page Giter Club logo

gossh's Introduction

Hi there ๐Ÿ‘‹, my name is Adam

Welcome to my portfolio

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

๐Ÿ“ˆ GitHub Stats

Adam's GitHub Stats

Bot Stats:

Adam's GitHub Stats

๐Ÿ”ง Technologies & Tools

Social Media

github linkedin

Achievements

Profile views

gossh's People

Contributors

aponiatowski avatar deepsourcebot avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

zer0n1

gossh's Issues

Parse bash scripts in CLI args

Parse bash scripts to avoid additional scripting to run with the tool

simplify using the command. eg. gossh all run my-bash-script.sh

[FEATURE] System upgrade from CLI

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.

ssh: handshake failed: knownhosts: key mismatch

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...

[FEATURE] Add another option to apply "baselines" to groups/servers

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)

[FEATURE] update CLI option

gossh [seq/groups/all] update

Should update all servers on major distributions (popular package manager, eg. yum, dnf, apt-get, pacman, zypper,etc )

[FEATURE] System status/health CLI command

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

Add Need_Sudo to config.yml

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

knownhosts file conditions

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)

[ENHANCEMENT] Run a specific group and not all groups

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.

  • gossh group "the long group name" command
    which makes it easier, but not very fluent typing and annoying to add quotations in the terminal

or

  • gossh group the long group name command
    which would be a tough one... parse the group names into string slices and get the length of that, and use that number to check if the name is correct? eg if the group name in the pool is [3], then it would check the cli args from [1:3+3] (numbers could be wrong... its late, I'm tired)

[BUG] inconsistent number of runs in progress bar when errors are encountered

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...

[ENHANCEMENT] Graphical update

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.