当前位置: 首页 > news >正文

ansible介绍、按照及配置 - huangSir

Ansible是什么?

Ansible官网:https://www.ansible.com/

Ansible 是一款开源的自动化运维工具,由 RedHat 公司开发维护,核心目标是实现:

  • 批量服务器操作(命令执行、软件安装、配置修改)
  • 应用部署与生命周期管理
  • 配置自动化(替代手动修改配置文件)
  • 任务编排(按顺序执行复杂的运维流程)

它最大的特点是无客户端(Agentless) —— 不需要在被管理的服务器上安装任何代理程序,仅通过 SSH 协议(默认)或 WinRM(Windows 主机)与目标机器通信,部署和使用门槛极低。

Ansible 核心特性

  • 无代理架构:仅需控制节点(安装 Ansible 的机器)能 SSH 连接被管理节点,无需在目标机装软件,降低维护成本;
  • 模块化设计:内置上千个模块(如 yum/apt 安装软件、copy 传输文件、service 管理服务),覆盖绝大多数运维场景;
  • 声明式语法:用 YAML 编写 Playbook(剧本),只需描述 “最终要达到什么状态”,无需写 “如何达到这个状态”,Ansible 会自动处理执行逻辑;
  • 幂等性:多次执行同一个操作,结果始终一致(比如 “确保 nginx 服务启动”,无论执行多少次,最终都是启动状态);
  • 跨平台:支持管理 Linux、Windows、网络设备(华为 / 思科 / 华三)、云平台(AWS / 阿里云 / 腾讯云)等。

Ansible架构

image

Ansible安装与配置

安装Ansible

# 首先安装python3
root@master:~# apt install -y python3
root@master:~# apt install -y python3-pip# 安装ansible 
# -i指定安装源,可以不加-i参数,直接pip3 install ansible
root@master:~# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple   ansible

检查是否安装成功

root@master:~# ansible --version
ansible [core 2.14.18]config file = /etc/ansible/ansible.cfgconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3/dist-packages/ansibleansible collection location = /root/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/bin/ansiblepython version = 3.11.2 (main, Aug 26 2024, 07:20:54) [GCC 12.2.0] (/usr/bin/python3)jinja version = 3.1.5libyaml = True

修改Ansible的配置文件

Ansible的配置文件默认没有配置上,需要使用命令进行初始化

# 创建目录
root@master:~# mkdir -p /etc/ansible
# 初始化配置文件
root@master:~# ansible-config init --disabled > /etc/ansible/ansible.cfg

修改配置文件,修改下面两个地方就好

root@master:~# vim /etc/ansible/ansible.cfg
# #类似于 ssh -oStrictHostKeyChecking=no
host_key_checking=False
# 日志
log_path=/var/log/ansible.log

配置Ansible的hosts(被管理的主机清单)配置文件

Ansible的hosts文件作用

  • 定义被管理节点:把所有需要 Ansible 操作的服务器(IP / 主机名 / 域名)列在这个文件里,Ansible 只能识别并操作这里面的节点;
  • 分组管理节点:按业务场景(如 web 服务器、数据库服务器)给节点分组,方便批量操作指定分组(比如只给 web 组装 nginx);
  • 配置节点属性:给单个节点 / 分组设置专属变量(如 SSH 端口、登录用户、自定义参数),让 Ansible 适配不同节点的差异;
  • 简化操作指令:不用每次执行命令都手动写一堆 IP,直接用分组名(如 webservers)就能指代一组节点。

配置hosts文件

Ansible 默认读取 /etc/ansible/hosts,你也可以通过 -i 参数指定自定义的 hosts 文件(比如 ansible -i /opt/my_hosts all -m ping)。

root@master:~# cat /etc/ansible/hosts
[web]
10.37.99.63
10.37.120.9
[db]
10.37.99.63
[es]
10.37.120.9

配置机器之间免密登录

可以查看这篇文章:Linux机器之间配置免密登录
当然也可以不配置免密登录,这个后续文章会更新,这里可以照着这里做就好

测试使用

  • 测试所有被管理主机执行ping命令
