Linux之ansible的playbook剧本(yaml文件)

news/2024/9/18 14:43:05/ 标签: linux, ansible, 运维, 服务器

playbook剧本

一个剧本(即playbook),可以包含多个play
每个play用于在指定的主机上,通过模块和参数执行相应的任务
每个play可以包含多个任务。
任务有模块和参数构成。
paly要建立在ansible文件夹下才能使用
因为yaml文件对格式要求很严格所有本人在编写时会设置一下vim编译器的一些功能
格式

set ai:自动缩进set ts=2:设置tab键缩进两个空格set et:将tab键转换为相应的空格set cursorcolumn:设置光标列
---
- 名字(name): 自己起名职员表(hosts): 要执行的主机场景(tasks):- 名字(name): 任务名称模块名:选项:- 名字(name): 任务名称2模块名:选项:

yaml语法

  1. yaml文件的文件名,一般以yml或yaml作为扩展名
  2. 文件一般以—作为第一行,不是必须的,但是常用
  3. 键值对使用冒号:表示,冒号后面必须有空格。
  4. 数组使用-表示,-后面必须有空格。
  5. 相同的层级必须有相同的缩进。如果缩进不对,则有语法错误。每一级缩进,建议2个空格。
  6. 全文不能使用tab,必须使用空格。
    下面用例子帮助大家了解并介绍一些模块
# 编写用于测试连通性的playbook,相当于执行ansible all -m ping
[root@server ansible]# vim test.yml
---[root@server ansible]# vim test.yml
---
- hosts: alltasks:- ping:
- hosts: alltasks:- ping:# 在dbs组的主机和web1上创建/tmp/demo目录,权限是0755。将控制端/etc/hosts拷贝到目标主机的/tmp/demo中
[root@server ansible]# vim fileop.yml
---
- name: create dir and copy filehosts: dbs,web1    # 这里的名称,必须出现在主机清单文件中tasks:- name: create dirfile:path: /tmp/demostate: directorymode: '0755'- name: copy filecopy:src: /etc/hostsdest: /tmp/demo/hosts

特殊符号 | >

|和>的区别:|它保留换行符,>把多行合并为一行

# 通过copy模块创建/tmp/1.txt,文件中有两行内容,分别是Hello World和ni hao
[root@server ansible]# vim f1.yml
---
- name: play 1hosts: webserverstasks:- name: mkfile 1.txtcopy:dest: /tmp/1.txtcontent: |Hello World!ni hao.# 通过copy模块创建/tmp/2.txt,文件中有一行内容,分别是Hello World! ni hao
[root@server ansible]# vim f2.yml 
---
- name: play 1hosts: webserverstasks:- name: mkfile 2.txtcopy:dest: /tmp/2.txtcontent: >Hello World!ni hao.

硬盘管理

常用的分区表类型有:MBR(主引导记录)、GPT(GUID分区表)
MBR最多支持4个主分区,或3个主分区加1个扩展分区。最大支持2.2TB左右的硬盘GPT最多支持128个主分区。支持大硬盘

parted模块

用于硬盘分区管理

常用选项:

device:待分区的设备
number:分区编号
state:present表示创建,absent表示删除
part_start:分区的起始位置,不写表示从开头
part_end:表示分区的结束位置,不写表示到结尾

编写逻辑卷创建以及挂载
下面通过一个例子介绍该模块一般如何使用

# 在web1主机上,对/dev/vdc进行分区,创建1个1GB的主分区
---
- name: disk managehosts: web1tasks:- name: create a partitionparted:device: /dev/vdcnumber: 1state: presentpart_end: 1GiB# 继续编辑disk.yml,对/dev/vdc进行分区,创建1个新的5GB的主分区- name: add a new partitionparted:device: /dev/vdcnumber: 2state: presentpart_start: 1GiBpart_end: 6GiB# 继续编辑disk.yml,创建名为my_vg的卷组,它由上面创建的vdc1和vdc2构成
... ...- name: create my_vglvg:vg: my_vgpvs: /dev/vdc1,/dev/vdc2# 继续编辑disk.yml,在my_vg卷组上创建名为my_lv的逻辑卷,大小1G
... ...- name: create my_lvlvol:vg: my_vglv: my_lvsize: 1G# 继续编辑disk.yml,格式化my_lv为ext4
... ...- name: mkfs my_lvfilesystem:dev: /dev/my_vg/my_lvfstype: ext4# 继续编辑disk.yml,将my_lv挂载到/data
... ...- name: mount my_lvmount:path: /datasrc: /dev/my_vg/my_lvfstype: ext4state: mounted

