ansible 自动化运维工具

[简介]
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

  

原文地址:https://www.cnblogs.com/chenjiye/p/15273066.html