12、ansible-with_items迭代 、when条件判断、register保存命令执行结果
一、with_tiems 迭代
当有需要重复性执行的任务时,可以使用迭代机制 (with_items)
with_items模块一般放到模块的末尾, 与模块同一缩进级别
{{ item }}将循环迭代with_items中的值
- hosts: web2 tasks: - name: fuzhi copy: src: /home/roles/mysql/files/20231026/ dest: /opt/igom/sql/20231026/ owner: root group: root mode: '0755' - name: 拷贝文件到容器 command: docker cp /opt/igom/sql/20231026/ mysql:/tmp - name: 导入amcp数据库 command: docker exec -it mysql /bin/bash -c 'mysql -uroot -p123456 amcp < /tmp/20231026/{{ item }}' with_items: - 001_amcp.sql - 003_xs_suite.sql - 004_xs_suite_content.sql - 005_xs_suite_std.sql - 006_xs_suite_std_kpi.sql - 007_xs_tpl.sql - 008_xs_tpl_rel.sql - 009_xs_tpl_suite.sql - 010_xs_suite_std_ins.sql - 011_xs_suite_std_sub_ins.sql - name: 导入iamdb数据库 command: docker exec -it mysql /bin/bash -c 'mysql -uroot -p123456 iamdb < /tmp/20231026/{{ item }}' with_items: - 002_iamdb.sys_menu.sql
二、when条件判断
条件测试:如果需要根据变量、facts或此前任务的执行结果来做为某task执行与否的前提时要用到条件测试, 通过when语句实现,在task中使用,jinja2的语法格式 when语句 在task后添加when子句即可使用条件测试;when语句支持Jinja2表达式语法
若是when条件满足,则会执行上边的command
三、register 保存命令执行结果
与debug模块搭配使用,register模块用于获取,debug模块用于将结果输出
注意:可以与when搭配使用 (将register获取的信息作为when的判断条件)
示例:
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/17790809.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步