0
点赞
收藏
分享

微信扫一扫

Ansible中的任务执行控制

闲云困兽 2022-01-04 阅读 33

一.循环
#循环迭代任务#
#1.简单循环#

#实例#

2.循环散列或字典列表

练习: 对下面内容进行编辑使其能够得出对应的值

二.条件

vim test1.yml

(根据rc的值判断/mnt/file是否存在)

 判断vdb是否存在

多条条件组合#

两个条件同时成立时

 波尔值刚好与rc相反

或条件成立

测试题:
建立playbook ~/ansibles/lvm.yml要求如下:
*建立大小为1500M名为exam_lvm的lvm 在westos组中
*如果westos不存在请输出:
  vg westos is not exist
*如果westos大小不足1500M请输出:
  vg westos is less then 1500M
  并建立800M大小的lvm 

 

 

三.触发器

 实例:

练习1: 安装vsftpd服务设置匿名用户可以访问(使用变量)

练习2:安装apache服务设置80端口

- name: install web server
  hosts: all
  vars:
    port: 80
  tasks:
    - name: install httpd
      dnf:
         name: httpd
         state: present

    - name: configure httpd
      lineinfile:
        path: /etc/httpd/conf/httpd.conf
        regexp: "^Listen"
        line: "Listen {{port}}"
      notify:
        - set firewalld for port
        - restart apache

    - name: start httpd
      service:
        name: httpd
        state: started
        enabled: yes

    - name: set firwalld
      firewalld:
        service: http
        state: enabled
        permanent: yes
        immediate: yes
  handlers:
    - name: set firewalld for port
      firewalld:
        port: "{{port}}/tcp"
        state: enabled
        permanent: yes
        immediate: yes

    - name: restart apache
      service:
        name: httpd
        state: restarted

四.处理失败任务
#1.ignore_errors#
#作用:   当play遇到任务失败时会终止

ignore_errors: yes    将会忽略任务失败使下面的任务继续运行

 实例:

 #2.force_handlers#
 作用: #当任务失败后play被终止也会调用触发器进程

实例:

3.changed_when
#作用:  控制任务在何时报告它已进行更改 

实例:

4.failed_when
#当符合条件时强制任务失败 

实例:

5.block

测试练习#
建立playbook ~/westos.yml要求如下:

 

 

 

 

举报

相关推荐

0 条评论