Ansible Shell2025年3月17日 | 阅读 3 分钟 Ansible shell 模块旨在针对基于 UNIX 的目标主机执行 shell 命令。 Ansible 可以运行除任何高复杂度的命令(带管道、重定向)之外的任何命令。 您还可以使用 Ansible shell 模块执行 shell 脚本。 Ansible shell 的主要优势在于,除了任何高复杂度的命令(带管道和分号)之外,从安全角度来看,这可能是一个劣势,因为一个错误就可能付出很大代价并破坏系统完整性。
让我们看看在 playbook 和 Adhoc 中使用 Ansible shell 模块的语法 playbook 中 Ansible shell 模块的语法playbook 的美妙之处在于它的外观和编写方式。 playbook 用 YAML 编写,因此很容易理解。 下面的图片演示了 Adhoc 命令将如何转换为 Ansible playbook 的 play。 ![]() Adhoc 中 Ansible shell 模块的语法下图显示了 Adhoc 方式中 Ansible shell 模块的快速语法。 ![]() 示例要在使用 Shell 或 command 模块的单个任务中执行单个命令。 假设您想获取远程服务器的日期。 并且远程服务器位于名为 testservers 的主机组下。 步骤 1:登录到 Ansible 服务器。 步骤 2:下面是一个示例,它使用 Shell 模块在远程主机中执行单个命令。 在上面的示例中,我们针对名为 testservers 的主机组运行我们的 playbook,并执行一个简单的 date 命令,并将该命令的输出保存到一个名为 datecmd 的 Register 变量中。 在最后一行,我们检索注册的变量,并且仅打印存储在 datecmd 的 stdout 属性中的日期命令输出。 示例 2:在单个 shell 中执行多个命令Shell 可以在单个 shell play 中接受各种命令。 此外,您可以使用 Ansible shell 模块编写您的 shell 脚本。 在下面的示例中,我们对一些 shell 命令进行了分组,以执行受控且干净的 tomcat 重新启动。 playbook 旨在按顺序执行以下步骤,例如
下一主题Ansible 模板 |
我们请求您订阅我们的新闻通讯以获取最新更新。