ansible

常见的运维工具

CFengine   最早的自动化运维工具
Chef
Puppet
基于Ruby开发,采用C/S架构,扩展性强,基于SSL认证
SaltStack
基于Python开发,采用C/S架构,相对于puppet更轻量级,配置语法采用YMAL,使得配置脚本更为简单
Ansible
基于Pyton开发,无需客户端,轻量级,配置语言采用YAML

 

为什么选择Ansible
相对于puppet和saltstack,ansible无需客户端,更轻量级
ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展
更强的远程命令执行操作
不输于puppet和saltstack的其他功能

 

 

基本框架

核心:ansible
核心模块(Core Modules):这些都是ansible自带的模块
扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory):定义ansible管理的主机

 

 


工作原理图

 

 

从上图看出,其实ansible也可以用0mq的方式和节点主机连接,但是需要节点主机安装0mq,这样就是C/S模式了,一般不用

 

开始安装

配置好epel源,在我的博客中有一篇文章介绍了各种网络源的配置,自己搜索

然后yum install -y ansible

安装后

/etc/ansible会有ansible.cfg  hosts两个文件

ansible.cfg是ansible的配置文件

hosts是ansible管理节点主机的清单文件

 

常用命令

ansible -h  帮助

             -u ssh连接的用户,默认是root

             -i  指定主机清单,默认是/etc/ansible/hosts

             -m 指定模块,默认指定是command模块

             -a 指定模块参数

             -k 指定ssh密码,后面不接密码,回车后会提示输入密码

 

 

我们在/etc/ansible/hosts文件中定义一个组名为test

[test]

172.16.18.185

ansible -i /etc/ansible/hosts test -u root -m command -a ''ls /root" -k

这个命令的意思查看172.16.18.195这台机器上根目录有什么

 

hosts文件的写法

如果是写一批连续的IP地址

可以这样写

[test]

172.16.0.[100:254]  //这个指的是100到254的间的所有IP都是test组中的

 

组中还包含组的

 

比如

 

[test:children]

test1

test2

test3

[test1]

172.16.0.111

[test2]

172.16.3.88

[test3]

 

下面一定要写这包含的三个组,就算组里没有ip(如test3),也一定要写,否则会报错的

 

 

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值