1000+ DevOps Bash Scripts - AWS, GCP, Kubernetes, Docker, CI/CD, APIs, SQL, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt for Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, Advanced dotfiles: .bashrc, .vimrc, .gitconfig, .screenrc, tmux..
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Hari Sekhon c0c2a85c2c updated aws_policies_granting_full_access.sh 5 years ago
.aws/shell added .aws/shell/awsshellrc 5 years ago
.bash.d updated git.sh 5 years ago
.config added .config/pycodestyle 5 years ago
.git-templates/git-secrets/hooks added .git-templates 5 years ago
.github updated ISSUE_TEMPLATE.md 5 years ago
.sdkman/etc added .sdkman/etc/config 5 years ago
Library/Containers/net.sourceforge.cruisecontrol.CCMenu/Data/Library/Preferences reordered 5 years ago
kafka_wrappers updated kafka_consumer_groups.sh 5 years ago
lib updated args_extract.sh 5 years ago
setup updated install_vundle.sh 5 years ago
yamllint updated config 5 years ago
.Xdefaults added .Xdefaults 5 years ago
.Xmodmap added .Xmodmap 5 years ago
.ansible.cfg updated .ansible.cfg 5 years ago
.bash_profile updated .bash_profile 5 years ago
.bashrc updated .bashrc 5 years ago
.customize_environment updated .customize_environment 5 years ago
.editorconfig merged older editconfig in 5 years ago
.gemrc added .gemrc 5 years ago
.gitconfig updated .gitconfig 5 years ago
.gitignore updated .gitignore 5 years ago
.inputrc updated .inputrc 5 years ago
.mdlrc updated .mdlrc 5 years ago
.my.cnf added .my.cnf 5 years ago
.perlcritic_forbidden_modules added .perlcritic_forbidden_modules 5 years ago
.perlcriticrc updated .perlcriticrc 5 years ago
.pylintrc added .pylintrc 5 years ago
.sawsrc added .sawsrc 5 years ago
.screenrc updated .screenrc 5 years ago
.tmux.conf updated .tmux.conf 5 years ago
.toprc updated .toprc 5 years ago
.travis.yml updated .travis.yml 5 years ago
.vimrc updated .vimrc 5 years ago
LICENSE updated LICENSE 8 years ago
Makefile updated Makefile 5 years ago
Makefile.in updated Makefile.in 5 years ago
README.md updated README.md 5 years ago
apk_install_packages.sh moved apk-install-packages.sh to apk_install_packages.sh 5 years ago
apk_remove_packages.sh moved apk-remove-packages.sh to apk_remove_packages.sh 5 years ago
apt_install_packages.sh moved apt-install-packages.sh to apt_install_packages.sh 5 years ago
apt_remove_packages.sh moved apt-remove-packages.sh to apt_remove_packages.sh 5 years ago
aws_account_summary.sh updated aws_account_summary.sh 5 years ago
aws_cloudtrails_event_selectors.sh added aws_cloudtrails_event_selectors.sh 5 years ago
aws_cloudtrails_status.sh added aws_cloudtrails_status.sh 5 years ago
aws_harden_password_policy.sh added aws_harden_password_policy.sh 5 years ago
aws_iam_generate_credentials_report_wait.sh updated aws_iam_generate_credentials_report_wait.sh 5 years ago
aws_meta.sh merged github 5 years ago
aws_password_policy.sh updated aws_password_policy.sh 5 years ago
aws_policies_attached_to_users.sh updated aws_policies_attached_to_users.sh 5 years ago
aws_policies_granting_full_access.sh updated aws_policies_granting_full_access.sh 5 years ago
aws_policies_unattached.sh updated aws_policies_unattached.sh 5 years ago
aws_spot_when_terminated.sh renamed aws_spot_when_preempted.sh to aws_spot_when_terminated.sh 5 years ago
aws_ssm_put_param.sh updated aws_ssm_put_param.sh 5 years ago
aws_users.sh updated aws_users.sh 5 years ago
aws_users_access_key_age.sh updated aws_users_access_key_age.sh 5 years ago
aws_users_access_key_age_report.sh added aws_users_access_key_age_report.sh 5 years ago
aws_users_access_key_last_used.sh updated aws_users_access_key_last_used.sh 5 years ago
aws_users_access_key_last_used_report.sh added aws_users_access_key_last_used_report.sh 5 years ago
aws_users_last_used_report.sh switched to use aws_iam_generate_credentials_report_wait.sh 5 years ago
aws_users_mfa_active_report.sh added password_enabled field 5 years ago
aws_users_mfa_serials.sh added aws_users_mfa_serials.sh 5 years ago
aws_users_pw_last_used.sh updated aws_users_pw_last_used.sh 5 years ago
beeline.sh updated beeline.sh 5 years ago
beeline_zk.sh updated beeline_zk.sh 5 years ago
brew_install_packages.sh updated brew_install_packages.sh 5 years ago
center.sh updated center.sh 5 years ago
check_all.sh updated check_all.sh 5 years ago
check_ansible_playbooks.sh added check_ansible_playbooks.sh 5 years ago
check_aws_no_git_credentials.sh updated check_aws_no_git_credentials.sh 5 years ago
check_bash_arrays.sh updated check_bash_arrays.sh 5 years ago
check_bash_duplicate_defs.sh updated check_bash_duplicate_defs.sh 5 years ago
check_bash_syntax.sh updated check_bash_syntax.sh 5 years ago
check_cson.sh added check_cson.sh 5 years ago
check_docker_clean.sh updated check_docker_clean.sh 5 years ago
check_docker_compose.sh added check_docker_compose.sh 5 years ago
check_dockerfiles.sh updated check_dockerfiles.sh 5 years ago
check_duplicate_requirements.sh updated check_duplicate_requirements.sh 5 years ago
check_git_commit_authors.sh updated check_git_commit_authors.sh 5 years ago
check_git_no_merge_remnants.sh updated check_git_no_merge_remnants.sh 5 years ago
check_gradle_build.sh replaced which with type -P 5 years ago
check_json.sh added check_json.sh 5 years ago
check_makefile.sh updated check_makefile.sh 5 years ago
check_maven_pom.sh replaced which with type -P 5 years ago
check_no_tabs.sh updated check_no_tabs.sh 5 years ago
check_non_executable_scripts.sh updated check_non_executable_scripts.sh 5 years ago
check_perl_syntax.sh updated check_perl_syntax.sh 5 years ago
check_python3_compat.sh renamed python3.sh -> check_python3_compat.sh 7 years ago
check_python_asserts.sh updated check_python_asserts.sh 5 years ago
check_python_exception_pass.sh updated check_python_exception_pass.sh 5 years ago
check_python_find_quit.sh updated check_python_find_quit.sh 5 years ago
check_python_pep8.sh replaced which with type -P 5 years ago
check_python_pylint.sh replaced which with type -P 5 years ago
check_pytools.sh updated check_pytools.sh 5 years ago
check_ruby_syntax.sh replaced which with type -P 5 years ago
check_sbt_build.sh replaced which with type -P 5 years ago
check_ssh_keys_encrypted.sh updated check_ssh_keys_encrypted.sh 5 years ago
check_tests_run_qualified.sh updated check_tests_run_qualified.sh 5 years ago
check_tld_chars.sh updated check_tld_chars.sh 5 years ago
check_travis_yml.sh replaced which with type -P 5 years ago
check_whitespace.sh updated check_whitespace.sh 5 years ago
check_yaml.sh updated check_yaml.sh 5 years ago
cloudera_manager_impala_queries.sh updated cloudera_manager_impala_queries.sh 5 years ago
csv_header_indices.sh added csv_header_indices.sh 5 years ago
curl_auth.sh updated curl_auth.sh 5 years ago
decomment.sh added decomment.sh 5 years ago
docker_clean.sh updated docker_clean.sh 5 years ago
docker_mount_build_exec.sh updated docker_mount_build_exec.sh 5 years ago
elasticsearch_decommission_node.sh updated elasticsearch_decommission_node.sh 5 years ago
exec_interactive.sh moved exec-interactive.sh to exec_interactive.sh 5 years ago
find_duplicate_lines.sh updated find_duplicate_lines.sh 5 years ago
find_hanging_mount_point.sh updated find_hanging_mount_point.sh 5 years ago
gce_is_preempted.sh merged github 5 years ago
gce_meta.sh updated gce_meta.sh 5 years ago
gce_when_preempted.sh updated gce_when_preempted.sh 5 years ago
git_clean_repos.sh updated git_clean_repos.sh git_pull_make_repos.sh git_update_repos.sh 5 years ago
git_for_each_branch.sh updated git_for_each_branch.sh 5 years ago
git_merge_all.sh updated git_merge_all.sh 5 years ago
git_merge_master.sh updated git_merge_master.sh 5 years ago
git_merge_master_pull.sh updated git_merge_master_pull.sh 5 years ago
git_pull_make_repos.sh updated git_pull_make_repos.sh 5 years ago
git_update_repos.sh updated git_update_repos.sh 5 years ago
git_update_repos_submodules.sh updated git_update_repos_submodules.sh 5 years ago
github_get_user_ssh_public_key.sh updated github_get_user_ssh_public_key.sh 5 years ago
github_get_user_ssh_public_key_api.sh renamed github_get_user_ssh_public_key2.sh to github_get_user_ssh_public_key_api.sh 5 years ago
golang_get_install.sh updated golang_get_install.sh 5 years ago
golang_get_install_if_absent.sh updated golang_get_install_if_absent.sh 5 years ago
hadolint.yaml added hadolint.yaml 5 years ago
hadoop_random_node.sh updated hadoop_random_node.sh 5 years ago
hdfs_checksum.sh added see also note and link to hadoop_hdfs_files_native_checksums.jy 5 years ago
hdfs_checksum_crc.sh added see also note and link to hadoop_hdfs_files_native_checksums.jy 5 years ago
hdfs_checksum_crc_parallel.sh added see also note and link to hadoop_hdfs_files_native_checksums.jy 5 years ago
hdfs_checksum_parallel.sh added see also note and link to hadoop_hdfs_files_native_checksums.jy 5 years ago
hdfs_file_size.sh updated hdfs_file_size.sh 5 years ago
hdfs_file_size_including_replicas.sh added hdfs_file_size_including_replicas.sh 5 years ago
hdfs_find_replication_factor_1.sh updated hdfs_find_replication_factor_1.sh 5 years ago
hdfs_set_replication_factor_3.sh added hdfs_set_replication_factor_3.sh 5 years ago
impala_shell.sh updated impala_shell.sh 5 years ago
k8s_api.sh renamed curl_k8s.sh to k8s_api.sh 5 years ago
ldap_group_recurse.sh updated ldap_group_recurse.sh 5 years ago
ldap_user_recurse.sh updated ldap_user_recurse.sh 5 years ago
ldapsearch.sh updated ldapsearch.sh 5 years ago
nodejs_npm_install.sh added nodejs_npm_install.sh 5 years ago
nodejs_npm_install_if_absent.sh added nodejs_npm_install_if_absent.sh 5 years ago
perl_cpanm_install.sh updated perl_cpanm_install.sh 5 years ago
perl_cpanm_install_if_absent.sh updated perl_cpanm_install.sh perl_cpanm_install_if_absent.sh 5 years ago
perl_find_duplicate_cpan_requirements.sh renamed find_duplicate_cpan_requirements.sh to perl_find_duplicate_cpan_requirements.sh 5 years ago
perl_find_library_executable.sh added perl_find_library_executable.sh 5 years ago
perl_find_library_path.sh renamed perl_find_library.sh to perl_find_library_path.sh 5 years ago
perl_find_unused_cpan_modules.sh renamed perl_cpan_find_unused_modules.sh to perl_find_unused_cpan_modules.sh 5 years ago
perl_generate_fatpacks.sh updated perl_generate_fatpacks.sh 5 years ago
perlpath.sh added perlpath.sh 5 years ago
pygmentize.sh updated pygmentize.sh 5 years ago
python_compile.sh updated python_compile.sh 5 years ago
python_find_duplicate_pip_requirements.sh updated python_find_duplicate_pip_requirements.sh 5 years ago
python_find_library_executable.sh updated python_find_library_executable.sh 5 years ago
python_find_library_path.sh updated python_find_library_path.sh 5 years ago
python_find_unused_pip_modules.sh renamed find_unused_pip_modules.sh to python_find_unused_pip_modules.sh 5 years ago
python_module_to_import_name.sh updated python_module_to_import_name.sh 5 years ago
python_pip_install.sh updated python_pip_install.sh 5 years ago
python_pip_install_if_absent.sh updated python_pip_install.sh python_pip_install_if_absent.sh 5 years ago
python_pyinstaller.sh updated python_pyinstaller.sh 5 years ago
pythonpath.sh added pythonpath.sh 5 years ago
random_select.sh updated random_select.sh 5 years ago
ruby_gem_install.sh fixed --user-install 5 years ago
ruby_gem_install_if_absent.sh updated ruby_gem_install_if_absent.sh 5 years ago
run_latest_tests.sh added run_latest_tests.sh 7 years ago
run_tests.sh updated run_tests.sh 5 years ago
scalastyle_config.xml added scalastyle_config.xml 5 years ago
scan_duplicate_macs.sh updated scan_duplicate_macs.sh 5 years ago
split.sh updated split.sh 5 years ago
ssl_get_cert.sh updated ssl_get_cert.sh 5 years ago
update_gitignore.io.sh updated update_gitignore.io.sh 5 years ago
vault_pass.sh updated vault_pass.sh 5 years ago
yum_install_packages.sh moved yum-install-packages.sh to yum_install_packages.sh 5 years ago
yum_remove_packages.sh moved yum-remove-packages.sh to yum_remove_packages.sh 5 years ago
zookeeper-client.sh updated zookeeper-client.sh 5 years ago

