Ansible入门及常用模块

运维工具的分类:
需要agent:puppet,func
无需agent:ansible,fabric (ssh service)

ansible架构
这里写图片描述

1、ansible:ansible的核心部分
2、host inventory:指明所管理的主机,如ip地址,掩码,端口号等信息
3、Core Modules:ansible的核心模块,ansible实现管理是通过调用模块去完成的。
4、Custom Modules:自定义模块(可以使用任何编程语言来编写该模块),核心模块能完成大部分的管理任务,但有时候我们还需要去定制一些任务。
5、Connection Plugins:ansible于hosts进行通信
6、Playbooks:使用YAML和jinjia2格式,多个任务可以定义在一个文件中进行统一调用。同一个playbook在同一各主机上调用多次结果是一样的。

ansible的特性:

1、基于python语言实现,有paramiko,PyYAML,jinjia2三个关键模块
2、部署简单,angentless,
3、默认使用ssh协议
(1)基于密钥认证
(2)在inventory文件中指定
4、主从模式:
master:ansible,ssh client
slave:ssh Server
5、支持自定义模块;支持各种编程语言
6、支持playbook
7、基于“模块“完成各种任务

安装ansible
我的系统为redhat6.5
根据官网提示先安装EPEL源,
这里写图片描述
直接点击EPEL,进入EPEL源安装教程
这里写图片描述

EPEL源安装完成后就可看到ansible的相关包了
这里写图片描述
这里写图片描述

安装ansible,这时报错需要安装两个依赖包PyYAML和python-six,而PyYAML依赖libyaml,所以在使用EPEL源安装之前需要安装以下三个包(包来源网站:pkgs.org)
这里写图片描述

ansible的主配置文件:/etc/ansible/ansible.cfg
inventory:/etc/ansible/hosts

如何查看模块帮助

[root@server1 .ssh]# ansible-doc -l  列出模块
[root@server1 .ssh]# ansible-doc -s yum 某个模块怎么用

ansible命令应用基础

ansible <host-pattern> [-f forks] [-m module_name] [-a args]

host-pattern:匹配对象,如inventory中的webserver,dbserver等
-f forks:启动的并发线程数(一次行控制多少个主机执行任务)
-m module_name:要使用的模块
-a args:模块特有的参数

常见模块:

1、command:命令模块,默认模块,用于远程执行命令
这里写图片描述

默认模块就是command模块
这里写图片描述

2、 corn:
state
present:安装. 默认为present
absent:移除

每十分钟运行一次 hello
这里写图片描述
changed表示对方是否发生改变,改变的结果为true

这里写图片描述

移除刚才的任务,直接使用名字移除
这里写图片描述
这里写图片描述

3、 user
name= :指明创建用户的名字
这里写图片描述
这里写图片描述

4、group
这里写图片描述
这里写图片描述

5、 copy
src=:定义本地源文件路径
dest=:定义远程目标文件路径
content=:取代src,表示直接用此处的信息生成目标文件内容
这里写图片描述
这里写图片描述
使用content生成文件内容
这里写图片描述
6、 file 设定文件的属性
path=:指定文件路径,可以用name或dest代替
这里写图片描述
这里写图片描述
创建连接文件,path指定链接文件,src指定源文件,state指定为link模式
这里写图片描述
这里写图片描述

7、ping 测试指定主机是否能连接
这里写图片描述

8、 service 指定运行状态

enabled=:是否开及子启动
name=:服务名称
state=:状态,取值有started,stopped,restarted
这里写图片描述
这里写图片描述

9、share模块:在远程主机上运行命令
尤其是用到管道等复杂功能时

要想修改一个用户密码,通过command模块修改看似运行成功,其实并没有修改
这里写图片描述
这里写图片描述

这里需要用到shell模块
这里写图片描述
这里写图片描述

script模块 在远程主机运行本地脚本 (仅支持使用相对路径)
这里写图片描述
这里写图片描述

10、 yum 安装程序包
name=指定安装的程序包,可以带上版本号
state=:present,latest表示安装,absent表示卸载,默认为latest
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

11、setup:收集远程主机的facts

ansible在管理客户端主机时,这些主机在被管理执行任务u之前,会首先向ansible汇报一下在管理自己时所用到的一些信息(操作系统版本,ip地址)
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值