ansible-simple
ansible简易版,是我日常工作中经常使用到的批量执行命令和上传文件,参考了ansible工作模式,根据自己的情况定制了一个ansible-simple
依赖的第三方模块库
代码语言:javascript复制shell> pip3 install paramiko -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirrors.aliyun.com"
shell> pip3 install argparse -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirrors.aliyun.com"
shell> pip3 install tqdm -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirrors.aliyun.com"
使用介绍:
代码语言:javascript复制# chmod 755 ansible-simple
# ./ansible-simple --help
usage: ansible-simple [-h] [-c] [-p ] inventory
ansible-simple简易版(默认按照CPU核数并发执行)
positional arguments:
inventory host.txt主机ip文件
optional arguments:
-h, --help show this help message and exit
-c , --cmd 输入执行的命令,多个命令用;分号分割
-p , --mput sftp上传目录文件 [本地路径] [远程路径]
1)host.txt文件格式如下:
ip:ssh端口,用户名,密码(端口不能省,必须加上)
代码语言:javascript复制shell> cat host.txt
192.168.137.131:22,hechunyang,123456
如果想设置连续多个ip机器列表,加一个横杠,如下:
192.168.137.131-150:22,hechunyang,123456
2)支持上传文件和目录
代码语言:javascript复制shell> ./ansible-simple host.txt -p '/root/soft' '/tmp/soft/'
将本地/root/soft文件夹上传至远程主机/tmp/soft/目录下
3) 执行远程主机Linux命令
代码语言:javascript复制shell> ./ansible-simple host.txt -c 'df -hT;date'
批量创建用户修改密码
代码语言:javascript复制shell> ./ansible-simple host.txt -c 'useradd hechunyang;echo "123456" | passwd --stdin hechunyang;echo "hechunyang ALL=(ALL)NOPASSWD: ALL" >> /etc/sudoers'