使用Ansible中的playbook

news2025/7/6 1:10:00

目录

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 httpd
  hosts: host
  tasks:
    - name: install httpd
      yum:
        name: httpd
        state: present

    - name: create index.html
      copy:
        dest: /var/www/html/index.html
        content: www.westos.org

    - name: create virtual host
      copy:
        content: |+
          <VirtualHost _default_:80>
              DocumentRoot /var/www/html
          </VirtualHost>

          <VirtualHost *:80>
              ServerName bbs.westos.org
              DocumentRoot /var/virtual/westos.org/bbs/html
          </VirtualHost>

          <VirtualHost *:80>
              ServerName login.westos.org
              DocumentRoot /var/virtual/westos.org/login/html
          </VirtualHost>
          <Directory "/var/virtual">
            Require all granted
          </Directory>
        dest: /etc/httpd/conf.d/vhosts.conf

    - name: create directory
      file:
        state: directory
        path: /var/virtual/westos.org/login/html

    - name: create dirctory
      file:
        state: directory
        path: /var/virtual/westos.org/bbs/html

    - name: Set index pages for virtual hosts
      copy:
        content: "bbs.westos.org"
        dest: "/var/virtual/westos.org/bbs/html/index.html"

    - name: set index
      copy:
        content: "login.westos.org"
        dest: "/var/virtual/westos.org/login/html/index.html"

    - name: set firewalld
      firewalld:
        service: http
        permanent: yes
        immediate: yes
        state: enabled

    - name: restart
      service:
        name: httpd
        state: restarted
        enabled: no

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

  1. 安装vsftpd服务
  2. /etc/vsftpd/vsftpd.conf文件中,将anonymous_enable这一行的开头的#去掉,并设置为NO,即不允许匿名用户访问
  3. 启用firewalld的ftp服务,并永久生效
  4. 重启vsftpd服务,但不在开机时启动该服务
- name: setup ftp by playbook
  hosts: host
  tasks:
    - name: install vsftpd
      yum:
        name: vsftpd
        state: present

    - name: enable anonymous to access
      lineinfile:
        path: /etc/vsftpd/vsftpd.conf
        regexp: '^#*(anonymous_enable=)'
        line: 'anonymous_enable=NO'
        state: present

    - name: set firewalld
      firewalld:
        service: http
        permanent: yes
        immediate: yes
        state: enabled

    - name: restart service
      service:
        name: vsftpd
        state: restarted
        enabled: no

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

         westos
          linux
          lee

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

- name: Edit a file using lineinfile module
  hosts: host
  tasks:
    - name: Insert lines to file
      lineinfile:
        path: /mnt/file
        line: |+
          westos
          linux
          lee
        create: yes

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

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

相关文章

GB28181学习(十四)——语音广播与语音对讲

语音对讲 定义 用户端向设备通过视音频点播请求音频数据&#xff1b;用户端接收音频数据并通过特定的播放设备&#xff08;如音响&#xff09;播放&#xff1b;用户端向设备发送广播请求&#xff1b;设备解析广播成功后通过INVITE方法向用户请求音频数据&#xff1b;用户通过音…

大长案例 - 经典长连接可水平扩容高可用架构

文章目录 需求设计 需求 支撑百万充电桩充电业务的长连接可水平扩容高可用架构需求如下&#xff1a; 可扩展性&#xff1a;系统应该具备高度可扩展性&#xff0c;能够轻松应对新增充电桩的需求。任何时候都应该容易添加更多的充电桩&#xff0c;而不会影响整体性能。 负载均衡…

Linux C语言进阶-D7~D8指针与数组

一维数组 一维数组的数组名&#xff1a;就是一维数组的指针&#xff08;起始地址&#xff09; 如果int *px x;则&#xff1a; x[i]、*(pxi)、*(xi)、px[i]具有完全相同的功能&#xff1a;访问数组第i1个数组元素 注意&#xff1a;1、指针变量和数组在访问数组元素时&#x…

筛网孔径测量方法,您了解多少?

筛网是一种表面有均匀而稳定的透气孔、具有筛选和过滤作用的工业用品&#xff0c;常见的有金属丝编织网和冲孔板筛网&#xff0c;广泛用于新能源汽车、太阳能光伏、冶金、煤炭、橡胶、石油、化工、制药、建材、粮油等行业。 筛网有着严格的网孔尺寸规范&#xff0c;需要符合标…

141. 环形链表、Leetcode的Python实现

博客主页&#xff1a;&#x1f3c6;看看是李XX还是李歘歘 &#x1f3c6; &#x1f33a;每天分享一些包括但不限于计算机基础、算法等相关的知识点&#x1f33a; &#x1f497;点关注不迷路&#xff0c;总有一些&#x1f4d6;知识点&#x1f4d6;是你想要的&#x1f497; ⛽️今…

安装opensips

1. 安装opensips ubuntu下安装&#xff1a; 1&#xff09;执行以下的脚本 openSIPS | APT Repository 2&#xff09;apt-get install opensips 安装完毕后&#xff0c;再选择需要的module继续安装&#xff0c;不需要编译 如果只是用作load balancer&#xff0c;那么只需要…

