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的判断条件) 

    示例:

posted @ 2024-06-17 10:33  little小新  阅读(51)  评论(0编辑  收藏  举报