文章目录

  • 前言
  • 一、概述
  • 1.1 ansible简介
  • 1.2 ansible安装
  • 二、剧本
  • 2.1 剧本组件
  • 2.2 角色详解
  • 2.3 剧本语法
  • 2.3.1 基本语法
  • 2.3.2 常用字段
  • 2.3.4 常用模块
  • 三、思维导图



前言

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


一、概述

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脚本(非幂等性操作)

三、思维导图

ansible 批量配置dns ansible批量添加主机_缩进