• 【Ansible】YAML语法


    YAML语法

    scalar标量

    name:wang
    
    • 1

    或者使用缩进的方式

    name:
      wang
    
    • 1
    • 2

    标量是最基本的,不可再分的值,其中包括

    • 字符串
    • 布尔值
    • 整数
    • 浮点数
    • Null
    • 时间
    • 日期

    Dictionary字典

    字典由key和value构成,且用:分隔,所有的key和value都可以放在同一行,也可以放在不同行

    account:{ name:wang,age:30 }
    
    • 1

    缩进

    account:
       name:wang
       age:30
    
    • 1
    • 2
    • 3

    List列表

    列表由多个元素组成,每个元素放在不同行,都以“-”打头,并且“-”后有一个空格,或将”[ ]“括起来放同一行

    course:
      - linux
      - golang
      - python
    
    • 1
    • 2
    • 3
    • 4

    也可以使用[ ]

    course:[ Linux,golang,python ]

    Shell与YAML对比

    #SHELL脚本实现
    #!/bin/bash
    # 安装Apache
    yum install --quiet -y httpd 
    # 复制配置文件
    cp /tmp/httpd.conf /etc/httpd/conf/httpd.conf
    cp/tmp/vhosts.conf /etc/httpd/conf.d/
    # 启动Apache,并设置开机启动
    systemctl enable --now httpd 
    #Playbook实现
    ---
    - hosts: all
     remote_user: root
     gather_facts: no
      
     tasks:
       - name: "安装Apache"
         yum: name=httpd
       - name: "复制配置文件"
         copy: src=/tmp/httpd.conf dest=/etc/httpd/conf/
       - name: "复制配置文件"
         copy: src=/tmp/vhosts.conf dest=/etc/httpd/conf.d/
       - name: "启动Apache,并设置开机启动"
         service: name=httpd state=started enabled=yes
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    Playbook组件

    Target定义Playbook的远程主机组

    常用参数

    • hosts定义远程主机组
    • user执行该任务的用户
    • sudo设置为yes的时候,执行任务使用root权限
    • sudo_user指定sudo普通用户
    • connection默认基于SSH连接客户端
    • gather_facks获取远程主机facts基础信息

    Variable定义playbook使用的变量

    常用参数

    • vars定义格式,变量名:变量值
    • vars_files指定变量文件
    • vars_prompt用户交互模式自定义变量
    • setup模块去远程主机的值

    Task定义远程主机上执行的任务列表

    常用参数

    • name任务名称,也是屏幕显示信息
    • action定义执行动作
    • copy复制本地文件到远程主机
    • template复制本地文件到远程主机,可以引用本地变量
    • service定义服务状态

    Handler:当服务配置文件发生变化的时候需进行的操作,比如:重启服务,重新加载配置

  • 相关阅读:
    Web前端开发的过程:深入剖析与精彩演绎
    时间与日期
    提升创意设计水平:十个必备的平面设计素材网站
    【Git技巧】第八篇 git历史提交版本回退(可切换任意已经提交的版本)
    新零售SaaS架构:线上商城系统架构设计
    STM32存储左右互搏 I2C总线FATS读写FRAM MB85RC1M
    Auddly Music Server的编译和安装
    申报高企的条件你真的满足了吗?
    AOP、IOC、注解、反射
    手把手教你用Python实现自动连接校园wifi,附代码!
  • 原文地址:https://blog.csdn.net/weixin_46532751/article/details/126048360