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

使用Ansible中的playbook

目录

1.Playbook的功能

2.YAML

3.YAML列表

4.YAML的字典

5.playbook执行命令

6.playbook的核心组件

7.vim 设定技巧

示例


1.Playbook的功能

playbook 是由一个或多个play组成的列表
Playboot 文件使用YAML来写的

2.YAML

#简介#
是一种表达资料序列的格式,类似XML

#特点#
1、可读性好
2、和脚本语言交互性号
3、易于实现
4、适用程序执行流梳理方式
5、可扩展性强  

#语法简介#

缩进严格
大小写敏感
key / value 可以多行书写也可一行书写 一行书写用 隔开
value 可以是个字符串 也可是 list
一个 play 需要包括 name tasks
name 是描述
tasks 是动作
一个 name 只能包含一个 task
扩展名称 yml 或者 yaml

3.YAML列表

[Linux,C++,Java,Python]- Linux
- C++
- Java
- Python

4.YAML的字典

字典作用:存放键值
name:westos
age:12
jobs:linux
=
{name: "westos", age: "12", jobs: "linux"}

5.playbook执行命令

ansible-playbook xxx.yml--check|-C         //检测,进行测试,但不会运行
--syntax-check         //check language,检测语法
--list-hosts         //列出hosts
--list-tags         //列出tag
--list-tasks         //列出task
--limit                 //指定执行主机
-v -vv                 //现实过程

6.playbook的核心组件

name         //可选,建议使用多用于说明
hosts         //受控主机列表tasks             //任务/用与选择执行部分代码

7.vim 设定技巧

autocmd FileType yaml setlocal ai ts=2 sw=2 et        //当文件为yaml类型,自动执行命令setlocal         //设定当前文件
ai                 //自动退格对齐 auto indent
ts                 //tab建长度为2空格 tabstop=2
sw             //缩进长度为2 shiftwidth=2
et                 //把tab键变成空格 expandtab

示例

设置HTTPD服务器

  1. 安装HTTPD服务
  2. /var/www/html目录下创建一个名为index.html的文件,其中内容为www.westos.org
  3. 创建一个名为vhosts.conf的虚拟主机配置文件,包含了3个虚拟主机的信息,分别是默认主机、bbs.westos.orglogin.westos.org,并在文件末尾加上一个<Directory>
  4. /var/virtual/westos.org/login/html目录下创建一个目录
  5. /var/virtual/westos.org/bbs/html目录下创建一个目录
  6. /var/virtual/westos.org/bbs/html目录下创建一个名为index.html的文件,其中内容为bbs.westos.org
  7. /var/virtual/westos.org/login/html目录下创建一个名为index.html的文件,其中内容为login.westos.org
  8. 启用firewalld的http服务,并永久生效
  9. 重启httpd服务,但不在开机时启动该服务
- name: set up httpdhosts: hosttasks:- name: install httpdyum:name: httpdstate: present- name: create index.htmlcopy:dest: /var/www/html/index.htmlcontent: www.westos.org- name: create virtual hostcopy:content: |+<VirtualHost _default_:80>DocumentRoot /var/www/html</VirtualHost><VirtualHost *:80>ServerName bbs.westos.orgDocumentRoot /var/virtual/westos.org/bbs/html</VirtualHost><VirtualHost *:80>ServerName login.westos.orgDocumentRoot /var/virtual/westos.org/login/html</VirtualHost><Directory "/var/virtual">Require all granted</Directory>dest: /etc/httpd/conf.d/vhosts.conf- name: create directoryfile:state: directorypath: /var/virtual/westos.org/login/html- name: create dirctoryfile:state: directorypath: /var/virtual/westos.org/bbs/html- name: Set index pages for virtual hostscopy:content: "bbs.westos.org"dest: "/var/virtual/westos.org/bbs/html/index.html"- name: set indexcopy:content: "login.westos.org"dest: "/var/virtual/westos.org/login/html/index.html"- name: set firewalldfirewalld:service: httppermanent: yesimmediate: yesstate: enabled- name: restartservice:name: httpdstate: restartedenabled: no

设置ftp服务,包括以下步骤:

  1. 安装vsftpd服务
  2. /etc/vsftpd/vsftpd.conf文件中,将anonymous_enable这一行的开头的#去掉,并设置为NO,即不允许匿名用户访问
  3. 启用firewalld的ftp服务,并永久生效
  4. 重启vsftpd服务,但不在开机时启动该服务
