[简介]
ansible基于python openssh 运行
用于管理网络中的设备,将设备加入到清单
注意:
1、主控端python版本需要2.6及以上
2、被控端python小于2.4需要安装python-simplejson
3、被控端开启selinux需要安装libselinux-python
4、windows不能作为主控端
[命令]
ansible:主程序临时命令执行工具 ansible-doc:查看配置文档,模块功能查看工具 ansible-galaxy:上传/下载优秀代码或roles模块的官网平台 ansible-playbook:定制自动化任务,编排剧本工具 ansible-pull:远程执行命令工具 ansible-vault:文件加密工具 ansible-console:基于console界面与用户交互的执行工具
[命令格式]
ansible 主机群组 模块名 参数 例:ansible test -m shell -a 'cat /root/test.sh'
[参数]
-m 指定模块,默认command -v 执行命令详细过程,-vv -vvv 更详细的过程-k 提示输入ssh连接密码,默认key验证 -C 检查不执行 -T 执行命令的超时时间,默认10s
--list 显示主机列表
[配置文件]
建议: 1、开启日志 2、host_key_checking=False,首次登陆不用输yes 3、修改默认模块为shell
[设置免密登陆]
批量秘钥配置 1、先下载sshpass工具 yum install -y sshpass 或者 wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz tar -zxvf sshpassxxx.tar.gz cd sshpassxxx/ ./configure make make install 2、生成秘钥 ssh-keygen 一路回车 3、使用脚本完成操作 #!/bin/bash IP=`cat /data/ip.txt` #需要免密的ip passwd='123456' for i in $IP; do sshpass -p $passwd ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i -o StrictHostKeyChecking=no >/root/sshkey.log && echo "完成$i" >>/root/sshkey.log; done