当前位置:首页>Linux>Linux | Ansible1 自动化运维核心基础

Linux | Ansible1 自动化运维核心基础

  • 2026-09-02 20:12:47
Linux | Ansible1 自动化运维核心基础

点击关注,更多精彩

2026 NEW YEAR

Ansible 自动化运维核心基础

(命令与系统模块)

一、Ansible 基础命令语法

1. 核心执行格式

Ansible 通过命令行对远程主机 / 组执行操作,基础语法如下:

ansible [主机/组列表] -m 模块 -a "模块参数"

2. 常用核心选项

3. 基础连通性测试(ping模块)

ansible all -m ping

  • 成功:返回SUCCESS(绿色),表示控制节点与被控节点网络、SSH 免密均正常;

  • 失败:返回UNREACHABLE(红色),需排查:① 网络连通性(ping 被控节点 IP);② SSH 免密配置(ssh-copy-id);③ 被控节点防火墙 / SELinux。

4. 模块文档查询(ansible-doc)

Ansible 所有模块的官方帮助文档查询工具,运维必备:

二、Linux 系统命令相关核心模块

1. command 模块(默认模块)

核心特点

  • Ansible默认模块(不写-m时,默认使用);

  • 用于在被控节点执行简单 Linux 命令;

  • 不支持 Bash 特性:管道|、重定向>/>>、通配符*、环境变量$PATH等。

实操示例

2. shell 模块(推荐)

核心特点

  • 基于被控节点的默认 Shell(通常为/bin/bash)执行命令;

  • 完全支持 Bash 特性:管道、重定向、通配符、脚本块等;

  • 生产环境中,执行复杂命令优先使用此模块。

实操示例

扩展:设置默认模块为 shell

修改配置文件将默认模块从command改为shell,避免每次写-m shell:

  1. 编辑 Ansible 主配置文件:

    vim /etc/ansible/ansible.cfg

  2. 在[defaults]段添加配置:

3. script 模块(执行本地脚本)

核心特点

  • 将控制节点的本地脚本传输到被控节点,再自动执行;

  • 支持任意脚本类型:Shell、Python、Perl 等(需脚本首行指定解释器,如#!/bin/bash);

  • 无需将脚本手动上传到被控节点,适合批量执行复杂运维脚本。

实操步骤

  1. 编写本地脚本(控制节点):

    vim /root/test.sh  # 脚本路径自定义

    脚本内容(创建 3 个用户并设置密码):

  1. 添加执行权限:

    chmod +x /root/test.sh

  2. 批量执行脚本(针对webservers组):

    ansible webservers -m script -a "/root/test.sh"

  3. 验证执行结果:

    ansible webservers -a "id zhangsan"

三、关键扩展知识点(生产必备)

1. command vs shell 核心区别

2. 替代方案:raw 模块

除了上述三个模块,还有raw模块,适用于被控节点未安装 Python 的场景(Ansible 大部分模块依赖 Python):

3. 主机清单(Inventory)基础格式

执行ansible webservers -m ping时,webservers是主机组,定义在/etc/ansible/hosts中:

4. 免密登录批量配置脚本(扩展)

针对-k选项的痛点,编写批量配置 SSH 免密的脚本,提升效率:

❥❥❥  END

原图地址如上

公众号菜单栏网盘自取

公众号:初见别辞

壁纸分享 | 电脑技术 | 头像

你们点点“分享”,给我充点儿电吧~

最新文章

随机文章