ansible自动化运维常用模块,playbook ,YAML语言

常用模块

yum_repository
复制代码
ansible all -m yum_repository -a "file=myrepo name=myApp description='My App' baseurl=ftp://192.168.88.240/dvd/AppStream gpgcheck=no enabled=yes"
yum模块
  • 用于rpm软件包管理,如安装、升级、卸载

  • name:包名

  • state:状态。present表示安装,如果已安装则忽略;latest表示安装或升级到最新版本;absent表示卸载。

复制代码
ansible webservers -m yum -a "name=tar state=present"
service模块
  • name:控制的服务名

    • state:started表示启动;stopped表示关闭;restarted表示重启
    • enabled:yes表示设置开机自启;no表示设置开机不要自启。
    复制代码
     在test主机上启动nginx,并设置它开机自启[root@pubserver ansible]# ansible webservers -m service -a "name=nginx state=started enabled=yes"
    • ansible webservers -m shell -a "ss -ntulp | grep nginx"
    • ansible webservers -m shell -a "systemctl is-enabled nging
lvg模块
  • vg:定义卷组名。vg:volume group
  • pvs:由哪些物理卷构成。pvs:physical volumes
复制代码
扩容卷组。卷组由PV构成,只要向卷组中加入新的PV,即可实现扩容[root@pubserver ansible]# ansible web1 -m lvg -a "vg=myvg pvs=/dev/vdb1,/dev/vdb2"
lvol模块
  • vg:指定在哪个卷组上创建逻辑卷
  • lv:创建的逻辑卷名。lv:logical volume
  • size:逻辑卷的大小,不写单位,以M为单位
复制代码
# mylv扩容至4GB
复制代码
[root@pubserver ansible]# ansible web1 -m lvol -a "vg=myvg lv=mylv size=4G"
filesystem模块
  • fstype:指定文件系统类型
  • dev:指定要格式化的设备,可以是分区,可以是逻辑卷
复制代码
ansible web1 -m filesystem -a "fstype=xfs dev=/dev/myvg/mylv"
mount模块

Playbook剧本

ansible 两种执行方法:ad-hoc 一次性命令

  • playbook也是通过模块和它的参数,在特定主机上执行任务
  • playbook是一个文件,该文件中需要通过yaml格式进行书写
yaml语法规范
  1. yaml文件的文件名,一般以yml或yaml作为扩展名
  2. 文件一般以---作为第一行,不是必须的,但是常用
  3. 键值对使用冒号:表示,冒号后面必须有空格。
  4. 数组使用-表示,-后面必须有空格。
  5. 相同的层级必须有相同的缩进。如果缩进不对,则有语法错误。每一级缩进,建议2个空格。
  6. 全文不能使用tab,必须使用空格。
复制代码
[root@pubserver ansible]# vim user_john.yml
复制代码
---
复制代码
- name: create user
复制代码
  hosts: webservers
复制代码
  tasks:
复制代码
    - name: create user john
复制代码
      user:
复制代码
        name: john
复制代码
        uid: 1040
复制代码
        group: daemon
复制代码
        password: "{{'123'|password_hash('sha512')}}"
parted模块
  • 用于硬盘分区管理

  • 常用选项:

    • device:待分区的设备
    • number:分区编号
    • state:present表示创建,absent表示删除
    • part_start:分区的起始位置,不写表示从开头
    • part_end:表示分区的结束位置,不写表示到结尾
复制代码
复制代码
复制代码
相关推荐
消失的旧时光-19432 分钟前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑10 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
小天源13 分钟前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti
梦帮科技23 分钟前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
Trouvaille ~36 分钟前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
芷栀夏43 分钟前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann
feasibility.1 小时前
AI 编程助手进阶指南:从 Claude Code 到 OpenCode 的工程化经验总结
人工智能·经验分享·设计模式·自动化·agi·skills·opencode
全栈工程师修炼指南1 小时前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
旖旎夜光1 小时前
Linux(13)(中)
linux·网络
xiaobaibai1532 小时前
营销自动化终极形态:AdAgent 自主闭环工作流全解析
大数据·人工智能·自动化