Ansible简单介绍及基本使用

Ansible

随着运维自动化经历了从本地部署到基础设施即服务(IaaS)、平台即服务(PaaS)在到软件即服务(SaaS)的发展阶段,掌握多种自动化运维工具就成了运维人员必备技能之一,ansible就是目前国内使用比较广泛的自动化运维工具之一。

工具介绍

简介

ansible是基于SSH协议的自动化运维工具,使用Python开发的,使用起来灵活、简单。

可以非常方便的实现批量系统配置、批量程序部署、批量运行命令等操作。

特性

模块化:

幂等性

主要组成部分

  • API:供第三方程序调用的应用程序编程接口
  • Inventory:Ansible管理主机清单,存放在/etc/ansible/hosts
  • Modules:模块,Ansible执行命令的功能的模块,多个命令的组合
  • Playbook:剧本,多个模块的组合,编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件
  • Plugins:模块功能的补充,如连接类型的插件、循环插件、变量插件、过滤插件等,该功能不常用
  • Ansible:组合Inventory、API、Modules、Plugins的绿框,可以理解为是ansible命令工具,其为核心执行工具

相关文件

程序:

远程执行命令的工具:

/etc/ansible/ansible.cfg ansible

配置文件(一般保持默认)

ansible 命令介绍

功能:通过ssh实现配置管理、应用部署、任务执行等功能

建议:配置ansible端能基于密钥认证的方式联系各被管理节点

格式:ansible <host-pattern> [-m module_name] [-a args]

* 支持通配符

或关系

逻辑与

逻辑非

综合逻辑

正则表达式

常用模块

简单介绍常用模块如何使用,模块的参数仅是常用的参数,完整具体的参数,请参考ansible文档,或者使用ansible-doc命令查看模块的帮助文档。

command 执行命令

ansible的默认模块,因此可以省略-m参数。

shell 执行shell命令

与上面的command基本相同,但shell模块兼容性更好。

例如:当命令中需要管道操作的时候,则不能使用command模块,需要使用shell模块来执行命令。

yum 安装软件

推送脚本文件到远程主机,并远程执行脚本文件

参数介绍

copy 推送文件

将本地文件推送到客户端

在推送覆盖远程主机文件时,对远程主机已有的文件进行备份,按照时间备份

直接想远程机器文件内写入数据,并且直接覆盖远程文件内原有的数据

参数介绍

fetch 拉取文件

文件拉取模块主要是将远程主机中的文件拷贝到本机中,和copy模块的作用刚刚相反,并且在保存的时候使用hostname来进行保存,当文件不存在的时候,会出现错误,除非设置了选项fail_on_missing为yes

详细参数可参考

service 启停服务

启动或者停止服务

参数介绍

script 执行脚本文件

在本地运行模块,等同于在远程执行,不需要将脚本文件进行文件推送,就可以执行

user 用户管理

操作系统的用户

参数介绍

group 组管理

操作系统的用户组

参数介绍

file 目录及文件操作

对目录及文件进行操作

参数介绍

cron 定时任务

操作crontab定时任务

mount 挂载

用于挂载的模块

参数介绍

参考:

http://www.178linux.com/99715

http://edu.51cto.com/course/15617.html

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2020/03/08/ansible-basic-use
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

发表评论

邮箱地址不会被公开。 必填项已用*标注