剑指JUC原理-8.Java内存模型

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

Windows安装tensorflow-gpu=1.14.0CUDA=10.0cuDNN=7.4 (多版本CUDA共存)

文章目录 0. 前置说明1. 查看版本对应关系2. 安装 cuda3. 安装 cudnn4. 添加环境变量5. 安装 tensorflow 0. 前置说明 本机&#xff08;Windows 11&#xff09;已安装CUDA 11.7 使用命令查看显卡驱动&#xff1a; nvidia-smi这里显示的CUDA Version: 11.7说明支持安装11.7版本…

小说网站源码带管理后台手机端和采集

搭建教程&#xff0c;安装宝塔 php7.2&#xff0c;绑定域名&#xff0c;上传源码到根目录解压 源码获取请自行百度&#xff1a;一生相随博客 一生相随博客致力于分享全网优质资源&#xff0c;包括网站源码、游戏源码、主题模板、插件、电脑软件、手机软件、技术教程等等&#…

2.Docker的安装

1.认识Docker的基本架构 下面这张图是docker官网上的&#xff0c;介绍了整个Docker的基础架构&#xff0c;我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …

每天一道算法题:11. 盛最多水的容器

难度 中等 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 **说明&#xff1a;**你不…

哈夫曼树c语言版

一、哈夫曼树概念 哈夫曼树又称最优树给定N个权值作为N个叶子结点&#xff0c;构造一棵二叉树&#xff0c;若该树的带权路径长度达到最小&#xff0c;称这样的二叉树为最优二叉树&#xff0c;也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树&#xff0c;权值较大…

传输层协议——TCP协议 (详解!!!)

目录 TCP的报文格式 1. 源端口号&#xff0c;目的端口号 和 udp 相同&#xff08;前面文章介绍了udp&#xff09; 2. 4位首部长度 —— TCP的报头长度 3. 选项 —— option &#xff08;可选的&#xff1a;可以有&#xff0c;可以没有&#xff09; 4.保留&#xff08;6…

linux下mysql-8.2.0集群部署(python版本要在2.7以上)

目录 一、三台主机准备工作 1、mysql官方下载地址&#xff1a;https://dev.mysql.com/downloads/ 2、修改/etc/hosts 3、关闭防火墙 二、三台主机安装mysql-8.2.0 1、解压 2、下载相应配置 3、初始化mysql&#xff0c;启动myslq&#xff0c;设置开机自启 4、查看初始密…

java基础--多线程学习

写在前面&#xff1a; 多线程在面试中问的很多&#xff0c;之前没有过系统的学习&#xff0c;现在来进行一个系统的总结学习 文章目录 基础java多线程实现无参无返回值线程快速创建start和run方法的探讨run方法线程状态 有返回值线程线程池执行小结关于抛出异常的扩展 线程方…

人脸检索 M:N(视频,摄像头),调用百度API

目录 创建百度智能云账号 代码部分&#xff1a; 创建百度智能云账号 网址&#xff1a; 百度智能云-云智一体深入产业 点击导航栏中的产品&#xff0c;再选择人脸与人体 再选择人脸搜索 进入后&#xff0c;可以先去领取免费资源&#xff0c;如果不领取&#xff0c;后面是无法…

macOS Sourcetree 选择文件比较工具 Kaleidoscope

Sourcetree 选择文件比较工具 Kaleidoscope Kaleidoscope 使用的命令行工具是 ksdiff。Sourcetree 集成 Kaleidoscope之前&#xff0c;必须先安装 ksdiff。 Kaleidoscope 使用的命令行工具是 ksdiff。Sourcetree 集成 Kaleidoscope之前&#xff0c;必须先安装 ksdiff。 打开Ka…

5.3 用户定义的完整性

思维导图&#xff1a; 5.3 用户定义的完整性 用户定义的完整性是确保数据库中的数据满足特定应用的语义要求。这是通过关系数据库管理系统(RDBMS)中的内置机制来完成的&#xff0c;不需要依赖应用程序来执行。 5.3.1 属性上的约束条件 1. 定义属性上的约束条件 当在CREATE T…

架构风格-架构师(六十六)

管道-过滤器和仓库 数据处理方式&#xff1a; 管道过滤器是 数据驱动机制&#xff0c;处理流程事前确定&#xff0c;交互差。 仓库是通过仓库中间件交互&#xff0c;交互性强&#xff0c;灵活组装 系统可扩展性&#xff1a; 管道过滤器是数和处理在一起&#xff0c;需要新增…

金Gien乐道 | 10月热点回顾

收获之秋&#xff0c;中电金信Q4开篇捷报不断 Q4开篇&#xff0c;中电金信迎来多个捷报。公司与青岛财通集团联合打造的核心业务系统&#xff08;一体化业务平台&#xff09;一期项目顺利投产上线并平稳运行&#xff1b;中标华南某全国性股份制商业银行新一代云原生分布式核心系…