当前位置: 首页 > news >正文

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • VMwareWorkstation安装UOS系统(1070版本)教程
  • 如何识别和防范跨站请求伪造(CSRF)?
  • YOLO改进模块后不出现Glops参数问题
  • 【408 数据结构】第2章 线性表
  • PHP-SER-libs靶场通关(1-9)
  • 数据结构基础详解(C语言): 栈的括号匹配(实战)与栈的表达式求值特殊矩阵的压缩存储
  • 国家新标准引领,油烟净化器为烟火气添清新活力
  • 网络安全(sql注入2,less3)
  • 苹果的“AI茅”之路只走了一半
  • TeamTalk数据库代理服务器
  • AI问答-数据库:理解头表和行表
  • ModuleNotFoundError: No module named ‘keras.layers.core‘怎么解决
  • 【CSS】mask-image属性的详细介绍
  • Java中校验导入字段长度与数据库字段长度一致性
  • 图为科技基于昇腾AI,打造智慧工厂检测解决方案
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • co.js - 让异步代码同步化
  • Consul Config 使用Git做版本控制的实现
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • EOS是什么
  • PV统计优化设计
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React16时代,该用什么姿势写 React ?
  • ReactNativeweexDeviceOne对比
  • React-redux的原理以及使用
  • Spring Boot快速入门(一):Hello Spring Boot
  • V4L2视频输入框架概述
  • 复杂数据处理
  • 给Prometheus造假数据的方法
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 前端js -- this指向总结。
  • 什么软件可以剪辑音乐?
  • 实现菜单下拉伸展折叠效果demo
  • 使用parted解决大于2T的磁盘分区
  • 用element的upload组件实现多图片上传和压缩
  • ​linux启动进程的方式
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​你们这样子,耽误我的工作进度怎么办?
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (ZT)薛涌:谈贫说富
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (十八)三元表达式和列表解析
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)http协议
  • (转)JAVA中的堆栈
  • (转)程序员疫苗:代码注入
  • (转)关于pipe()的详细解析
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net Application的目录
  • .Net Web项目创建比较不错的参考文章