http://www.ppmy.cn/news/1526328.html

相关文章

精简实用!一分钟搭建文件管理服务!

大家好,我是 Java陈序员。 今天,给大家介绍一款精简实用的文件托管服务,一分钟即可搭建使用! 关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。 项目介绍 Du…

Linux 入门:简单的基础操作

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言Linux 入门:从基础操作到 WSL2 安装文章有误敬请斧正 不胜感恩!1. 什么是 Linux?2. Linux 和其他系统有啥不同?3. Linux 的主要组成4. 常见 Linux 发行版5. 基本…

【深度学习】搞懂卷积神经网络(一)

卷积神经网络是一种具有局部连接,权重共享等特性的深层前馈神经网络。一般是由卷积层,池化层,全连接层交叉堆叠而成,使用反向传播算法进行训练。卷积神经网络具有一定程度上的平移,缩放和旋转不变性,较前馈…

k8s 中的 Service 简介

前言 k8s 集群中的每一个 Pod 都有自己的 IP 地址,那么是不是有 IP 了,访问起来就简单了呢,其实不然。 因为在 k8s 中 Pod 不是持久性的,摧毁重建将获得新的 IP,客户端通过会变更 IP 来访问显然不合理。另外 Pod 还经…

每天五分钟深度学习PyTorch:不同的神经网络层设置不同的学习率

本文重点 我们前面学习了基本网络模型的搭建,获取网络模型的子结构,以及优化器optim,我们发现我们设置优化器的时候,是对整个模型设置的,也就是说整个模型的参数学习率是一样,本节课程我们学习如何给不同的网络层设置不同的学习率。主要还是通过优化器optim来实现的,本…

Radware 报告 Web DDoS 攻击活动

新一代 HTTPS 洪水攻击的频率和强度急剧增加,攻击者引入的复杂程度也在迅速提高。2024 年上半年,Web 分布式拒绝服务 (DDoS) 攻击的频率和强度显著增加。其中很大一部分活动可以归因于受政治紧张局势驱使的黑客活动分子。 众所周知,当今的黑…

Python中匹配HTML标签时<.*>和<.*?>有什么区别

在讨论Python中匹配HTML标签时使用的正则表达式<.*>与<.*?>的区别&#xff0c;实际上是在讨论正则表达式中的贪婪模式&#xff08;Greedy Mode&#xff09;与非贪婪模式&#xff08;Non-Greedy Mode&#xff09;或懒惰模式&#xff08;Lazy Mode&#xff09;之间的…

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADCDMA采样时&#xff0c;遇到了一些小坑记录一下&#xff1b; 一、ADCDMA采样时进入死循环&#xff1b; 解决方法&#xff1a;ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高&#xff0c;且增大ADCHAL_ADC_Start_DMA(&ha…

git 命令---想要更改远程仓库

在 Git 中&#xff0c;origin 是默认的远程仓库名称。可以使用以下命令查看当前 Git 仓库的 origin 名称及其对应的 URL&#xff1a; git remote -v这个命令会列出所有配置的远程仓库及其名称&#xff0c;其中 origin 通常是克隆时自动设置的默认远程仓库名称。输出示例&#…

堆排序,快速排序

