自动化运维工具Ansible,简介及部署

Ansible是一个轻量级的自动化工具,通过SSH连接管理远程主机,无需在被管理节点安装代理。它使用YAML语言编写剧本(playbook),支持多种模块进行配置管理、应用部署等任务。Ansible的优点包括无代理、无需服务器、模块化等,但处理大量主机时效率较低。安装步骤包括安装依赖、配置主机清单和设置密钥对验证。
摘要由CSDN通过智能技术生成

一.简介

  • Ansible是一个部署一群远程主机的工具,可以用来批量执行命令,安装程序,支持playbook编排。
  • Ansible通过SSH协议来连接主机,去中心化,相对比puppet和saltstack无需安装客户即可实现文件传输、命令执行、应用部署、配置管理、任务编排等,显得更为简单与轻量。
  • Ansible是python开发的,故依赖一些python库和组件,如:paramiko,PyYaml和jinja三个关键组件
  • Ansible只是提供一种框架,其基于模块工作的,本身没有批量部署。

二.核心组件

  • 1.连接插件connection plugins:负责和被监控端实现通信;
  • 2.host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
  • 3.各种模块核心模块、command模块、自定义模块;
  • 4.借助于插件完成记录日志邮件等功能;
  • 5.playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

##常用模块##

模块作用
copy模块把主控端/root目录下的a.sh文件拷贝到到指定节点上
file模块更改指定节点上/tmp/t.sh的权限为755,属主和属组为root
cron模块在指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间
group模块在所有节点上创建一个组名为nolinux,gid为2014的组
user模块在指定节点上创建一个用户名为nolinux,组为nolinux的用户
yum模块在指定节点上安装 lrzsz 服务
service模块启动指定节点上的 puppet 服务,并让其开机自启动
script模块在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)
ping模块检查指定节点机器是否还能连通
command模块在指定节点上运行hostname命令
raw模块在10.1.1.113节点上运行hostname命令
get_url模块将指定文件下载到指定节点的/tmp目录下
synchronize模块将主控方/root/a目录推送到指定节点的/tmp目录下

三.工具特性

  • 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:可实现多级指挥。

##流程架构##
在这里插入图片描述
在这里插入图片描述

四.优缺点

##优点##

  • 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
  • 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
  • 使用python编写,维护更简单;
  • 使用push方式,控制节点向其他节点推方式,可先测试变更,方便控制管理。

##缺点##

  • 基于ssh,串行,故超过500台主机效率较低;

五.Ansible安装部署

1.实验准备

主机IP地址
管理端192.168.160.128
被管理端1192.168.160.129
被管理端2192.168.160.130

2.Ansible环境部署

##首先关闭三台主机的防火墙##

yum install -y epel-release      #安装epel源
yum install -y ansible           #安装ansible源
yum install -y tree              #安装树形展示结构
ansible --version                #查看ansible版本
tree /etc/ansible                #树形结构展示文件夹

在这里插入图片描述

cd /etc/ansible
vim hosts                        #配置主机清单
[webserver]
192.168.160.129                  #被控制端1,ip
[mysql]
192.168.160.130                  #被控制的2,ip

在这里插入图片描述

##配置密钥对验证##
ssh-keygen -t rsa
ssh-copy-id root@192.168.160.129
ssh-copy-id root@192.168.160.130

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值