1. 概述:
运维工具按需不需要有代理程序来划分的话分两类:
agent(需要有代理工具):基于专用的agent程序完成管理功能,puppet, func, zabbix
agentless(无须代理工具):基于ssh服务完成管理,ansible, fabric
2, 简介
Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。
Ansible与Saltstack最大的区别是Ansible无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程命令执行或下发配置:相同点是都具备功能强大、灵活的系统管理、状态配置,两者都提供丰富的模板及API,对云计算平台、大数据都有很好的支持。
1 ,特点:
部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
默认使用SSH协议对设备进行管理;
主从集中化管理;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
对云计算平台、大数据都有很好的支持;
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
幂等性:一种操作重复多次结果相同
2, 架构
3,执行过程
3. 安装
ssh:
分发秘钥:
# ssh-copy-id root@10.1.6.73
# ssh-copy-id root@10.1.6.72
# ssh-copy-id root@10.1.6.68
[root@ansible_master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.6.72
-bash: ssh-copy-id: command not found
报错了
解决方法:
yum -y install openssh-clients
常用命令
ansible -m MOD_NAME -a MOD_ARGS
-i 指定配置文件
[celery]
10.9.165.102
10.9.106.31
ansible celery -i /data/duant/ansible_hosts -m command -a "sudo sh /home/app/bin/stopConsumers.sh"
ansible celery -i /data/duant/ansible_hosts -m copy -a "src=/tmp/one.txt dest=/tmp/duant mode=640"
参考:
http://www.ansible.com.cn/
http://www.cnblogs.com/sanyuanempire/p/6169489.html
网友评论