【Linux】ansible批量管理服务器


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、概述

1.1 ansible简介

  • 服务没有客户端存在,通过模块对节点服务器进行控制
  • 模块具有幂等性,重复的操作不会报错
  • 能够批量配置、部署、管理上千台主机

1.2 ansible安装

  • 仅需在控制主机安装ansible服务即可(本质是通过ssh进行连接控制)
#安装epel源
yum install -y epel-release

#安装ansible服务
yum install -y ansible

#编辑主机清单配置
vim /etc/ansible/hosts

#生成非对称秘钥
ssh-keygen -t rsa
#传输给节点主机,实现免密登陆
ssh-copy-id root@IP

二、剧本

2.1 剧本组件

组件 释义
tasks 任务
variables 变量
templates 模块(核心)
handlers 处理器
roles 角色

2.2 角色详解

在配置文件:/etc/ansible/hosts总定义角色组

#自定义组
[mysql]

#选择所有组
all

#组合组(多个组在一起)
[组集合名:child]

#设置组变量
[组名:vars]

2.3 剧本语法

2.3.1 基本语法

  • 大小写敏感、大小写不同则含义不同
  • 缩进敏感、用缩进表示层级关系
  • 缩进不允许用tab键、只能识别空格
  • 文本中空格的数量不重要,只要左侧对齐,则层级相同

2.3.2 常用字段

  • remote-user:用什么身份登录
  • tasks:子条目编写角色将要执行的任务
  • become:yes:表示切换用户执行
  • become_user:用户:切换为对应用户进行执行
  • – name:定义下方操作的名称(方便维护)

2.3.4 常用模块

模块 释义
command:命令模块 执行后方的Linux命令
cron:周期任务模块 定义周期性执行任务(相当于crontab -e)
user:用户模块 创建/删除用户
group:组模块 创建/删除组
copy:复制模块 将本机文件复制到其他机器
file:文件模块 对文件进行增删操作
ping:ping模块 检测机器是否正常通信
service:服务模块 配置其他机器是否开机自启等
yum:yum模块 控制机器通过yum安装服务
shell:脚本模块 控制机器使用shell脚本(非幂等性操作)

三、思维导图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/H875035681/article/details/125794882