- name: setup ftp by playbookhosts: hosttasks:- name: install vsftpdyum:name: vsftpdstate: present- name: enable anonymous to accesslineinfile:path: /etc/vsftpd/vsftpd.confregexp: '^#*(anonymous_enable=)'line: 'anonymous_enable=NO'state: present- name: set firewalldfirewalld:service: httppermanent: yesimmediate: yesstate: enabled- name: restart serviceservice:name: vsftpdstate: restartedenabled: no

会向/mnt/file文件中插入三行内容,分别是:

         westos
          linux
          lee

如果/mnt/file文件不存在,则会自动创建该文件。如果已经存在,则会在文件中匹配这三行内容,如果不存在则添加这三行到文件中。如果已经存在这三行内容,则不做任何操作。

- name: Edit a file using lineinfile modulehosts: hosttasks:- name: Insert lines to filelineinfile:path: /mnt/fileline: |+westoslinuxleecreate: yes

相关文章:

使用Ansible中的playbook

目录 1.Playbook的功能 2.YAML 3.YAML列表 4.YAML的字典 5.playbook执行命令 6.playbook的核心组件 7.vim 设定技巧 示例 1.Playbook的功能 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 2.YAML #简介# 是一种表达资料序列的格式,类似XML #特…...

模型应用系实习生-模型训练笔记(更新至线性回归、Ridge回归、Lasso回归、Elastic Net回归、决策树回归、梯度提升树回归和随机森林回归)

sklearn机械学习模型步骤以及模型 一、训练准备&#xff08;x_train, x_test, y_train, y_test&#xff09;1.1 导包1.2 数据要求1.21 导入数据1.22 数据类型查看检测以及转换1.22 划分数据 二、回归2.1 线性回归2.2 随机森林回归2.3 GradientBoostingRegressor梯度提升树回归2…...

【Verilog】7.2.1 Verilog 并行 FIR 滤波器设计

FIR&#xff08;Finite Impulse Response&#xff09;滤波器是一种有限长单位冲激响应滤波器&#xff0c;又称为非递归型滤波器。 FIR 滤波器具有严格的线性相频特性&#xff0c;同时其单位响应是有限长的&#xff0c;因而是稳定的系统&#xff0c;在数字通信、图像处理等领域…...

【音视频 | wav】wav音频文件格式详解——包含RIFF规范、完整的各个块解析、PCM转wav代码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

人工智能基础_机器学习012_手写梯度下降代码演示_手动写代码完成梯度下降_并实现梯度下降可视化---人工智能工作笔记0052

可以看到上面我们那个公式,现在我们用梯度下降实现一下,比如我们有一堆数据,但是没有方程的情况下,我们来看一下如果计算,对应的w值也就是seta值对吧,没有方程我们可以使用梯度下降 这里首先我们可以设置一个0.0001.我们知道梯度下降的公式, 梯度下降刚开始的时候,下降会快,然…...

Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器

文章目录 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器&#xff0c;启动&#xff01;踩坑&#xff1a;虚拟机磁盘扩容 Docker安装部署Kibana拉取镜像Kibana容器&#xff0c;启动&#xff01; 安装IK分词器安装方式一&#xff1a;直接从github上下载…...

折纸达珠峰高度(forwhile循环)

对折0.1mm厚度的纸张多少次&#xff0c;高度可达珠峰高度8848180mm。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅…...

探索网络攻防技术:自学之道

在当今数字化时代&#xff0c;网络攻防技术的重要性日益凸显。无论是个人用户还是企业组织&#xff0c;都需要具备一定的网络安全意识和基本技能来应对日益复杂的网络威胁。自学网络攻防技术成为许多人的选择&#xff0c;今天我们将探讨如何高效、有序地自学网络攻防技术。 如果…...

图像二值化阈值调整——cv2.threshold方法

二值化阈值调整&#xff1a;调整是指在进行图像二值化处理时&#xff0c;调整阈值的过程。阈值决定了将图像中的像素分为黑色和白色的界限&#xff0c;大于阈值的像素被设置为白色&#xff0c;小于等于阈值的像素被设置为黑色。 方法一&#xff1a; 取阈值为 127&#xff0c;…...

【C++代码】背包问题,完全背包,多重背包,打家劫舍,动态规划--代码随想录

