首页 > 其他分享 >ansible中的yaml格式

ansible中的yaml格式

时间:2024-05-20 22:40:43浏览次数:34  
标签:tasks name nginx 列表 yaml ansible hosts 格式

ansible软件的playbook编写需要遵循YAML语法,因此我们得先学一下YAML语法结构

在线json转换yaml

https://oktools.net/json2yaml
写完yaml,不确定缩进关系对不对,去在线yaml网站,格式化,判断语法是否正常。
json格式 可以在网络中传输,可以发给后端 python (python的数据类型,去解析json的数据格式,处理);也可以发给前端 (js, js解析json的数据格式,然后处理)。运维怎么处理json,用jq命令,(获取到json数据后,提取json的数据)。

yaml特点

1.严格的缩进(空格数)表示层级关系(一般敲2个空格表示一个层级关系)
2.不要使用tab键
3.冒号: 后面一定得有空格
4.短横线- 后面一定得有空格。短横线表示列表
5.剧本文件名必须是yaml或者yml,程序可以读取,以及vim提供颜色高亮

yaml剧本例子:安装nginx

yaml风格1
字典参数格式

点击查看代码
1.先写好yaml
[root@master-61 /opt]#cat install_nginx.yml 
---
- name: 这是一个安装nginx的剧本
  hosts: nfs
  tasks: 
  - name: 01 安装nginx
    yum: 
      name: nginx
      state: installed
  - name: 02 启动nginx
    systemd:
      name: nginx
      state: started



2.可以去验证yaml语法是否正确

方法1,用ansible-playbook命令.仅测试剧本语法是否正确,不会真去执行。
ansible-playbook  -C  install_nginx.yml 

解读yaml

1.yaml以 --- 开头,表示这是一个yaml文件

  1. yaml使用# 表示注释符号

  2. yaml中的字符串一般不加引号,除非需要引用变量时候

Yaml列表

使用"- "(减号加一个或多个空格)作为列表项,yaml的列表在playbook中极重要,必须得搞清楚它的写法。yaml一个列表就是一个短横线 - ,转变为json类型看效果 就是 [ ]

"男同学": 
  - 张三 #列表1
  - 樵夫 #列表2
  - 于超 #列表3

"女同学":
  - 花花
  - 月月
  - 兔兔

列表数据用一个短横杠+空格组成

在playbook中,列表是定义一个局部环境,名字可有可无,表示定义一个范围,范围内的属性都属于该列表。

---
    - name: list1              # 列表1,同时给了个名称
      hosts: 10.0.0.7         # 指出了hosts是列表1的一个对象
      remote_user: root        # 列表1的属性
      tasks:                   # 还是列表1的属性

    - hosts: 10.0.0.7    # 列表2,但是没有为列表命名,而是直入主题
      remote_user: root
      sudo: yes
      tasks:

短横线用于定义列表
多个短横线,同一个缩进下的元素,表示一个列表中的多个元素

- xxx
- ooo
- ddd
- ccc
"xxx", "ooo","ddd","ccc"识别为,同一个列表下的多个元素

一个短横线,同一个缩进下的元素,表示是一个整体(单个元素),是大字符串

- xxx
  ooo
  ddd
  ccc
其实处理的数据是 "xxx ooo ddd ccc"

yaml中定义hosts的信息语法

# 方式一:定义所管理的主机IP地址
- hosts: 192.168.178.111
  tasks: 
    动作...

# 方式二:定义所管理主机的名字
- hosts: backup01
  tasks:
    动作...

# 方式三:定义管理主机
- hosts: 192.168.178.111, rsync01
  tasks:
    动作...

# 方式四:管理所有主机
- hosts: all
  tasks:
    动作...

关于剧本的tasks任务部分

tasks任务部分,就是决定用什么模块,做什么事,以及模块对应的参数的风格

字典风格的模块参数

[root@master-61 /opt]#cat install_nginx.yml 
---
- name: 这是一个安装nginx的剧本
  hosts: 172.16.1.7,172.16.1.8,nfs
  tasks: 
  - name: 01 安装nginx
    yum: 
      name: nginx
      state: installed
  - name: 02 启动nginx
    systemd:
      name: nginx
      state: started

变量风格的模块参数

[root@master-61 /opt]#cat vars_install_nginx.yml 
---
- name: 这是一个安装nginx的剧本
  hosts: 172.16.1.7,172.16.1.8,nfs
  tasks: 
  - name: 01 安装nginx
    yum: name=nginx state=installed 
  - name: 02 启动nginx
    systemd: name=nginx state=started
  - name: 03 设置nginx开机自启
    systemd: name=nginx enabled=yes

