ansible 批量化自动管理工具
Ansible官网:https://docs.ansible.com/
Ansible介绍:
Ansible 是个与 Puppet, SaltStack, Chef 并驾齐驱的组态设定 (Infrastructure as Code) 工具,其简单易用的特性让人爱不释手,在 DevOps 界更佔有一席之地。
Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。
Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。
Ansible特性:
拥有模块化的设计,Ansible能够调用特定的模块来完成特定任务 ,本身是核心组件,短小精悍 ;
Ansible是基于Python语言实现的,由Paramiko (python 的一个可并发连接 ssh 主机功能库 ) , PyYAML和Jinja2 ( 模板化 ) 三个关键模块实现;
Ansible的部署比较简单,agentless 无客户端工具;
以主从模式工作;
支持自定义模块功能;
支持playbook剧本,连续任务按先后设置顺序完成;
期望每个命令具有幂等性:
1、安装ansible
yum install ansible
2、修改配置,添加被管理主机
vim etc/ansible/hosts添加 hx组[hx] #[组名]172.18.202.78 #组IP地址172.18.202.79
3、配置无秘钥登录远程主机
拷贝秘钥到远程主机,实现免密要登录:
ssh-copy-id [指定IP]
拷贝秘钥到指定ip
如果需要批量添加,免输入yes。可以用下面脚本进行添加
vim auto.sh#!/bin/bash#autopass-scp#for ((i=11;i<15;i=i+1))for ip in `cat ip.txt`do#spawn scp -r -o StrictHostKeyChecking=no ~/.ssh/id_rsa.pub 172.18.67.$A:~/.ssh/authorized_keysexpect -c "set timeout 200; ##设置拷贝的时间,根据目录大小决定,我这里是1200秒。spawn usr/bin/scp -r root/.ssh/id_rsa.pub $ip:/root/.ssh/authorized_keysexpect {\"*yes/no*\" {send \"yes\r\"; exp_continue} #免yes输入\"*password*\" {send \"1q2w3e4r\r\";} ##远程IP的密码。}expect eof;"done
4、测试是否配置成功
ansible hx -m ping
# 操作 hx 组 ( all 为操作 hosts 文件中所有主机 ),-m 指定执行 ping 模块,下面是返回结果

# -i 指定 hosts 文件位置
# -u username 指定 SSH 连接的用户名
# -k 指定远程用户密码
# -f 指定并发数
# -s 如需要 root 权限执行时使用 ( 连接用户不是 root 时 )
# -K -s 时,-K 输入 root 密码
喜欢就关注吧:


文章转载自子弹linux联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




