Ansible中Playbook的编写

news2024/11/30 0:46:43

目录

一、playbook

1 简介

2 playbook语法

3 playbook示例

检测语法

列出任务

列出tag

指定执行主机

执行yaml文件 

4 playbook基础

主机与用户

Tasks 列表


一、playbook

1 简介

Playbook与ad-hoc相比,是一种完全不同的运用。

playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。

playbook中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤,并且可以同步或异步的发起任务。

使用playbook可以方便的重用这些代码,可以移植到不同的机器上面。

playbook才是ansible真正强大之处。

2 playbook语法

playbook由YMAL语言编写,以下为playbook常用到的YMAL格式:

        文件的第一行应该以"—"三个连字符开始,表明YMAL文件的开始。

        在同一行中,#之后的内容表示注释,类似于shell,python和ruby。

        YMAL中的列表元素以”-”开头然后紧跟着一个空格,同一个列表中的元素应该保持相同的缩进:

一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格):

name: Example Developer
job: Developer
skill: Elite

字典也可以使用缩进形式来表示

{name: Example Developer, job: Developer, skill: Elite}

3 playbook示例

yaml 以缩进 进行判断

autocmd FileType yaml setlocal ai ts=2 sw=2 et
setlocal ##设定当前文件

ai ##自动退格对齐 auto indent

ts ##tab建长度为2空格 tabstop=2

sw ##缩进长度为2 shiftwidth=2

et ##把tab键变成空格 expandtab

设定一个tab=2个空格

vim apache.yml

Playbook的核心组件:

name            可选,建议使用多用于说明
hosts           受控主机列表
tasks           任务
                用与选择执行部分代码
- hosts: test   单独主机/ 组 /多个组 /all都可
  tasks:
    - name: install apache  任务1
      yum:
        name: httpd
        state: present

    - name: start apache    任务2
      service:
        name: httpd
        state: started

检测语法

[root@ansible ansible]# ansible-playbook --syntax-check apache.yml

列出任务

列出tag

当前未设定标签

指定执行主机

当yal文件中未指定执行主机,可以使用limit进行指定;当文件和命令行指定不同主机时,以文件中指定的主机优先!

执行yaml文件 

 Gathering Facts 采集数量
明等性,检测是否执行过,相同状态一致不执行

 

4 playbook基础

主机与用户

- hosts: server2      		  //指定主机组,可以是一个或多个组,逗号分隔。
  remote_user: root           //指定远程主机执行的用户名
  ---
- hosts: webservers
  remote_user: root            
  become: yes                 //切换用户运行
  become_user: mysql          //指定sudo用户为mysql

Tasks 列表

Play的主体部分是task列表,task列表中的各任务按次序逐个在hosts中指定的主机上执行,即在所有主机上完成第一个任务后再开始第二个任务。如果一个host执行task失败,整个tasks都会回滚。

每一个task必须有一个名称name,这样在运行playbook时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个task的。

 

tasks:
    - name: install apache			//定义任务名

  • 定义一个task,常见的格式:”module: options” 例如:
tasks:
    - name: install apache
      yum: name=httpd state=present		
也可以写成以下格式:
    - name: "apache"
      service:
        name: httpd
        state: started
  • Ansible的自带模块中,command模块和shell模块无需使用key=value格式:
tasks:
  - name: disable selinux
    command: /sbin/setenforce 0
  • 使用 command 和 shell 时,我们需要关心返回码信息:
tasks:
  - name: run this command and ignore the result
    shell: /usr/bin/somecommand
    ignore_errors: True	   		//返回值如果不为0,就会报错,tasks停止。
  • 执行playbook
ansible-playbook apache.yml
ansible-playbook apache.yml --syntax-check    	//检查yaml文件的语法是否正确
ansible-playbook apache.yml --list-task       	//检查tasks任务
ansible-playbook apache.yml --list-hosts      	//检查生效的主机
ansible-playbook apache.yml --start-at-task="start apache"   
//指定从某个task开始运行

检查生效的主机

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.13日报

完成官网国际化配置 Spring boot国际化支持 当我们web项目涉及到国外部署或者国外用户使用时,需要展示不同语言信息,所以就需要国际化支持,下面将讲解Springboot国际化支持操作 1. 修改Springboot application.yml配置 spring: messages…

【Linux】NTP时间同步服务与NFS网络文件共享存储服务器(配置、测试)

一、NTP时间同步服务1、NTP介绍NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正&a…

Android12之apex调试

1.问题在调试libtinyalsa.so中添加log后,但是发现push so后,却没有log打印,why?2.分析以下为libtinyalsa.so的位置/system/lib64/libtinyalsa.so /system/lib/libtinyalsa.so /apex/com.android.vndk.v31/lib64/libtinyalsa.so /a…

C语言rewind和fseek函数的用法详解

前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据。但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写。这种读写方式称为随机读写&…

C语言( 动态内存分配)

目录 一.malloc()和free()(原型都在stdlib.h头文件) 1.malloc() 2.free()函数 3.案例演示 二.calloc() 三.realloc() 在在C语言的内存当中,针对不同的数据我们所存放的位置都是不一样的。内存栈区和静态区系统会自动创建和销毁&am…

