# Go Forth and Gather
Gather - The Ultimate Source of Truth. Gather everything you ever wanted to know about your IT infrastructure into one simple searchable file, the GatherDB.
Gather is a tool that creates a comprehensive Source of Truth (SOT) for your IT infrastructure. The GatherDB contains an unlimited amount of configuration
management data as well as configuration state data.
One of the prime features of Gather is its speed. Gather allows you to get a deep understanding of the configuration and state of an infrastructure in
a few minutes. In addition, Gather allows you to run ad hoc commands such as "show running-config" on a large campus environment in a few seconds.
GATHER
* Three files are required. A target file, a command file, and an output file (does not need to exist before running script).
* The target file is a list of network devices. One device per line.
* The command file is a list of SHOW commands you want to issue to each one of the the devices in the target file. One command per line.
* The output file is a file that you want to output the text DB to. This is file does not need to exist prior to running the script.
INSTALLATION
First make sure you are running the latest version of pip3 by upgrading your version of pip using the following command.<br>
"pip3 install --upgrade pip" OR "python3 -m pip install --upgrade pip"<br>
After uprading pip to the latest version, install gather using the following command:<br>
"pip3 install gogather" OR "pip install gogather" if you only running python3 on your device<br>
USAGE:<br>
gather -h<br>
usage: gather [-h] [-c COMMANDFILE] [-sc SINGLECOMMAND] [-o OUTFILE] [-u USERNAME] [-t TARGETFILE] [-st SINGLETARGET] [-p PASSWD] [-notag]<br>
optional arguments:<br>
-h, --help show this help message and exit<br>
-c COMMANDFILE Enter Command File - One Per Line<br>
-sc SINGLECOMMAND Enter A Single Command Enclosed in Quotes - Example "show version"<br>
-o OUTFILE Enter Output Log File Name - If not specified default is GatherDB...<br>
-u USERNAME Username<br>
-t TARGETFILE Host File - One Per Line<br>
-st SINGLETARGET Enter One Target Host Only<br>
-p PASSWD Enter Password<br>
-notag NO TAG places untagged output into seperate files<br>
CLI Examples:<br>
gather -u <usename> -p <password> -t <target_file> -c <command_file> -o <output_file><br>
gather -u <usename> -p <password> -st <target> -sc "command" <--- Output file will be defaulted to GatherDB<br>
gather -u <usename> -p <password> -st <target> -sc "command" -o <output_file><br>
gather -u <usename> -p <password> -st <target> -sc "command" -o <output_file> -notag <--- -notag places untagged output into seperate files<br>
OR run gather in interactive mode:<br>
VIRTUALENV % gather<br>
Username? username<br>
Password: password (not visible on terminal)<br>
command file? command_file<br>
target file? target_file<br>
output filename? output_file<br>
Gather logs in via SSH and issues the commands placed in the command file. Additionally, Gather tags the output flowing to output file with the target name as well as the command issued. I suggest placing every device in your data center in the target file.
### [HOWTO and DEMONSTRATION VIDEOS](https://github.com/rantlabs/RANT/blob/main/DEMO_VIDEOS.md)
# Suggested Command File:
**SEE: [commands.txt](https://github.com/rantlabs/RANT/blob/main/commands.txt)**
* show version
* show running-config
* show running-config section bgp
* show interface status
* show vlan
* show ip int brief
* show running-config section ospf
* show lldp neighbor
* Any other command that is relevant to your specific equipment
* A commands.txt sample file is included in this repo.
# Capabilities
Gather tags every line of the output with the name of device and the name of the command, every line is searchable. Unix text search and
manipulation tools such as: AWK, SED, GREP (-v, -i), uniq, uniq -c, wc -l (count number of lines), allow you to easily search your entire infrastructure
at once for permanent and semi permanent data.
**SEE: [SAMPLE_QUERIES.md](https://github.com/rantlabs/RANT/blob/main/SAMPLE_QUERIES.md) file for examples**
# Examples of GatherDB search
* Gather all the serial numbers of every device and module.
* Sort and count things, such as compile and count the number and type of wireless access points installed
* Drill down searches to level of specificity required. Example: Once all types of wireless access points are discovered list all the instances and locations of a particular type of AP.
* During an outage, you can query and trouble shoot the device as if it was still operating.
* Run a complete configuration backup on all of your campus devices in a few seconds.
* Find all unused ports on all tors
* Verify the consistent mlag configs on all devices
* Display all VLANS defined on all TORS and Spines.
* Display all unique version of code running and then identify devices that are not running the standard
Raw data
{
"_id": null,
"home_page": "https://github.com/rantlabs/rant",
"name": "gogather",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "Fast Configuration Management and State Database",
"author": "Rajiv Gupta",
"author_email": "rgupta@gene.com",
"download_url": "https://files.pythonhosted.org/packages/d5/32/bab7e6faaec505d00c1c3cb84660e9b344a91585502827de158a4d3eded3/gogather-0.1.7.tar.gz",
"platform": null,
"description": "# Go Forth and Gather\n\nGather - The Ultimate Source of Truth. Gather everything you ever wanted to know about your IT infrastructure into one simple searchable file, the GatherDB.\nGather is a tool that creates a comprehensive Source of Truth (SOT) for your IT infrastructure. The GatherDB contains an unlimited amount of configuration\nmanagement data as well as configuration state data. \n\nOne of the prime features of Gather is its speed. Gather allows you to get a deep understanding of the configuration and state of an infrastructure in \na few minutes. In addition, Gather allows you to run ad hoc commands such as \"show running-config\" on a large campus environment in a few seconds.\n\n\nGATHER\n* Three files are required. A target file, a command file, and an output file (does not need to exist before running script).\n* The target file is a list of network devices. One device per line.\n* The command file is a list of SHOW commands you want to issue to each one of the the devices in the target file. One command per line.\n* The output file is a file that you want to output the text DB to. This is file does not need to exist prior to running the script.\n\nINSTALLATION\n\nFirst make sure you are running the latest version of pip3 by upgrading your version of pip using the following command.<br>\n\n\"pip3 install --upgrade pip\" OR \"python3 -m pip install --upgrade pip\"<br>\n\nAfter uprading pip to the latest version, install gather using the following command:<br>\n\n\"pip3 install gogather\" OR \"pip install gogather\" if you only running python3 on your device<br>\n\nUSAGE:<br>\n\ngather -h<br>\nusage: gather [-h] [-c COMMANDFILE] [-sc SINGLECOMMAND] [-o OUTFILE] [-u USERNAME] [-t TARGETFILE] [-st SINGLETARGET] [-p PASSWD] [-notag]<br>\n\noptional arguments:<br>\n -h, --help show this help message and exit<br>\n -c COMMANDFILE Enter Command File - One Per Line<br>\n -sc SINGLECOMMAND Enter A Single Command Enclosed in Quotes - Example \"show version\"<br>\n -o OUTFILE Enter Output Log File Name - If not specified default is GatherDB...<br>\n -u USERNAME Username<br>\n -t TARGETFILE Host File - One Per Line<br>\n -st SINGLETARGET Enter One Target Host Only<br>\n -p PASSWD Enter Password<br>\n -notag NO TAG places untagged output into seperate files<br>\n\nCLI Examples:<br>\n\ngather -u <usename> -p <password> -t <target_file> -c <command_file> -o <output_file><br>\ngather -u <usename> -p <password> -st <target> -sc \"command\" <--- Output file will be defaulted to GatherDB<br>\ngather -u <usename> -p <password> -st <target> -sc \"command\" -o <output_file><br>\ngather -u <usename> -p <password> -st <target> -sc \"command\" -o <output_file> -notag <--- -notag places untagged output into seperate files<br>\n\nOR run gather in interactive mode:<br>\n \nVIRTUALENV % gather<br>\nUsername? username<br>\nPassword: password (not visible on terminal)<br>\ncommand file? command_file<br>\ntarget file? target_file<br>\noutput filename? output_file<br>\n \nGather logs in via SSH and issues the commands placed in the command file. Additionally, Gather tags the output flowing to output file with the target name as well as the command issued. I suggest placing every device in your data center in the target file.\n\n### [HOWTO and DEMONSTRATION VIDEOS](https://github.com/rantlabs/RANT/blob/main/DEMO_VIDEOS.md)\n\n# Suggested Command File:\n**SEE: [commands.txt](https://github.com/rantlabs/RANT/blob/main/commands.txt)**\n* show version\n* show running-config\n* show running-config section bgp\n* show interface status\n* show vlan\n* show ip int brief\n* show running-config section ospf\n* show lldp neighbor\n* Any other command that is relevant to your specific equipment\n\n* A commands.txt sample file is included in this repo.\n\n# Capabilities\n\nGather tags every line of the output with the name of device and the name of the command, every line is searchable. Unix text search and \nmanipulation tools such as: AWK, SED, GREP (-v, -i), uniq, uniq -c, wc -l (count number of lines), allow you to easily search your entire infrastructure\nat once for permanent and semi permanent data. \n\n**SEE: [SAMPLE_QUERIES.md](https://github.com/rantlabs/RANT/blob/main/SAMPLE_QUERIES.md) file for examples**\n\n# Examples of GatherDB search\n* Gather all the serial numbers of every device and module.\n* Sort and count things, such as compile and count the number and type of wireless access points installed\n* Drill down searches to level of specificity required. Example: Once all types of wireless access points are discovered list all the instances and locations of a particular type of AP.\n* During an outage, you can query and trouble shoot the device as if it was still operating.\n* Run a complete configuration backup on all of your campus devices in a few seconds.\n* Find all unused ports on all tors\n* Verify the consistent mlag configs on all devices\n* Display all VLANS defined on all TORS and Spines.\n* Display all unique version of code running and then identify devices that are not running the standard\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "GatherDB - Go Gather",
"version": "0.1.7",
"project_urls": {
"Homepage": "https://github.com/rantlabs/rant"
},
"split_keywords": [
"fast",
"configuration",
"management",
"and",
"state",
"database"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "39f078f625c9b103f6d38a9bd38b54569ea5c3e38d8969c05a6380d77b271bdd",
"md5": "c6bb02a0c4eecf42a921118d0aaf8ed6",
"sha256": "ed45ccd438cc564ffc90de782fc812f00903f41ef8faa9b76f06809d448364ca"
},
"downloads": -1,
"filename": "gogather-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c6bb02a0c4eecf42a921118d0aaf8ed6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 12359,
"upload_time": "2024-03-05T00:47:20",
"upload_time_iso_8601": "2024-03-05T00:47:20.173110Z",
"url": "https://files.pythonhosted.org/packages/39/f0/78f625c9b103f6d38a9bd38b54569ea5c3e38d8969c05a6380d77b271bdd/gogather-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d532bab7e6faaec505d00c1c3cb84660e9b344a91585502827de158a4d3eded3",
"md5": "ecb8cbfc52fe81c3fbc1c58c0cf9e303",
"sha256": "c888889aed0fe98226962741526da686386a5c75653ae643f954d440fe3e2fe9"
},
"downloads": -1,
"filename": "gogather-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "ecb8cbfc52fe81c3fbc1c58c0cf9e303",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 8368,
"upload_time": "2024-03-05T00:47:24",
"upload_time_iso_8601": "2024-03-05T00:47:24.867935Z",
"url": "https://files.pythonhosted.org/packages/d5/32/bab7e6faaec505d00c1c3cb84660e9b344a91585502827de158a4d3eded3/gogather-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-05 00:47:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rantlabs",
"github_project": "rant",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "atpbar",
"specs": [
[
"==",
"1.1.4"
]
]
},
{
"name": "netmiko",
"specs": [
[
"==",
"4.1.1"
]
]
}
],
"lcname": "gogather"
}