尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Ansible自动化运维实战:从入门到精通,轻松管理服务器集群

Ansible自动化运维实战:从入门到精通,轻松管理服务器集群
📅 发布时间:2026/6/30 23:14:46

Ansible自动化运维实战:从入门到精通,轻松管理服务器集群

  • 简介
  • 核心组件
  • 基本操作
  • 常用模块实践
    • Shell模块
    • 复制模块
    • 用户模块
    • 软件包管理
    • 服务模块
    • 文件模块
    • 收集模块
  • 编写任务剧本

简介

  1. Ansible是基于Python语言开发的;
  2. Ansible由EPEL仓库提供;
  3. Ansible是一款能够批量执行远程操作系统指令的自动化运维工具;
  4. Ansible采用无客户端架构。

核心组件

  • 核心模块
  • 主机清单Inventory
  • 任务剧本Playbook

基本操作

  • 密钥认证

    # 生成密钥,默认生成到~/.ssh路径下,密码设置为空否则后续ansible命令都要再手工输入ssh-keygen-f ~/.ssh/id_rsa-P''# 推送公钥到目标主机,默认用户为rootssh-copy-id用户名@IP地址

    当客户机较多时,而连接密码一致,可以通过Shell自动化脚本提升操作效率

    #!/bin/bash# 配置参数IP_LIST="192.168.1.2 192.168.1.3"USERNAME="root"PASSWORD="123456"forip in$IP_LISTdosshpass-p$PASSWORDssh-copy-id-i ~/.ssh/id_rsa.pub-o StrictHostKeyChecking=no$USERNAME@$ipdone
  • 部署Ansible

    yum install-y epel-release yum clean all && yum makecache yum install-y ansible && ansible--version
  • 编写主机清单
    修改/etc/ansible/hosts文件,使用中括号设置组名,记录对应的主机名或主机IP地址,也能配置主机对应的连接用户和密码,配置主机非默认端口,如果连接的用户和密码一致,也可以通过组变量配置。
    如果已对目标客户机做了密钥认证,则对应配置了ansible_ssh_pass不起效果,客户机直接通过公钥认证了。

    [web1]host1 192.168.1.2[web2]host2 192.168.1.3 host[3:5]ansible_ssh_user='root'ansible_ssh_pass='123456'ansible_ssh_port='2222'[webserver:children]web1 web2[webserver:vars]ansible_ssh_user='root'ansible_ssh_pass='12345678'
  • 测试

    # -o简洁输出,ping非测试网络ICMP协议,而是SSH连通性ansible web1-m ping-o

    测试的主机组名或IP地址需要在/etc/ansible/hosts文件中被找到,否则被忽略;
    当测试连接不通时,可以通过客户机的/var/log/secure日志排查。

常用模块实践

Shell模块

# -f指定并发进程数,默认是5ansible webserver-m shell-a'hostname'-o-f 2

复制模块

# 将/etc目录下的hosts文件复制到目标主机/tmp目录下并命名为1.txt,如果目标文件名存在则进行备份,备份命名为1.txt.时间戳~,默认是不进行备份ansible webserver-mcopy-a'src=/etc/hosts dest=/tmp/1.txt owner=root group=bin mode=777 backup=yes'

用户模块

# 创建用户ansible webserver-m user-a'name=lisi state=present'# 修改密码ansible webserver-m user-a"name=lisi password=$(echo'12345678'|openssl passwd-1-stdin)"# 修改shellansible webserver-m user-a'name=lisi shell=/sbin/nologin'# 删除用户ansible webserver-m user-a'name=lisi state=absent'# 给用户添加组,默认append为no,则原来用户已经存在的附加组被移除ansible webserver-m user-a'name=list groups=docker,nginx append=yes'

软件包管理

# 升级所有包ansible host1-m yum-a'name=* state=latest'# 安装apacheansible host2-m yum-a'name=httpd state=latest'# 卸载apacheansible host2-m yum-a'name=httpd state=removed'

服务模块

# state状态有started,stopped,restarted,开机自启enabled有yes,noansible host2-m service-a'name=httpd state=started enabled=yes'

文件模块

# 创建文件ansible host1-m file-a'path=/tmp/1.txt mode=777 state=touch'# 创建目录ansible host1-m file-a'path=/tmp/2 mode=777 state=directory'

收集模块

# 查询所有信息ansible host2-m setup# 过滤查询IP地址ansible host2-m setup-a'filter=ansible_all_ipv4_addresses'

编写任务剧本

任务剧本是将安装软件、复制配置、服务启动等一系列过程组织串到一起,以键值对格式存在文件内容中的。
Handlers是特殊任务,存在以下特点:

  1. 在所有tasks执行完毕后运行
  2. 只有被notify指令通知时才执行
  3. 去重执行,即使被多次notify,最多只执行一次
----name:Install Apache Web Serverhosts:web1tasks:-name:Ensure Apache is at the latest versionyum:name:httpdstate:latestnotify:-restart apache-name:Copy Apache confcopy:src=./httpd.conf dest=/etc/httpd/conf/httpd.conf-name:Ensure Apache service is enabledservice:name:httpdstate:startedenabled:yeshandlers:-name:restart apacheservice:name:httpdstate:restarted

实施任务剧本常用命令:

# 检验语法ansible-playbook apache.yaml--syntax-check# 列出任务ansible-playbook apache.yaml--list-tasks# 列出主机ansible-playbook apache.yaml--list-hosts# 执行ansible-playbook apache.yaml

相关新闻

  • 如何快速部署Python自动化脚本:京东商品预约下单的完整解决方案
  • JVM 运行时数据区 —— 5 大块内存
  • C++ Primer Plus 重读精讲 _ 指针进阶全集:三类const指针辨析、指针数组数组指针硬核区分、指针地址传参、工控函数双向改参实战

最新新闻

  • 抖音监控助手:实时追踪博主动态与直播推送的终极指南
  • VisualGGPK2完整指南:快速掌握《流放之路》游戏资源管理技巧
  • Spark SQL 优化:从 Catalyst 优化器到数据倾斜治理,大数据查询的性能调优路径
  • 魔兽争霸3终极优化教程:如何三步解决现代硬件兼容性问题
  • Mac Mouse Fix:让你的普通鼠标在macOS上超越苹果触控板体验
  • 3个技巧让日志分析效率翻倍:glogg完全指南

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号