RA4M2开发(3)----读取ISL29035数据,并在OLED上显示,串口打印

概述 首先导入必要的库文件,包括I2C驱动和OLED驱动。在代码中配置I2C接口,并初始化I2C驱动。配置ISL29035传感器,包括配置传感器的工作模式和量程。使用I2C读取ISL29035传感器的数据,并将其存储在变量中。初始化OLED驱动&#xf…

【机器学习】第二章-模型评估与选择-西瓜书笔记

文章目录为什么要进行模型评估?- 选择模型与参数在何种数据集上对训练误差进行评估?- 训练集在何种数据集上对泛化误差进行评估?- 测试集如何划分测试集?1 留出法2 交叉验证法3 自助法模型选择和调参的区别?如何模型选…

Pytest学习笔记

Pytest学习笔记 1、介绍 1.1、单元测试 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试 1.2、单元测试框架 测试发现:从多个py文件里面去找到我们测试用例测试执行:按…

WebDAV之葫芦儿·派盘+网盘精灵

网盘精灵 支持WebDAV方式连接葫芦儿派盘。 推荐一款让您的iPhone、iPod、iPad 变成WebDav客户端的软件,支持从WebDav服务器连接葫芦儿派盘服务进行上传和下载件。 网盘精灵让您的iPhone、iPod、iPad 变成WebDav客户端。功能:WebDav操作、文件共享、本地文件管理

jstack排查cpu占用高[复习]

这样就可以看到占用CPU高的代码位置。 总结:就是先查到占用高的应用和具体的线程,然后根据线程到堆积信息查找即可。 不过堆栈信息非十进制,需提前把线程号转为十六进制。 这样就可以看到占用CPU高的代码位置。 总结:就是先查到…

JavaScript------面向对象

目录 一、面向对象编程(OOP) 基本概念 二、类 1、语法 2、通过类创建对象 3、类的属性 4、类的方法 5、构造函数 三、面向对象的三个特点 1、封装 如何确保数据的安全(实现封装的方式): 2、继承 在子类中&a…

【LeetCode】每日一题(4)

目录 题目:1124. 表现良好的最长时间段 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:1124. 表现良好的最长时间…

算法思想 - 回溯算法

Backtracking(回溯)属于 DFS, 本文主要介绍算法中Backtracking算法的思想。回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种…

ChatGPT 类 AI 软件供应链的安全及合规风险

AIGC将成为重要的软件供应链近日,OpenAI推出的ChatGPT通过强大的AIGC(人工智能生产内容)能力让不少人认为AI的颠覆性拐点即将到来,基于AI将带来全新的软件产品体验,而AI也将会成为未来软件供应链中非常重要的一环。在O…

【项目精选】基于WEB的仓库管理系统的设计与实现(论文+视频+源码)

点击下载源码 仓库物品的管理是与我们的日常生活息息相关的一个重大问题。随着我国经济飞速的发展,改革开放的不断深入,企业要想在激烈的市场竞争中立于不败之地,要想继续的发展与生存,没有现代化的管理方式与方法是万万不行的&am…

torch.nn.parameter 生成可更新的 tensor (requires_grad = True)

torch.nn.parameter 是 PyTorch 中的一种特殊类型的 tensor,它主要用于存储神经网络中的参数。这些参数可以被自动求导和被优化器自动更新。使用 torch.nn.Parameter 定义的tensor 会被自动添加到模型的参数列表中。 \quadtorch.nn.Parameter 是继承自 torch.Tensor…

vite+vue3搭建的工程热更新失效问题

前段时间开发新的项目,由于没有技术上的限制,所以选择了vitevue3ts来开发新的项目,一开始用vite来开发新项目过程挺顺利,确实比vue2webpack的项目高效些(为什么选择vite),但是过了一段时间后,不…

android组件化

学习流程:1.开源最佳实践:Android平台页面路由框架ARouter-阿里云开发者社区 (aliyun.com)2.中文ARouter使用API:https://github.com/alibaba/ARouter/blob/master/README_CN.md3.看当前文档后面的代码4.这是通俗易懂的文章:https…

使用 Nodejs、Express、Postgres、Docker 在 JavaScript 中构建 CRUD Rest API

让我们在 JavaScript 中创建一个 CRUD rest API,使用:节点.js表达续集Postgres码头工人码头工人组成介绍这是我们将要创建的应用程序架构的架构:我们将为基本的 CRUD 操作创建 5 个端点:创造阅读全部读一个更新删除我们将使用以下…

【H.264】码流解析 annexb vs avcc

H264码流解析及NALUAVCC和ANNEXB 前者是FLV容器、mp4 常用的。后者 是实时传输使用,所以是TS 一类的标准。VLC显示AVC1就是AVCC AVCC格式 也叫AVC1格式,MPEG-4格式,字节对齐,因此也叫Byte-Stream Format。用于mp4/flv/mkv, VideoToolbox。 – Annex-B格式 也叫MPEG-2 trans…