# -m指定ansible的模块
root@master:~# ansible all -m ping
[WARNING]: Platform linux on host 10.37.99.63 is using the discovered Python interpreter at /usr/bin/python3.11, but future installation of another Python interpreter could
change the meaning of that path. See https://docs.ansible.com/ansible-core/2.14/reference_appendices/interpreter_discovery.html for more information.
10.37.99.63 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3.11"},"changed": false,"ping": "pong"
}
[WARNING]: Platform linux on host 10.37.120.9 is using the discovered Python interpreter at /usr/bin/python3.11, but future installation of another Python interpreter could
change the meaning of that path. See https://docs.ansible.com/ansible-core/2.14/reference_appendices/interpreter_discovery.html for more information.
10.37.120.9 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3.11"},"changed": false,"ping": "pong"
}

测试在db主机执行shell命令

# -m指定ansible的模块,-a指定模块命令
root@master:~# ansible db -m command -a 'hostname -I'
[WARNING]: Platform linux on host 10.37.99.63 is using the discovered Python interpreter at /usr/bin/python3.11, but future installation of another Python interpreter could
change the meaning of that path. See https://docs.ansible.com/ansible-core/2.14/reference_appendices/interpreter_discovery.html for more information.
10.37.99.63 | CHANGED | rc=0 >>
10.37.99.63 172.17.0.1 100.112.111.195 fdbd:dc01:ff:318:71d3:f428:1bc5:b474 

去除ansible返回的warning警告

root@master:~# vim /etc/ansible/ansible.cfg 
# 找到下面这一行
interpreter_python=auto_silent

测试

root@master:~# ansible db -m command -a 'hostname -I'
# 发现warning警告已经没有了
10.37.99.63 | CHANGED | rc=0 >>
10.37.99.63 172.17.0.1 100.112.111.195 fdbd:dc01:ff:318:71d3:f428:1bc5:b474
http://www.jsqmd.com/news/417727/

相关文章:

  • ‌香氛品牌对比‌ - 中媒介
  • 小微企业必看:2026年企业微信收费标准详解,助您精准规划预算 - 品牌2025
  • 2026必备!9个AI论文工具测评:本科生毕业论文写作与格式规范全攻略
  • 浙江‌擦手纸哪个牌子好‌ - 中媒介
  • 5、什么是一单一结,单单带止赢止损
  • 2026最新车膜推荐!国内优质车膜品牌权威榜单发布 - 十大品牌榜
  • 商用纸品牌推荐‌ - 中媒介
  • 2026年上海电动机/变频器/充电桩/中央空调/发电机组/电梯/反应釜等工业设备回收厂家推荐榜:专业评估与高价回收服务首选 - 品牌企业推荐师(官方)
  • 照着用就行:继续教育专属降AIGC神器 —— 千笔·专业降AIGC智能体
  • 浙江‌酒店专用香氛品牌有哪些‌ - 中媒介
  • 写作小白救星!自考论文神器 —— 千笔AI
  • Naya卫消产品 - 中媒介
  • 3、鉴别你现在看到的 EA是不是坑,给你一套普通人能看懂的黄金交易风控规则
  • Oracle 19c占内存高的解决方法
  • Flutter App 使用Flavor时配置ios方法
  • 企业微信官方服务电话 2026 最新版,人工客服热线查询指南 - 品牌2025
  • 4、EA量化的交易策略
  • 1、什么是EA量化黄金交易?
  • 学习笔记514—安装 VirtualBox虚拟机【ubuntu】
  • 2026年光储充电站建设施工公司推荐:谁能打造优质充电设施?重卡充电桩运营/重卡充电站投资,光储充电站企业找哪家 - 品牌推荐师
  • 2026年应用商店ASO优化推广服务商推荐:柚鸥网络苹果/谷歌/安卓全场景选型指南 - 品牌推荐官
  • 国标领航 技护成长:独语N627-1,学生护眼台灯的品质典范 - 资讯焦点
  • 48-mini-vue 实现 watchEffect
  • 解析国货防脱洗发水品牌怎么选:长发小寨以核心酶抑制率立标杆 - 资讯焦点
  • 2026年2月陶瓷台面实验台实力厂家,高端实验台面实力品牌 - 品牌鉴赏师
  • 2、哪些 EA 是**坑**,哪些**真能活久一点**,你一看就懂。
  • 2026大型企业适用 Jira 替代软件怎么选?深度评测五大主流方案 - 资讯焦点
  • 整骨师资格证怎么考取? - 中媒介
  • 国家卫健委认证整骨培训 - 中媒介
  • 陕西搬家公司推荐:2026 年一站式搬家服务靠谱服务商筛选 - 深度智识库