Take Bash and write a webserver (with security verification)

Time:2019-12-10

There is a need to automatically register to ansible hosts after adding machines. I wrote a webserver with bash at my leisure. Under the guidance of the big guy, authorization verification was added..

just for fun…

Bash is still fun

gayhub

What is this

a simple bash script shows the power of nc(netcat)

What does this do

It does something like ansible Dynamic Inventory.
It receive http request from client, and save the reported node IP(encrypted with openssl)
to /etc/ansible/hosts or somewhere else.

How does it work

This script do nothing but combine the awesome linux command togher:

  • nc(netcat)
  • grep
  • sed
  • dos2unix
  • openssl
  • curl

Why Do I do this

The main point of doing this is to show the power of linux command.
You can use it as I ansible dynamic inventory if you know what you are doing, but
it’s not recommended to use this in production.

Install

git clone https://github.com/FingerLiu/auth-enabled-bash-server

# centos
yum install -y dos2unix

# ubuntu
apt install -y dos2unix

Usage

start the server

cd auth-enabled-bash-server
./server.sh

start the server in backgroup

nohup ./server.sh & echo $! > run.pid;tail -f nohup.out

stop server

kill `cat run.pid`

start the client

PASSWORD=12345678Afz NODE_IP=192.168.1.111 ./client.sh