后来,好多人代替了好多人☁️|

little小新

园龄:2年6个月粉丝:8关注:0

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 中国大陆许可协议进行许可。

posted @   little小新  阅读(71)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起