Ansible

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 [email protected]

# ssh-copy-id [email protected]

# ssh-copy-id [email protected]


[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

你可能感兴趣的:(Ansible)