一、基础简介
1、Ansible简介
Ansible是一款基于Python开发的自动化运维工具,主要是实现批量系统配置、批量程序部署、批量运行命令、批量执行任务等等诸多功能。Ansible是一款灵活的开源工具,能够很大程度简化运维中的配置管理与流程控制方式,它利用推送方式对客户系统加以配置,这样所有工作都可在主服务器端完成。Asible是基于模块工作的,其本身没有批量部署的能力,总之只要明白Ansible是一款运维自动化的神器就好了~!
2、功能特性
#######################################################################
3、工作机制
4、特性
(1)、no agents:不需要在被管控主机上安装任何客户端;
(2)、no server:无服务器端,使用时直接运行命令即可;
(3)、modules in any languages:基于模块工作,可使用任意语言开发模块;
(4)、yaml,not code:使用yaml语言定制剧本playbook;
(5)、ssh by default:基于SSH工作;
(6)、strong multi-tier solution:可实现多级指挥。
5、优点
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单,ruby语法过于复杂;
(4)、支持sudo。
##############################以上为网络摘取信息###########################
二、安装
##########################################
注:本文的演示环境
Ansible 主机:CentOS 6.5 x64
两台测试机:CentOS 6.5 x64
已关闭 iptables
已关闭 selinux
已安装组件:Development tools,Server Platform Development
##########################################
1、默认系统是没有Ansible的yum源的,需要添加epel源
2、由于源不好找,找了半天在同门博客找到了,顺便做个链接,http://wdllife.blog.51cto.com/6615958/1631964(快乐就好),于是转载过来了,使用的是aliyun的epel源.
3、打开Ansible 主机分组定义库,配置测试主机
4、测试配置好的节点是否能正常运行,这里提示SSH权限问题,如图
说明:第一次运行时,需要输入一下“yes”'进行公钥验证',后续无需再次输入。
于是加一个命令参数 "-k"
上面提示需要安装sshpass
安装好sshpass后在进行测试
5、到这里我们对Ansible参数进行下讲解
6、免密钥执行命令(不过这样的话极为不安全的)
注:hosts文件内部支持的一些特定指令(inventory参数)
7、查看测试主机的相关信息(举例)
8、查看Ansible相关的模块,通过“ansible-doc -l ” 查看Ansible所有的模块
9、使用模块的举例
例如:使用user模块为两台测试机添加账号及密码
查看远程测试机是否添加成功
复制(copy模块)的举例的演示
关于copy的 src、dest两个参数的说明
举例:批量创建cron定时任务
举例:批量创建file文件
常用模块:
command
user
copy
cron
file
filesystem
group
hostname
mount
ping
yum
shell
service
script
获取模块帮助:
ansible-doc -l
ansible-doc MODULENAME
转自:https://blog.51cto.com/ssc4469/1637761