标签:tasks,name,nginx,列表,yaml,ansible,hosts,格式
From: https://www.cnblogs.com/leigungun/p/18202511

相关文章

  • MySQL几种编码格式的区别(utf8、utf8mb4、utf8mb4_general_ci、utf8mb4_unicode_ci 、u
    https://cloud.tencent.com/developer/article/1872879存储字符集utf8和utf8mb4utf8是Mysql中的一种字符集,只支持最长三个字节的UTF-8字符,也就是Unicode中的基本多文本平面。要在Mysql中保存4字节长度的UTF-8字符,需要使用utf8mb4字符集,但只有5.5.3版本以后......
  • Springboot Data Jdbc实体类json格式存储
    日常需求中有些需求需要在某字段存储json格式数据,例如日志审计接口传参数据等1.首先我们得保证数据库字段为text或者json2.设置读转换和写转换器importcom.fasterxml.jackson.databind.ObjectMapper;importorg.springframework.core.convert.converter.Converter;importo......
  • Ansible2-安全自动化指南-全-
    Ansible2安全自动化指南(全)原文:zh.annas-archive.org/md5/CFD4FC07D470F8B8541AAD40C25E807E译者:飞龙协议:CCBY-NC-SA4.0前言IT正在经历一次巨大的范式转变。从以正常运行时间作为IT成功的衡量标准的时代,我们正在转向不可变基础设施的理念,根据需求,我们可以自动地随时启......
  • 如何快速断行、分割行、切割行、换行、限制每行字数、平均分割每行字数、序号自动换行
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 打开工具,切换到“文章工作域”(嗯...默认就是) 找到这个,多内容断行分割点击打开,出现如下窗口设置   相关的设置都在上面,涉及的功能有:限制每行字数、根据行数均等字数的换行、整理出指定关键内容起......
  • vscode配置格式化工具Prettier
    1,安装Prettier插件2,设置VsCode默认格式化工具为Prettier.1)通过菜单打开设置页面:file/preferences/settings2)设置默认格式化工具为Prettier3,配置默认参数4,保存文件自动格式化 5, 在项目中配置代码规范1)打开官网: Prettier中文网·Prettier是......
  • Ansible自动化运维工具
    目录一、什么是Ansible1、简介2、架构3、工作流程二、部署Ansible批量管理1、涉及主机2、安装部署Ansible2.1、yum安装2.2、其他方式3、设置免密登录3.1、控制节点设置hosts解析3.2、生成密钥对3.3、将公钥发送给受管节点3.4、测试免密登录4、定义主机清单4.1、ansible常见的配置......
  • opencv imshow 函数显示 float64 格式错误_cv2_imshow float
    CSDN搬家失败,手动导出markdown后再导入博客园在模拟高斯光斑的过程中,手动生成了下图所示的图像,使用cv2.imwrite()函数保存正常。![[output/attachments/fa4dbbeff2a5a1f2f99acd241f220fc7_MD5.png]]然而在使用cv2.imshow()函数显示时却出现错误![[output/attachments/e80ba8......
  • wimlib可以处理多种Windows映像文件格式,包括WIM、ESD、VHD等,而且还支持高级功能,如压缩
    可以将wimlib视为DISM的替代品之一。虽然DISM是Windows操作系统中的内置工具,但wimlib提供了类似的功能,并且更加灵活和跨平台。wimlib可以处理多种Windows映像文件格式,包括WIM、ESD、VHD等,而且还支持高级功能,如压缩和转换映像文件格式、创建和挂载虚拟磁盘等。它是一个开源软......
  • 前端传递不同格式时间后端统一转化
    这几天遇到了一个问题,就是我后端再接受查询条件的时候,关于条件我都是用TimeQuery来接受的,但是因为前端的比较混乱,就导致了有些传参是年月日,有些传参是年月日时分秒格式,就导致我后端一直出转化异常的错误,当时就是叫前端传参都用下统一的格式packagecom.state.time;@Datapubli......
  • pdf格式书籍的一种方便读法
    pdf格式书籍的一种方便读法pdf格式书籍因为无法适屏、无法记录阅读进度(PC上可以)、无法做笔记等缺点,极其不适合在移动设备上阅读。难怪大家抱怨: 俗话说“穷则思变”,动动脑筋,想到了一种比较不错的阅读pdf格式书籍的方法,即:转成图片,在平板等稍大屏幕的设备上阅读。 示例:手上......