Ansible 概述与模块基本操作

Ansible是一款轻量级的配置管理和自动化工具,适用于类Unix系统,无需客户端,通过SSH通信。它采用模块化设计,支持批量配置、部署和管理。文章详细介绍了Ansible的特点、工作机制、环境安装、常用命令行模块以及inventory主机清单的管理,包括如何使用command、shell、cron等模块,以及主机和组变量的配置。
摘要由CSDN通过智能技术生成

一、Ansible 概述

  • Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具

  • 它用Python写成,类似于saltstack、Puppet、CHef,但是有一个不同和优点是我们不需要在节点中安装任何客户端

  • 它使用SSH来和节点进行通信。Ansible基于 Pthon paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作

  • Ansible官方网站:https://www.ansible.com/,红帽公司于2015年10月收购了ansible,而ansible成立于2013年

  • Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible 只需在固定的一台Ansible控制节点上去完成所有主机的操作

  • 使用者在使用时,在服务器终端输入命令或者playbooks,会通过预定好的规则将playbook拆解为play,再组织成ansible可以识别的任务,调用模块和插件,根据主机清单通过SSH将临时文件发给远程的客户端执行并返回结果,执行结束后自动删除

1.Ansible 的特点

1.部署简单,没有客户端,只需在主控端部署Ansible环境,被控端无需做任何操作

2.模块化:调用特定的模块,完成特定任务

3.默认使用SSH协议对设备进行管理

4.主从集中化管理

5.配置简单、功能强大、扩展性强

6.支持API及自定义模块,可通过Python轻松扩展

7.通过Playbooks来定制强大的配置、状态管理

8.对云计算平台、大数据都有很好的支持

9.具有幂等性:一个操作在一个主机上执行一遍和执行N遍的结果是一样的

2.Ansible 工作机制

Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排

在这里插入图片描述

ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)连接插件connection plugins:负责和被监控端实现通信
(2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机
(3)各种模块核心模块、command模块、自定义模块
(4)借助于插件完成记录日志邮件等功能
(5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务

由图可以看出Ansible的组成由以下模块组成:

Ansible: ansible的核心模块
Host Inventory:主机清单,也就是被管理的主机列表
Playbooks:ansible的剧本,可想象为将多个任务放置在一起,一块执行
Core Modules:ansible的核心模块
Custom Modules:自定义模块
Connection Plugins:连接插件,用于与被管控主机之间基于SSH建立连接关系
Plugins:其他插件,包括记录日志等

二、Ansible 环境安装及部署

服务器名 IP 安装的服务
管理端 192.168.113.125 Ansible
被管理端 192.168.113.128
被管理端 192.168.113.129
#每台机器关闭防火墙核心防护
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0

1.管理端操作(192.168.113.125)

#1.安装ansible
#先安装epel源
[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install -y ansible

#2.查看anisble树形结构
[root@localhost ~]# yum install -y tree
[root@localhost ~]# tree /etc/ansible/
/etc/ansible/
├── ansible.cfg			#ansible的配置文件,一般 无需修
├── hosts				#ansible的主机清单,用于存储需要管理的远程主机的相关信息
└── roles				#公共角色目录

#3.配置主机清单,最后一行添加
[root@localhost ~]# vim /etc/ansible/hosts 
[webservers]       #配置组名
192.168.113.128    #组里包含的被管理的主机IP地址或主机名(主机名需要先修改/etc/hosts文件)

[dbservers]
192.168.113.129

#4.配置密钥对验证
[root@localhost ~]# ssh-keygen -t rsa    #一路回车,使用免密登录
[root@localhost ~]# sshpass -p '123123' ssh-copy-id root@192.168.113.129
[root@localhost ~]# sshpass -p '123123' ssh-copy-id root@192.168.113.128
#sshpass -p是一种免交互方式

#测试免交互
[root@localhost ~]# ssh 192.168.113.129
[root@localhost ~]# ssh 192.168.113.128

三、Ansible 命令行模块

命令格式: ansible <组名> -m <模块> -a <参数列表>
ansible-doc -l      #列出所有已安装的模块,按q退出

1.command 模块

#在远程主机执行命令,不支持管道,重定向等shell的特性
[root@localhost ~]# ansible-doc -s comman
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值