目录 1.堆排序 2.快速排序 1.hoare版本 2.挖坑法 3.前后指针法 注意点 1.堆排序 void Swap(int* a, int* b) {int tmp *a;*a *b;*b tmp; } void adjustdown(int* a, int n, int parent) {int child parent * 2 1;while (child < n){if (child 1 < n &&am…

<Linux> 进程间通信

目录 一、进程间通信介绍 1. 进程间通信概念 2. 进程间通信目的 3. 进程间通信的本质 4. 进程间通信发展 5. 进程间通信分类 管道&#xff08;文件缓冲区&#xff09; System V IPC POSIX IPC 二、管道 1. 匿名管道 1.1 匿名管道原理 1.2 pipe系统调用 1.3 匿名管道的使用 1.4…

Leetcode 第 414 场周赛题解

Leetcode 第 414 场周赛题解 Leetcode 第 414 场周赛题解题目1&#xff1a;3280. 将日期转换为二进制表示思路代码复杂度分析 题目2&#xff1a;3281. 范围内整数的最大得分思路代码复杂度分析 题目3&#xff1a;3282. 到达数组末尾的最大得分思路代码复杂度分析 题目4&#xf…

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef 1. AOSPXRef1.1. http://aospxref.com/android-14.0.0_r2/1.2. build/envsetup.sh 2. AndroidXRef2.1. http://androidxref.com/9.0.0_r3/2.2. build/envsetup.sh 3. HELLO AndroidReferences 1. AOSPXRef http://aospx…

Go中如何找到哪里依赖了某个module,如何找到所有module的最大GoVersion

如何找到哪里依赖了某个module 举例&#xff1a;如何找到哪个模块依赖了 github.com/Shopify/toxiproxy&#xff1f; 你可以使用以下方法查找 github.com/Shopify/toxiproxy 是通过哪个依赖模块引入的&#xff1a; 1. 使用 go mod graph go mod graph 命令可以输出模块的依…

四、(JS)JS中常见的加载事件

一、文档加载监听 &#xff08;1&#xff09;抛出疑惑&#xff0c;什么是文档加载监听&#xff1f;为什么要有这个东西&#xff1f; 老样子&#xff0c;我们先讲一个场景&#xff0c;带着大家熟悉为什么会有文档加载监听&#xff0c;是来解决什么问题来着的。 我们先看下这段…

【操作系统】二、进程管理:4.死锁(银行家算法、系统安全状态、静态分配策略、资源有序分配法)

五、死锁 文章目录 五、死锁1.产生1.1产生情况1.2产生的4个必要条件 2.处理方式2.1预防死锁2.1.1破坏互斥条件2.1.2破坏请求和保持条件2.1.3破坏不可抢占条件2.1.4破坏循环等待条件 2.2避免死锁2.2.1系统安全状态❗2.2.2银行家算法 2.3检测死锁2.4解除死锁 死锁&#xff1a;资源…

Nginx中return和rewrite的区别

引言 在Nginx中&#xff0c;return和rewrite都用于重定向请求&#xff0c;但还是有区别&#xff0c;写法也不一样。 1、return和rewrite区别 执行方式&#xff1a; return&#xff1a;立即终止当前请求处理流程&#xff0c;并返回指定的 HTTP 状态码和响应头。它是在 Nginx…

若依plus- cloud RuoYiGatewayApplication :8080/(ruoyi-gateway)启动不了,报错!

报错内容如下&#xff1a; Error starting ApplicationContext. To display the condition evaluation report re-run your application with debug enabled. 2024-09-11T09:16:50.29508:00 ERROR 10296 --- [ruoyi-gateway] [ main] o.s.boot.SpringApplication …

TensorFlow 笔记

------------------------------- 1. 创建模型阶段 ------------------------------- 1. Activation 激活函数&#xff0c; 属于模型的一个层&#xff0c;可以用于中间层&#xff0c;输出层。 ReLU (Rectified Linear Unit), 修正线性单元&#xff0c;即 max(0, x)&#xff…

Anolis OS 8.8 CentOS8离线安装mysql-8.0.9

下载mysql安装包&#xff1a; mysql下载地址 在Linux系统中&#xff0c;mysql的安装包除了要区分系统和cpu架构之外&#xff0c;还区分安装方式&#xff0c;下载不同的包&#xff0c;安装方式也完全不一样&#xff0c;安装完成后的效果也完全不一样。 我之前下载的包按照官方…