在 Ansible playbook 中,with_items
是一个强大的循环功能,它允许我们对一组项(items)重复执行任务。这在处理具有相同配置的多个主机或执行相同操作的多个任务时非常有用。让我们来看一些示例如何使用 with_items
。
安装 Ansible
首先,我们需要在我们的控制节点上安装 Ansible。可以按照 Ansible 的官方文档(https://docs.ansible.com/ansible/latest/installation_guide/index.html)中的说明进行安装。
创建 Ansible playbook
接下来,我们创建一个新的 Ansible playbook 文件 playbook.yml
,用于演示 with_items
功能。
---
- hosts: webservers
become: yes
tasks:
- name: Update packages
yum:
name: "{{ item }}"
state: latest
with_items:
- httpd
- mysql
- php
- name: Start services
service:
name: "{{ item }}"
state: started
with_items:
- httpd
- mysql
- php-fpm
解释 playbook 中的任务
hosts: webservers
:定义了我们要操作的主机组。become: yes
:表示使用特权模式运行任务。tasks
:定义了我们要执行的任务列表。
接下来的任务示例:
Update packages
任务使用yum
模块来安装指定的软件包。with_items
部分列举了要安装的软件包列表。Start services
任务使用service
模块来启动指定的服务。with_items
部分列举了要启动的服务列表。
在这个例子中,with_items
允许我们针对每个指定的软件包或服务重复执行任务。
运行 playbook
保存 playbook 文件后,我们可以使用以下命令来运行该 playbook:
ansible-playbook playbook.yml
Ansible 会将 playbook 的内容发送到我们指定的主机组中的每个主机,并执行其中的任务。
总结
with_items
是 Ansible playbook 中非常有用的循环功能。它可以让我们针对一个项目列表重复执行任务,从而简化操作和管理多个主机或任务的过程。在实际应用中,可以根据需要使用 with_items
来优化 Ansible playbook 的编写,提高自动化效率。
希望本篇博客能够帮助你更好地使用 Ansible!如果你有任何问题或建议,请随时提出。
本文来自极简博客,作者:编程狂想曲,转载请注明原文链接:Ansible playbook - 循环运行任务(with_items)