ansible——playbook

一、playbook定义

  Ansible Playbook是设定自动化任务的一种蓝图,可在无需人工干预或有限干预的前提下执行复杂的IT操作。Ansible Playbook对一组或一类共同构成 Ansible 清单的主机执行。

  Ansible Playbook本质上是一些框架,是一些预先编写的代码,开发人员可以用作临时模板或起始模板。Ansible Playbook常被用于自动化IT基础架构(例如,操作系统和Kubernetes平台)、网络、安全系统,以及开发人员角色(例如:Git)。

  Ansible Playbook可以帮助IT人员进行应用、服务、服务器节点或其他设备的编程,无需花费人力去从头创建所有事物。Ansible Playbook及其中的条件、变量和任务,都可以无限期保存、分享或重复使用。

  ansible-playbook一种定义的任务方式,在编写playbook时可以使用变量来传数据

二、playbook核心组件

  • ansible(主体):ansible的核心程序,提供一个命令接口给用户对ansible进行管理操作

  • host inventory(主机清单):为ansible定义管理主机的策略

  • core modules(核心模块):ansible执行命令的功能模块,多数为内置的核心模块

  • custom modules(扩展模块):如果ansible本身的要求无法满足需求,用户可以选择自定义模块

  • playbook(剧本):编排定义ansible任务集的配置文件,由ansible顺序依次执行,通常是JSON格式YML文件

  • api:供第三方程序的应用程序编程接口

三、实战实例

  3.1 前期准备

IP地址
管控端192.168.10.7
被管控端1192.168.10.8
被管控端2192.168.10.10

 

  3.2 基础实例

  3.2.1 编写YAML文件

  3.2.2 运行playbook

  3.2.2.1 检查yaml文件的语法是否正确

  3.2.2.2 检查tasks任务

  3.2.2.3 检查生效的主机

  3.2.2.4 运行playbook

  3.2.2.4.1 报错解决

  3.2.2.4.2 删除yum进程号

  3.2.2.5 网页测试

  3.2.2.6 被监控端查看信息

  3.3  定义、引用变量

  3.3.1 编辑YAML文件

  3.3.2 命令行里定义变量运行playbook

  3.3.3 被监控端查看

  3.4 指定远程主机sudo切换用户

  3.4.1 编译yml文件

  3.4.2 在/etc/ansible/hosts文件修改内容

  3.4.3 运行playbook

  3.4.4 被监控端查看

  3.5 when条件判断

    在Ansible中,提供的唯一一个通用的条件判断是when指令,当when指令的值为true时,则该任务执行,否则不执行该任务

    when一个比较常见的应用场景是实现跳过某个主机不执行任务或者只有满足条件的主机执行任务

  3.5.1 编辑yaml文件

  3.5.2 运行yaml文件

  3.5.2.1 修改报错

    修改被监控端的端口号

  3.6 迭代

    Ansible提供了很多种循环结构,一般都命名为with_items,作用等同于loop循环。通常指持续地对ansible playbook进行修改(更改)和改进的过程

  3.6.1 编辑YAML文件

  3.6.2 运行playbook

  3.6.3 被监控端查看

  3.7 迭代(二)

  3.7.1 运行yaml文件

  3.7.2 被监控端查看

  3.8 迭代(三)

  3.8.1 编辑YAML

  3.8.2 运行playbook

  3.9 Templates模块

    template是一种创建配置文件的工具。在配置文件中,会有一些数据动态地改变,如:IP地址、主机名、端口、用户、页面路径

    template模块就是将变量和动态文件结合起来最终生成一个配置文件(你需要动态改变)

    文件配置使用jinjia2模版语言去编写结尾后缀一定是j2(xxx.j2)

  3.9.1 复制http配置文件

  3.9.2 编辑刚刚复制的配置文件

  3.9.3 编辑hosts配置文件 

  3.9.4 编辑YAML文件

  3.9.5 运行playbook

  3.9.6 在被监控端查看端口是否有

  3.10 tags

    tags是一种标记任务或者一系列的任务功能,通过任务1或者一个命名的任务列表上定义标记,可以在运行playbook时去选择你需要执行的任务.

    tags可以在一个playbook中为某个或某些任务定义“标签”,在执行此playbook时通过ansible-playbook命令使用--tags选项能实现仅运行指定的tasks。
    playbook还提供了一个特殊的tags为always。作用就是当使用always当tags的task时,无论执行哪一个tags时,定义有always的tags都会执行。

  3.10.1 编辑YAML文件

  3.10.2 运行playbook

  3.10.3 被监控端查看

  3.11 Roles

    Ansible为了层次化、结构化地组织Playbook,使用了角色(roles),roles可以根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。

    roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。

  3.11.1 创建三个全局目录

  3.11.2 创建三个局部目录

  3.11.3 创建main.yml文件

  3.11.4 查看结构

  3.11.5 编辑hosts配置文件

  3.11.6 实现远程面密登陆

  3.11.7 编辑LNMP文件

  3.11.8 运行playbook

  3.11.9 编辑mysql

  3.11.11 编辑httpd

  3.11.12 编辑PHP

  3.11.13 再次运行LNMP

  3.11.14 在三台机器上查看是否安装