README.md

Hari Sekhon - DevOps Bash Tools

Build Status Codacy Badge Platform DockerHub

100+ Shell Scripts, Advanced Bash environment & Utility Code Library used by all my other GitHub repos CI builds.

Contains:

  • Systems Administation scripts - scripts to make systems administration faster and easier for common tasks, including wrappers to common commands that auto-populate required switches
  • Scripts for CI builds across all my other repos, forming a drop-in framework containing many common checks
  • Bash environment enhancements - advanced .bashrc + .bash.d/*.sh, advanced configuration files for common tools like vim, screen, tmux, installs the best sysadmin packages like those above plus AWS CLI, jq and many others, adds dynamic Git and shell behaviour enhancements, colouring, functions, aliases and automatic pathing of many common installation locations for many major languages like Python, Perl, Ruby, NodeJS...
  • Utility library used in many scripts here and sourced from other repos, using the 2 libraries
    • .bash.d - interactive library (huge)
    • lib - script library

For more advanced Systems Administration scripts in other languages, see the repos listed at the bottom of the page.

These scripts can be used straight from the git clone, but see setup benefits of make install next.

Quick Setup

make install
  • Adds sourcing to .bashrc/.bash_profile to automatically inherit all .bash.d/*.sh environment enhancements for all technologies (see Inventory Overview below)
  • Symlinks all .* config files to $HOME for git, vim, top, htop, screen, tmux, editorconfig, Ansible etc.
  • Installs OS package dependencies for all scripts (detects the OS and installs the right RPMs, Debs, Apk or Mac HomeBrew packages)
  • Installs Python packages including AWS CLI

make install effectively does make system-packages bash python aws, but if you want to pick and choose from different sections, see Individual Setup Parts below.

Inventory Overview

  • Scripts - Linux / Mac systems administration scripts:

    • installation scripts for various OS packages (RPM, Deb, Apk) for various Linux distros (Redhat RHEL / CentOS / Fedora, Debian / Ubuntu, Alpine)
    • install if absent scripts for Python, Perl, Ruby, NodeJS and Golang packages - good for minimizing the number of source code installs by first running the OS install scripts and then only building modules which aren't already detected as installed (provided by system packages), speeding up builds and reducing the likelihood of compile failures
    • install scripts for Jython and build tools like Gradle and SBT for when Linux distros don't provide packaged versions or where the packaged versions are too old
    • Git branch management
    • utility scripts used from other scripts
  • .* - dot conf files for lots of common software eg. advanced .vimrc, .gitconfig, massive .gitignore, .editorconfig, .screenrc, .tmux.conf etc.

    • .vimrc - contains many awesome vim tweaks, plus hotkeys for linting lots of different file types in place, including Python, Perl, Bash / Shell, Dockerfiles, JSON, YAML, XML, CSV, INI / Properties files, LDAP LDIF etc without leaving the editor!
    • .screenrc - fancy screen configuration including advanced colour bar, large history, hotkey reloading, auto-blanking etc.
    • .tmux.conf - fancy tmux configuration include advanced colour bar and plugins, settings, hotkey reloading etc.
    • Git:
      • .gitconfig - advanced Git configuration
      • .gitignore - extensive Git ignore of trivial files you shouldn't commit
      • enhanced Git diffs
      • protections against committing AWS access keys & secrets keys, merge conflict unresolved files
  • .bashrc - shell tuning and sourcing of .bash.d/*.sh

  • .bash.d/*.sh - thousands of lines of advanced bashrc code, aliases, functions and environment variables for:

    • Linux & Mac
    • SCM - Git, Mercurial, Svn
    • AWS
    • Docker
    • Kubernetes
    • Kafka
    • Vagrant
    • automatic GPG and SSH agent handling for handling encrypted private keys without re-entering passwords, and lazy evaluation to only prompt key load the first time SSH is called
    • and lots more - see .bash.d/README for a more detailed list
    • run make bash to link .bashrc/.bash_profile and the .* dot config files to your $HOME directory to auto-inherit everything
  • lib/*.sh - Bash utility libraries full of functions for Docker, environment, CI detection (Travis CI, Jenkins), port and HTTP url availability content checks etc. Sourced from all my other GitHub repos to make setting up Dockerized tests easier.

  • setup/install_*.sh - various simple to use installation scripts for common technologies like Ansible, Terraform, MiniKube and MiniShift (Kubernetes / Redhat OpenShift/OKD dev VMs), Maven, Gradle, SBT, EPEL, RPMforge, Homebrew, Travis CI, Parquet Tools etc.

  • kafka_wrappers/*.sh - scripts to make Kafka CLI usage easier including auto-setting Kerberos to source TGT from environment and auto-populating broker and zookeeper addresses. These are auto-added to the $PATH when .bashrc is sourced. For something similar for Solr, see solr_cli.pl in the DevOps Perl Tools repo.

  • aws*.sh - various AWS scripts for EC2 metadata, Spot Termination, SSM Parameter Store secret put from prompt, IAM Credential Reports on IAM users without MFA, old access keys and passwords, old user accounts that haven't logged in or used an access key recently, show password policy / set hardened password policy, show unattached IAM policies, show account summary to check various details including root account MFA enabled and no access keys etc.

  • gce*.sh - Google Cloud scripts for GCE metadata API and pre-emption

  • curl_auth.sh - wraps curl to send your username and password from environment variables or interactive prompt through a ram file descriptor to avoid using the -u/--user argument which can be logged by the OS, exposing your credentials in plaintext in log files

  • k8s_api.sh - finds Kubernetes API and runs your curl arguments against it, auto-getting authorization token and populating Authorization: Bearer header

  • ldapsearch.sh - wraps ldapsearch inferring settings from environment, can use environment variables for overrides

  • ldap_user_recurse.sh / ldap_group_recurse.sh - recurse Active Directory LDAP users upwards to find all parent groups, or groups downwards to find all nested users (useful for debugging LDAP integration and group-based permissions)

  • zookeeper-client.sh - wraps zookeeper-client, auto-finds the zookeeper quorum from /etc/**/*-site.xml to make it faster and easier to connect

  • beeline.sh - connects to HiveServer2 via beeline, auto-populating Kerberos and SSL settings, and using $HIVESERVER_HOST environment variable so you can connect with no arguments (prompts for HiveServer2 address if you haven't set this environment variable)

  • beeline_zk.sh - connects to HiveServer2 HA via beeline, auto-populating SSL and ZooKeeper service discovery settings (specify $ZOOKEEPERS environment variable to override)

  • impala_shell.sh - connects to Impala via impala-shell, parsing the Hadoop topology map and selecting a random datanode to connect to its Impalad. This is mostly for convenience to shorten commands and while it acts as a poor man's load balancer, you might want to instead use my real load balancer HAProxy config for Impala (and many other Big Data & NoSQL technologies). Optional environment variables $IMPALA_HOST (eg. point to HAProxy load balancer) and IMPALA_SSL=1 (or use regular impala-shell --ssl argument pass through)

  • hdfs_checksum*.sh - walks an HDFS directory tree and outputs HDFS native checksums, MD5-of-MD5 or the portable externally comparable CRC32, in serial or in parallel to save time

  • hdfs_find_replication_factor_1.sh / hdfs_set_replication_factor_3.sh - finds HDFS files with replication factor 1 / sets HDFS files with replication factor <=2 to replication factor 3 to repair replication safety and avoid no replica alarms during maintenance operations (see also Python API version in the DevOps Python Tools repo)

  • hdfs_file_size.sh / hdfs_file_size_including_replicas.sh - quickly differentiate HDFS files raw size vs total replicated size

  • cloudera_manager_impala_queries.sh - queries Cloudera Manager for recent Impala queries

  • check_*.sh - extensive collection of generalized tests that can be applied to any repo (these run against all my GitHub repos via CI)

  • git*.sh - various useful Git scripts like iterating all branches executing command arguments, submodule handling, merging master updates to all branches, fetching GitHub users public SSH keys for quick local installation etc.

  • perl*.sh - various Perl utilities including scripts to generate fatpacks (self-contained programs with all CPAN modules built-in), find the Perl library base, find where a Perl CLI tool is installed (system vs user, useful when it gets installed to a place that isn't in your $PATH, where which won't help), print the perl module search path, find unused CPAN modules in project, find duplicate CPAN modules between projects and sub-projects, bulk install file lists of CPAN modules, install CPAN packages only when not present in perl path (either OS packages or CPAN) to avoid needless installations, saving time and reducing build failures

  • python*.sh - various Python utilities including scripts to byte-compile, find the Python library base, find where a Python CLI tool is installed (system vs user, useful when it gets installed to a place that isn't in your $PATH, where which won't help), print the module search path, find unused pip modules in projects, find duplicate pip modules between projects and sub-projects, convert Python module names to import names, bulk install file lists of packages, install packages only when not present in python path (either OS or pip - avoids pip installing packages provided by OS, speeds up builds and reduces build failures

    • all builds across all my GitHub repos now make system-packages before make pip / make cpan to shorten how many packages need installing, reducing chances of build failures
  • Programming language linting:

    • Python (syntax, pep8, byte-compiling, reliance on asserts which can be disabled at runtime, except/pass etc.)
    • Perl
    • Java
    • Scala
    • Ruby
    • Bash / Shell
    • Misc (whitespace, custom enforced checks like not calling quit() in Python programs etc.)
  • Build System & CI linting:

  • Data format validation using programs from my DevOps Python Tools repo:

    • CSV
    • JSON
    • Avro
    • Parquet
    • INI / Properties files (Java)
    • LDAP LDIF
    • XML
    • YAML

Currently utilized in the following GitHub repos:

  • DevOps Python Tools - 90+ DevOps CLI tools for AWS, Hadoop, HBase, Spark, Log Anonymizer, Ambari Blueprints, AWS CloudFormation, Linux, Docker, Spark Data Converters & Validators (Avro / Parquet / JSON / CSV / INI / XML / YAML), Elasticsearch, Solr, Travis CI, Pig, IPython

  • DevOps Perl Tools - 25+ DevOps CLI tools for Hadoop, HDFS, Hive, Solr/SolrCloud CLI, Log Anonymizer, Nginx stats & HTTP(S) URL watchers for load balanced web farms, Dockerfiles & SQL ReCaser (Hive, Impala, MySQL, PostgreSQL, Cassandra CQL, Apache Drill, Couchbase N1QL, Microsoft SQL Server, Oracle, Pig Latin, Neo4j, InfluxDB), Ambari FreeIPA Kerberos, Datameer, Linux...

  • The Advanced Nagios Plugins Collection - 450+ programs for Hadoop, Docker, Kafka, Elasticsearch, RabbitMQ, Redis, HBase, Solr, Cassandra, ZooKeeper, HDFS, Yarn, Hive, Presto, Drill, Impala, Consul, Spark, Jenkins, Travis CI, Git, MySQL, Linux, DNS, Whois, SSL Certs, Yum Security Updates, Kubernetes, Mesos, Riak, MongoDB, Memcached, Couchbase, CouchDB, Neo4j, Ambari, Cloudera, Hortonworks, MapR etc.

  • HAProxy-configs - 80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, Cloudera, Hortonworks, MapR, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, ZooKeeper, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, SSH, RabbitMQ, Redis, Riak, Rancher etc.

  • Dockerfiles - 50+ DockerHub public images for Docker & Kubernetes - Hadoop, Kafka, ZooKeeper, HBase, Cassandra, Solr, SolrCloud, Presto, Apache Drill, Nifi, Spark, Mesos, Consul, Riak, OpenTSDB, Jython, Advanced Nagios Plugins & DevOps Tools repos on Alpine, CentOS, Debian, Fedora, Ubuntu, Superset, H2O, Serf, Alluxio / Tachyon, FakeS3

  • Perl Lib - Perl utility library

  • PyLib - Python utility library

  • Lib-Java - Java utility library

  • Nagios Plugin Kafka - Kafka Nagios Plugin written in Scala with Kerberos support

Pre-built Docker images are available for those repos (which include this one as a submodule) and the "docker available" icon above links to an uber image which contains all my github repos pre-built. There are Centos, Alpine, Debian and Ubuntu versions of this uber Docker image containing all repos.

Individual Setup Parts

Optional, only if you don't do the full make install.

Install only OS system package dependencies and AWS CLI via Python Pip (doesn't symlink anything to $HOME):

make

Adds sourcing to .bashrc and .bash_profile and symlinks dot config files to $HOME (doesn't install OS system package dependencies):

make link

undo via

make unlink

Install only OS system package dependencies (doesn't include AWS CLI or Python packages):

make system-packages

Install AWS CLI:

make aws

Install generically useful Python CLI tools and modules (includes AWS CLI, autopep8 etc):

make python

Full Help

> make help

 Usage:

  Common Options:

    make help                   show this message
    make build                  installs all dependencies - OS packages and any language libraries via native tools eg. pip, cpanm, gem, go etc that are not available via OS packages
    make system-packages        installs OS packages only (detects OS via whichever package manager is available)
    make test                   run tests
    make clean                  removes compiled / generated files, downloaded tarballs, temporary files etc.

    make submodules             initialize and update submodules to the right release (done automatically by build / system-packages)

    make cpan                   install any modules listed in any cpan-requirements.txt files if not already installed

    make pip                    install any modules listed in any requirements.txt files if not already installed

    make python-compile         compile any python files found in the current directory and 1 level of subdirectory
    make pycompile

    make github                 open browser at github project
    make readme                 open browser at github's README
    make github-url             print github url and copy to clipboard

    make ls-files               print list of files in project
    make ls-code                print list of code files, excluding READMEs and other peripheral files
    make wc                     show line counts of the files and grand total
    make wc-code                show line counts of only code files and total

  Repo specific options:

    make install                builds all script dependencies, installs AWS CLI, symlinks all config files to $HOME and adds sourcing of bash profile

    make link                   symlinks all config files to $HOME and adds sourcing of bash profile
    make unlink                 removes all symlinks pointing to this repo's config files and removes the sourcing lines from .bashrc and .bash_profile

    make python-desktop         installs all Python Pip packages for desktop workstation listed in setup/pip-packages-desktop.txt
    make perl-desktop           installs all Perl CPAN packages for desktop workstation listed in setup/cpan-packages-desktop.txt
    make ruby-desktop           installs all Ruby Gem packages for desktop workstation listed in setup/gem-packages-desktop.txt
    make golang-desktop         installs all Golang packages for desktop workstation listed in setup/go-packages-desktop.txt

    make desktop                installs all of the above + many desktop OS packages listed in setup/

    make bootstrap              all of the above + installs a bunch of major common workstation software packages like Ansible, Terraform, MiniKube, MiniShift, SDKman, Travis CI, CCMenu, Parquet tools etc.

    make ls-scripts             print list of scripts in this project, ignoring code libraries in lib/ and .bash.d/
    make wc-scripts             show line counts of the scripts and grand total
    make wc-scripts2            show line counts of only scripts and total

    make vim                    installs Vundle and plugins
    make tmux                   installs TMUX plugin for kubernetes context
    make ccmenu                 installs and (re)configures CCMenu to watch this and all other major HariSekhon GitHub repos

    make aws                    installs AWS CLI tools
    make gcp                    installs GCloud SDK
    make gcp-shell              sets up GCP Cloud Shell: installs core packages and links configs
make: *** [help] Error 3

(make help exits with error code 3 like most of my programs to differentiate from build success to make sure a stray help argument doesn't cause silent build failure with exit code 0)

Stargazers over time

Stargazers over time