有個增加機器後自動註冊到 ansible hosts 的需求,閒來無事拿 bash 寫了個 webserver 搞了下。在大佬指引下,還加了授權校驗。。
just for fun...
bash 還是挺好玩的
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