爬楼梯(plus) 一步一个台阶&#xff0c;两个台阶&#xff0c;三个台阶&#xff0c;…&#xff0c;直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢&#xff1f; 1阶&#xff0c;2阶&#xff0c;… m阶就是物品&#xff0c;楼顶就是背包。每一阶可以重复使用&#xff0c;例如…...

阿里云创始人王坚:云计算和GPT的关系,就是电和电机的关系

10月31日&#xff0c;在2023云栖大会&#xff0c;中国工程院院士、阿里云创始人王坚以《云计算的第三次浪潮》为主题发表演讲&#xff0c;他认为人工智能和云计算的结合&#xff0c;带来云计算的第三次浪潮&#xff0c;它不会在一年、两年完成&#xff0c;它可能会给我们十年、…...

python爬取豆瓣电影Top250数据

本次爬虫案例使用Python语言编写&#xff0c;使用了requests库进行网页请求&#xff0c;使用了BeautifulSoup库进行网页解析&#xff0c;使用了openpyxl库进行数据的保存。 案例中的爬虫目标是豆瓣电影Top250&#xff0c;通过循环访问不同页面进行数据的爬取。在每个页面上&am…...

关键路径及关键路径算法[C/C++]

文章目录 关键路径引例AOE网关键路径与关键活动关键路径算法引例与原理关键路径算法的实现边的存储结构代码实现运行示例 关键路径 关于拓扑排序的内容见拓扑排序详解 引例 通过拓扑排序我们可以解决一个工程是否可以顺序进行的问题&#xff0c;拓扑排序把一个工程分成了若干…...

nginx http 跳转到https

改 Nginx 配置文件 在您安装了 SSL 证书之后&#xff0c;您需要修改 Nginx 的配置文件以启用 HTTPS 和 HTTP 自动跳转 HTTPS。 打开 Nginx 配置文件&#xff08;通常位于 /etc/nginx/nginx.conf&#xff09;&#xff0c;找到您的网站配置块。在该配置块中添加以下内容&#x…...

可靠的互联网兼职平台,平常可以做副业充实生活

在互联网时代&#xff0c;越来越多的人开始通过网络来寻找兼职副业的机会&#xff0c;能够更灵活地安排自己的时间&#xff0c;实现自己的收入增值。那么找到一个正规可靠的线上兼职平台就是一个比较重要的事情&#xff0c;这里分享几个正规靠谱的线上兼职副业平台&#xff0c;…...

云安全—K8s APi Server 6443 攻击面

0x00 前言 在未授权的一文中&#xff0c;详细描述了k8s api中的8080端口未授权的问题&#xff0c;那么本篇主要来说6443端口的利用。 0x01 API连接攻击面 1.匿名用户访问 匿名开放方式&#xff1a;kubectl create clusterrolebinding cluster-system-anonymous --clusterro…...

【案例实战】NodeJS+Vue3+MySQL实现列表查询功能

这篇文章&#xff0c;给大家带来一个列表查询的功能&#xff0c;从前端到后端的一个综合案例实战。 采用vue3作为前端开发&#xff0c;nodejs作为后端开发。 首先我们先来看一下完成的页面效果。点击分页&#xff0c;可以切换到上一页、下一页。搜索框可以进行模糊查询。 后端…...

Google play开发者账号被封的几种常见原因及相关解决思路

在Google paly上&#xff0c;每天都有大量的应用被成功发布&#xff0c;同时也有很多开发者账号被封禁。特别是在今年的十月份之前&#xff0c;谷歌的"封号潮"给很多开发者带来了沉重的打击。不过&#xff0c;令人欣慰的是&#xff0c;自十月份之后&#xff0c;情况逐…...

深入理解计算机系统CS213学习笔记

Lecture 01 1. 计算机表示数字 int 整数运算可能会出现错误&#xff0c;超过32位时会出现溢出。 float 浮点数不适用结合律&#xff0c;因为浮点数表示的精度有限。 根其原因&#xff0c;是用有限的位数表示无限的数字空间。 2.利用分层的存储系统&#xff0c;使程序运行更…...

【设计模式】第8节:结构型模式之“适配器模式”

一、简介 适配器模式是用来做适配的&#xff0c;它将不兼容的接口转换为可兼容的接口&#xff0c;让原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式角色&#xff1a; 请求者client&#xff1a;调用服务的角色目标Target&#xff1a;定义了Client要使用的功…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...