play高级用法

play高级用法

控制并发更新主机的数量

# 指定具体数字
---
- name: test1 serial
  hosts: all
  serial: 2               # 每次同时处理2个主机
  max_fail_percentage: 50 # 当两台机器中一台执行失败,既终止task
  
  
或者

#也可以使用百分比进行控制
---
-  name: test2 serail
   hosts: all
   serial: "20%"   #每次只同时处理20%的主机

loop循环

loop循环创建用户,ansible引用变量是“{{ 变量名 }}”,loop的默认变量名是item
cat users.yml
---
- name: 批量创建用户
  hosts: node1
  tasks:
    - name: 创建用户task
      user:
        name: "{{ item }}"
        state: present
      loop:
        - testuser1
        - testuser2

ansible错误控制

# 结果有3种,ok(无变化)  changed(有变化)  failed(失败)
1.task控制的条件判断错误控制
when -> skip
changed_when -> changed/ok
failed_when -> failed

2.网络相关的错误
unreachable,一般和ssh端口,ssh密码,ssh免密,sudo提权配置等等网络和ssh服务配置相关的部分

3.task的错误忽略
ignore_errors -> ignored,忽略预期的错误,我们可能预料到task的位置会出现错误,所以我们为了让执行这
个task的节点可以继续运行下去,我们需要对task设置错误忽略

4.错误控制结合使用的内容
register变量
facts变量
magic变量
debug模块

5.错误控制里面有个错误控制三件套
block: 定义一组运行的task
rescue: 如果block里面的task运行失败了,将会使用rescue部分定义的task进行回滚(roll out)
always: 不管block和rescue运行的结果如何,都会执行。

ansible-handers

# play层面设置force_handlers: yes
# 防止handlers遇到palybook执行错误,不执行hanlers,(因为handlers默认等所有任务执行完成并成功后才执行)

posted @ 2024-08-02 14:31  itk  阅读(46)  评论(0)    收藏  举报