02-playbook 剧本.note

noteId: 2A9E539428544618867200F399D2FF58 · 原始路径:/ALL/Ansible 自动化管理/Ansible 配置合集/Ansible 自动化管理-Linux/Ansible 基础配置/02-playbook 剧本.note · 图片:5 · 附件待处理:0

 
·注意:有时评分表会运行两次剧本,因此写剧本时必须要保证,第二次运行时,不会出现 changed,不会报错,如果是使用模块,那么模块有幂等性,可以不用管,但是如果是使用 raw 和 shell,那么就必须加上:“changed_when: false”
 
 
 
一、语法
 
---
- name: Playbook    # 定义一个任务
  hosts: all    # 定义要执行该任务的主机有哪些
  gather_facts: False    # 关闭环境信息收集,提升响应速度
  
  tasks:
    - name: 
      [模块]
 
 
 
 
二、书写剧本:
 
 
1、init:
vim 01-init.yml
 
 
 
·当使用 raw、shell 进行 apt 时的幂等性:
 
因为 只有当 apt下载的软件包没有被下载时,才会有 will be installed 的输出,让 apt 的输出注册到 output 变量中,在 chenged_when 中定义,当 will be installed 存在 output 变量中时,如果存在,就会输出 true,而changed_when 接收到 true后就会输出 changed,如果不存在,那么就会输出 false,而 changed_when 接收到 false 后就会输出 OK
 
 
 
 
 
2、iptables:
 
·注意:配置iptables时,注意要允许本机(Ansible主控端)进行访问(允许TCP22端口即可),否则Ansible主控端将无法访问到 被控端
 
 
·方式一(推荐):先在被控端上配置好 iptables,然后将 iptables 保存到文件中,然后使用 copy 模块将其 copy到被控端:
 
 
 
 
 
·方式二:使用 iptables 模块
vim 02-iptables.yml
·常用参数:
ansible.builtin.iptables:
  table:    //指定表(filter、nat)
  chain:    //指定链(INPUT、OUTPUT、POSTROUTING)
  source:    //源地址
  policy    //设置默认策略(ACCEPT、DROP)
  jump      //设置操作(ACCEPT、DROP)