四、roles编写lnmp分布式剧本

  4.1 编辑tasks/main.yml

  4.2 编辑tasks/init.yml

  4.3 编辑vars/main.yml

  4.4 编辑role_lnmp.yml

  4.5 安装maridb

  4.6 运行role_lnmp

    注意:在后面加上-C 

  4.7 编写nginx

  4.7.1 复制httpd并改名

  4.7.2 编写default配置文件

  4.7.3 编辑files/nginx.repo

  4.7.4 编辑handlers/main.yml

  4.7.5 编辑tasks/main.yml

  4.7.6 编辑vars/main.yml

  4.7.7 编辑role_lnmp.yml

  4.7.8 运行playbook

  4.8 编写php

  4.8.1 编辑files/index.php

  4.8.2 编辑files/www.conf

  4.8.3 编辑handlers/main.yml

  4.8.4 编辑tasks/main.yml

  4.8.5 编辑main.yml

  4.8.6 编辑role_lnmp.yml文件

  4.8.7 运行role_lnmp.yml

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux —— 线程控制

Linux —— 线程控制 创建多个线程线程的优缺点优点缺点 pthread_self进程和线程的关系pthread_exit 线程等待pthread_ join线程的返回值线程分离pthread_detach 线程取消pthread_cancel pthread_t 的理解 我们今天接着来学习线程: 创建多个线程 我们可以结合以前…

地平线X3开发板Swap使用说明

准备好旭日X3派、连接好网络 并验证系统版本 rootubuntu:~# cat /etc/version x3j3_lnx_db_20220622 输入以下指令系统更新(其他版本同理,依赖项报错可至资源中心更新系统镜像或输入命令解决): apt update apt upgrade reboo…

将jar打包成exe可安装程序,并在html页面唤醒

一、exe4j将jar打包成exe 1.exe4j下载 下载地址:https://www.ej-technologies.com/download/exe4j/files 2.exe4j打包jar 2.1. welcome 可以选择历史配置,新增则直接下一步 2.2. project type选择“jar in exe” mode 2.3. application info设置应用…

springboot引入第三方jar包本地lib并打包

1&#xff1a;在项目根目录创建lib目录并放入第三方lib包 -- project ----lib &#xff08;放在这儿&#xff09; ----src ----target2&#xff1a;pom中引入第三方lib <!-- 引入magus模块 --><dependency><groupId>org.jeecg.msgus</groupId><art…

PADS:生成自交叉平面区域

根据板外形铺铜方法&#xff1a; pads根据板外形铺铜_铺铜如何根据板子形状改变-CSDN博客 根据板外形创建平面区域出现问题&#xff1a; 解决方法&#xff1a;去找结构&#xff0c;让他把出图之前把线合并了

[自动化]pyautogui的使用

目录 环境 包的版本 前置知识 鼠标控制函数 屏幕与鼠标位置 size() position() OnScreen() 鼠标移动 moveTo() move() 鼠标拖动 dragTo() drag() mouseDown()按下鼠标 mouseUp()松开鼠标 鼠标滚动 scroll() 键盘控制函数 write() press() keyDown()和keyU…

等保2.0的全面解读与实施策略

《网络安全等级保护基本要求》&#xff08;等保2.0&#xff09;是中华人民共和国国家安全部于2019年6月发布的网络安全等级保护标准。该标准规定了我国关键信息基础设施的网络安全等级保护要求和评估标准&#xff0c;对于保障我国网络安全具有重要的意义。下面是对等保2.0的全面…

【数据结构】数据结构大汇总 {数据结构的分类总结:定义和特性、实现方式、操作与复杂度、适用场景、相关算法、应用实例}

一、线性结构 1.1 顺序表 定义和特性&#xff1a;顺序表是一种线性表的存储结构&#xff0c;它采用一段地址连续的存储单元依次存储线性表中的元素。顺序表具有随机访问的特性&#xff0c;即可以通过元素的下标直接访问元素。 实现方式&#xff1a;顺序表可以通过数组来实现&…

数据治理框架下,如何实现高效且安全的数据提取与分析

一、引言 随着数字化时代的到来&#xff0c;数据已成为企业运营和决策的核心资产。然而&#xff0c;数据的复杂性和多样性也为企业带来了数据提取与分析的挑战。为了实现数据的有效利用&#xff0c;并确保数据的安全性&#xff0c;需要在数据治理框架下构建高效且安全的数据提…

八大设计模式:适配器模式实现栈的泛型编程 | 通用数据结构接口的秘诀(文末送书)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

(十)Python基础练习题一(50道选择题)#Python

本文整理了Python基础知识相关的练习题&#xff0c;共50道&#xff0c;适用于刚入门初级Python想巩固基础的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-Python一&#xff09;。 1&#xff09; 2&#xff09; 3&#xff09; 4&#xff09; 5&#xff09; 6…

RustGUI学习(iced)之小部件(十二):如何使用rule分割线部件来分割UI?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第十二篇,主要讲述rule分割线部件的使用,会结合…