ansible-yaml

ansible-playbook

简介

playbooks记录并执行Ansible的配置、部署和编排功能。使用yaml格式,文件以yaml或者yml结尾

官方网站:https://docs.ansible.com/ansible/latest/user_guide/playbooks.html#working-with-playbooks

yaml语言

YAML(Yet Another Markup Language)不是标记语言,它是适用于所有编程语言的人类友好数据序列化标准。
使用 YAML 是因为它比 XML 或 JSON 等其他常见数据格式更易于人类读写。此外,大多数编程语言中都有可用于 YAML 的库。

yaml官网:   https://yaml.org/
ansible官网:https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html

play语法简介

语法简介:
几乎每个 YAML 文件都以列表开头。列表中的每一项都是一个键/值对列表,通常称为“哈希”或“字典”。
所有 YAML 文件(无论它们是否与 Ansible 关联)都可以选择---以...,表示文档的开始和结束。
列表的所有成员都是以相同缩进级别开头的行,以破折号和空格开头:"- "。
字典以简单的形式表示(冒号后面必须跟一个空格):key: value。

次行一般书写文件内容、缩进严格、大小写敏感。
key/value可以多行书写也可一行书写,一行书写用,隔开。
value可以是个字符串,也可是list。
一个play需要包括name和tasks,name 是描述;tasks 是动作。
一个name只能包含一个task。
扩展名称yml或者yaml。


例:
 cat yml_file/sshd.yml 
---
- name: change sshd file     # 前面有横线就是列表
  hosts: 192.168.1.1         # 需要执行的主机,可以时IP地址,主机名,inventory组名
  gather_facts: false        # 不收集facts变量
  vars:                      # 设置变量,key-value形式,也可以使用vars_files指定文件的形式
    port: 9222              # 单个变量的键值对
    users:                   # 单个key对应多个值
      - user01
      - user02
  tasks:                    # ansible任务
    - name: add port        # 任务名称
      lineinfile:           # 使用的模块
        path: /etc/ssh/sshd_config
        insertafter: '^#Port 22'
        line: 'Port {{ port }}'
        backup: yes
    - name: add permit user   # 第二个任务
      lineinfile:
        path: /etc/ssh/sshd_config
        line: 'allowusers     {{ users | join(" ") }}'   # 使用join函数连接所有的value值
        state: present 
      notify: rest sshd                      # 触发定义的handlers,表示执行该模块成功后触发
  handlers:
    - name: rest sshd
      service:
        name: httpd
        state: restarted

posted @ 2024-08-01 10:50  itk  阅读(41)  评论(0)    收藏  举报