恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

实施多个Play

  • 首页
  • 资讯中心
  • /
  • 实施多个Play

相关资讯

C/C++的基础语法 2026/10/12 5:34:04
[SAP ABAP] SAP设置定时执行任务Job 2026/10/12 5:29:03
AI语音智能体开发日记(十四)为语音智能体打造 LCD 表情动画位图(BMP)显示 2026/10/12 5:29:03

最新资讯

抖音式上下滑动视频的工程实现与性能避坑指南
Linux下RAR命令行工具rarlinux部署与实战指南
WinForm DataGridView轻量分页控件实战:服务端分页+异步加载+状态管理
低空经济通信协议安全评估:模糊测试实战与避坑指南
Jenkins+Docker实现SpringBoot自动化部署:从手动发布到一键流水线
从bench到优化循环:用evo:optimize自动驱动AI代码优化的实战教程

今日推荐

Debian新手入门:从部署到日常操作的完整指南
MongoDB复制集扩缩容实战:从rs.add到选主事故复盘
条形码目标检测数据集实战:从YOLOv8训练到部署

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

实施多个Play

发布时间:2026/10/12 5:34:04
实施多个Play 编写多个 PlayPlaybook 是一个 YAML 文件含有由一个或多个 play 组成的列表。记住一个 play 按顺序列出了要对清单中的选定主机执行的任务。因此如果一个 playbook 中含有多个 play每个 play 可以将其任务应用到单独的一组主机。在编排可能涉及对不同主机执行不同任务的复杂部署时这会大有帮助。您可以这样编写 playbook对一组主机运行一个 play完成后再对另一组主机运行另一个 play。编写包含多个 play 的 playbook 非常简单。Playbook 中的各个 play 编写为 playbook 中的顶级列表项。各个 play 是含有常用 play 关键字的列表项。以下示例显示了含有两个 play 的简单 playbook。第一个 play 针对 web.example.com 运行第二个 play 则针对 database.example.com 运行。--- # This is a simple playbook with two plays - name: First play hosts: web.example.com tasks: - name: First task ansible.builtin.dnf: name: httpd state: present - name: Second task ansible.builtin.service: name: httpd enabled: true - name: Second play hosts: database.example.com tasks: - name: First task ansible.builtin.service: name: mariadb enabled: true用户属性Playbook 中的任务通常通过与受管主机的网络连接来执行。Ansible 必须以特定用户身份连接到各受管主机才能运行这些任务。默认情况下如果您使用ansible‑navigator run运行 playbookAnsible 会以自动化执行环境 root 中当前用户的身份连接受管主机。您可以在项目的ansible.cfg文件中设置remote_user指令将 Ansible 配置为首次登录时在受管主机上使用其他用户帐户。如果您仍要以 root 身份运行任务则可在首次远程连接后使用特权升级切换到该用户。但是您也可以根据每个 play 指定 Ansible 使用的远程用户。如果用于任务执行的 Ansible 配置中定义的远程用户不合适可以通过在 play 中的remote_user关键字来覆盖。remote_user: remoteuser特权升级属性您还可在 play 中配置特权升级。使用 become 布尔关键字可以为单个 play 或任务启用或禁用特权升级。此操作会覆盖 ansible.cfg 配置文件中的设置。可使用 yes 或 true 来启用特权升级也可使用 no 或 false 来禁用特权升级。become: true如果启用特权升级可以在 play 中使用 become_method 关键字来指定要对相应 play 使用的特权升级方法。以下示例指定以 sudo 为特权升级方法。become_method: sudo此外启用特权升级后您可在 play 中使用 become_user 关键字来定义在特定 play 中进行特权升级时要使用的用户帐户。become_user: privileged_user以下示例演示了 play 中的这些关键字- name: /etc/hosts is up-to-date hosts: datacenter-west remote_user: automation become: true tasks: - name: server.example.com in /etc/hosts ansible.builtin.lineinfile: path: /etc/hosts line: 192.0.2.42 server.example.com server state: present在受管主机上运行任意命令如果不存在自动化某些任务的模块可以使用特殊模块来在受管主机上运行任意命令。ansible.builtin.command 模块是这些命令的最简单版本。其 cmd 参数会指定您要运行的命令。以下示例任务在受管主机上运行 /opt/bin/makedb.sh。- name: Run the /opt/bin/makedb.sh command ansible.builtin.command: cmd: /opt/bin/makedb.sh与大部分模块不同ansible.builtin.command 不幂等。每次在 play 中指定该任务时该任务都会运行并报告其已更改受管主机上的某些内容即使没有需要更改的内容。您可以尝试将任务配置为仅在文件存在时运行以提高任务的安全性。creates 选项可以让任务仅在文件缺失时运行可以假设如果任务运行则会创建该文件。removes 选项可以让任务仅在文件存在时运行可以假设如果任务运行则会删除该文件。例如以下任务只会在 /opt/db/database.db 不存在时运行- name: Initialize the database ansible.builtin.command: cmd: /opt/bin/makedb.sh creates: /opt/db/database.dbansible.builtin.command 模块无法访问 shell 环境变量也无法执行输入 / 输出重定向和管道之类的 shell 操作。当您需要执行 shell 处理时可以使用 ansible.builtin.shell 模块。与 ansible.builtin.command 模块类似您可以将要执行的命令作为参数传递给该模块。ansible.builtin.command 和 ansible.builtin.shell 模块都要求受管主机上安装正常工作的 Python。第三个模块是 ansible.builtin.raw该模块可以绕过模块子系统直接使用远程 shell 运行命令。在管理无法安装 Python 的系统如网络路由器时可以用到该模块。除此之外该模块还可用于在受管主机上安装 Python。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号