ansible 使用roles简单部署LAMP平台

目录

一、了解roles目录

二、基于构建LAMP平台创建roles目录

1、在192.168.115.148创建目录

2、书写php的测试页面

3、编写httpd角色的main.yml文件

4、编写mysql角色的main.yml文件

6、编写lamp的playbook

7、启动剧本

8、访问


一、了解roles目录

在Ansible中,roles是一种组织和复用任务和变量的方式。Roles是一种可重用的模块化结构,用于将相关的任务、变量和处理逻辑组合在一起,以便在不同的剧本(playbook)中重复使用。

通过使用roles,可以将复杂的任务分解成更小的、可管理的部分,并使剧本更具可读性和可维护性。Roles还可以促进代码的复用,因为可以将角色在不同的剧本中重复使用。

一个role通常由以下组成:

1. 任务(tasks):包含要执行的操作步骤。这些任务可以是与特定角色相关的任何操作,例如安装软件、配置文件、启动服务等。

2. 变量(vars):存储角色所需的变量。这些变量可以在角色的任务中使用,以根据不同的需求进行自定义。

3. 文件(files):包含角色所需的文件。这些文件可以是配置文件、脚本文件等。

4. 模板(templates):包含用于生成配置文件等的模板文件。模板文件通常包含一些可自定义的变量,以便在生成文件时根据需要进行替换。

5. 处理器(handlers):定义角色相关的处理程序,用于在特定事件发生时触发操作。例如,在配置文件更改后重新启动服务。

通过将相关的任务、变量和文件组织在一起,roles提供了一种结构化的方式来管理和组织复杂的配置和部署任务。它们使剧本更易于编写、理解和维护,并促进了在不同的剧本中重用和分享配置和部署逻辑。

roles/
├── role_name/                # role的名称
│   ├── defaults/             # 存放变量默认值的目录
│   │   └── main.yml          # 变量默认值文件
│   ├── tasks/                # 存放任务文件的目录
│   │   └── main.yml          # 任务文件
│   ├── templates/            # 存放模板文件的目录
│   │   └── template.j2       # 模板文件
│   ├── vars/                 # 存放特定角色变量的目录
│   │   └── main.yml          # 特定角色变量文件
│   ├── handlers/             # 存放处理器文件的目录
│   │   └── main.yml          # 处理器文件
│   ├── files/                # 存放文件的目录
│   │   └── file.txt          # 文件
│   ├── meta/                 # 存放描述文件的目录
│   │   └── main.yml          # 描述文件
│   └── README.md             # role的说明文件
└── playbook.yml              # 包含roles的Playbook文件

二、基于构建LAMP平台创建roles目录

实验环境:

192.168.115.148  :  安装ansible、部署LAMP

192.168.115.149  : 部署LAMP

192.168.115.151  : 部署LAMP

1、在192.168.115.148创建目录

cd /etc/ansible/roles/
mkdir -p {httpd,mysql,php}/{files,tasks,handlers,templates,vars,meta}
touch {httpd,mysql,php}/{tasks,handlers,vars,meta}/main.yml
tree
######################################################################
[root@localhost roles]# tree
.
├── http
│   ├── files
│   ├── handlers
│   ├── meta
│   ├── tasks
│   ├── templates
│   └── vars
├── mysql
│   ├── files
│   ├── handlers
│   ├── meta
│   ├── tasks
│   ├── templates
│   └── vars
└── php├── files├── handlers├── meta├── tasks├── templates└── vars

2、书写php的测试页面

vim /etc/index.php
<?phpphpinfo();
?>

3、编写httpd角色的main.yml文件

vim /etc/anseble/roles/http/tasks/mian/yml
---
- name: 安装httpdyum: name=httpd state=present
- name: 分发php测试页面copy: src=/index.php dest=/var/www/html/index.php
- name: 启动httpd、设为开机自启service: name=httpd state=started enabled=yesvim /etc/ansible/roles/http/hardlers/mian.yml
---
- name: restart httpdshell: systemctl restart httpd

4、编写mysql角色的main.yml文件

vim /etc/ansible/roles/mysql/tasks/main.yml
---
- name: 安装mysqlshell: yum -y install mariadb mariadb-server
- name: 启动mariadb,并设为开机自启service: name=mariadb state=started enabled=yes

5、编写php角色的main.yml文件

vim /etc/ansible/roles/php/tasks/main.yml
---
- name: 安装php及依赖包yum: name=php,php-gd,php-ldap,php-odbc,php-pear,php-xml,php-xmlrpc,php-mbstring,php-snmp,php-soap,curl,curl-devel,php-bcmath,php-mysql state=presentnotify: restart httpdvim /etc/ansible/roles/php/hardlers/mian.yml
---
- name: restart httpdshell: systemctl restart httpd

6、编写lamp的playbook

vim /etc/ansible/lamp.yml
---
- hosts: groupremote_user: rootroles:- http- mysql- php

7、启动剧本

ansible-playbook /etc/ansible/lapm.yml

执行结果

8、访问

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

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

相关文章

第 2 章 线性表 (设立尾指针的单循环链表(链式存储结构)实现)

1. 背景说明 循环链表(circular linked list)&#xff0c;是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点&#xff0c; 整个链表形成一个环。由此&#xff0c;从表中任一结点出发均可找到表中其他结点 。 2. 示例代码 1) status.h /* DataStruct…

Visual Studio 新建类从默认internal改为public

前言 之前一直用的Resharp辅助编写C#代码&#xff0c;Resharp用起来的确方便不少&#xff0c;但是太消耗开发机内存了。重装电脑后&#xff0c;还是决定使用Visual Studio内置的功能。 默认情况下&#xff0c;Visual Studio 中生成一个类或接口是internal类型的&#xff0c;而…

大学大创项目:手机室内AR导航APP项目思路

文章目录 一、最初的项目思路二、建图和定位分离的项目思路1、建图2、定位 个人见解&#xff0c;如有错误&#xff0c;请多包涵 一、最初的项目思路 在大创项目的开始&#xff0c;将手机确定为应用设备&#xff0c;传感器确定为相机。 由于知识储备的原因&#xff0c;在头一次…

Shell常用的几个正则表达式:[:alnum:], [:alpha:], [:upper:], [:lower:], [:digit:] 认知

一&#xff1a;通配符命令简介&#xff1a; 匹配符合相关条件的符号&#xff0c;匹配文件名查找。 通配符类型&#xff1a; *&#xff1a;匹配任意长度的任意字符 &#xff1f;&#xff1a;匹配任意单个字符 []&#xff1a;匹配指定范围内的任意单个字符 [^]&#xff1a;匹配指…

解决deepspeed框架的bug:不保存调度器状态,模型训练重启时学习率从头开始

deepspeed存在一个bug&#xff0c;即在训练时不保存调度器状态&#xff0c;因此如果训练中断后再重新开始训练&#xff0c;调度器还是会从头开始而不是接着上一个checkpoint的调度器状态来训练。这个bug在deepspeed的github中也有其他人提出&#xff1a;https://github.com/mic…

ResNet 09

一、发展 1989年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet。 1998年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet-5 AlexNet是2012年ISLVRC 2012&#xff08;ImageNet Large Sca…

MySQL——备份和还原

备份 热备 即MySQL服务在运行的时候进行的备份 mysqldump命令 mysqldump --databases db1 db2 db3 > dump.sql mysqldump -uroot -pSanchuang1234# --all-databases >all_db.sql mysqldump -uroot -pSanchuang123# --databases TENNIS >/backup/tennis.sql mysq…

Always On 数据库无法自动同步的问题

问题&#xff1a; 在给客户的SQL Server 2019 配置好Always On 之后&#xff0c;不久就出现高可用组里的一个库无法正常同步。 第一次出现&#xff0c;以为是偶发性问题&#xff0c;直接右键点击恢复数据同步&#xff0c;没一会就同步好了&#xff1b;过了一个月问题又出现了…

高云USB下载器仿真器用户手册(包括在线逻辑分析仪的使用方法)

高云 USB 仿真器用户手册 一.简介 仿真器用于高云 GOWIN 公司所生产的 FPGA&#xff0c;可用于程序下载和调试。主要特点如下&#xff1a; 1.支持宽电压1.2V - 3.6V&#xff1b; 2.速度最高可达30Mb/s&#xff0c;极速完成下载和波形调试功能&#xff1b; 3.完美支持在线逻…

【个人博客系统网站】项目的发布 · 通过公网IP访问我们的网站 · 思考总结

【JavaEE】进阶 个人博客系统&#xff08;6&#xff09; 文章目录 【JavaEE】进阶 个人博客系统&#xff08;6&#xff09;1. 项目发布1.1 后端代码修改1.1.1 数据库密码1.1.2 端口号修改1.1.3 文件保存地址修改1.1.4 静态资源映射修改 1.2 云服务器1.2.1 建库建表1.2.2 必要…

自动化驱动程序管理

在部署操作系统时&#xff0c;每次都从下载和分发所需的驱动程序中实现真正的独立性可能是一场艰苦的战斗。特别是具有硬件多样化的环境&#xff0c;并且需要支持新的硬件类型时。借助 OS Deployer&#xff0c;可以对所有端点使用一个映像&#xff0c;无论品牌和型号如何&#…

使用maven idea环境

目录 idea三种方式执行maven命令 工程导入 生命周期lifecycle 插件和目标 常用命令 创建模块工程后 idea三种方式执行maven命令 想在哪个工程模块上执行就点开哪一个 如果觉得双击完clean再双击install麻烦&#xff0c;可以 如果有需要还可以给命令后面加参数 ​​​ 第三种…

C# 共享项目的应用

概述 共享项目也可以称为共享资产项目,它允许在多个目标项目之间共享的代码。 它支持编译器指令,可以有条件地包含特定于平台的代码,以便编译为引用共享项目的项目的子集。 还有 IDE 支持,可帮助管理编译器指令并直观显示代码在每个应用程序中的外观。 什么是共享项目? …

XL-LightHouse 与 Flink 和 ClickHouse 流式大数据统计系统

一个Flink任务只能并行处理一个或少数几个数据流&#xff0c;而XL-LightHouse一个任务可以并行处理数万个、几十万个数据流&#xff1b; 一个Flink任务只能实现一个或少数几个数据指标&#xff0c;而XL-LightHouse单个任务就能支撑大批量、数以万计的数据指标。 1、XL-LightHo…

Excel文件生成与下载(SpringBoot项目)(easypoi)

说明 通过接口&#xff0c;导出表格。 使用SpringBoot框架和easypoi表格解析框架&#xff0c;生成Excel表格&#xff0c;并通过接口下载。 表格示例 依赖 版本 <easypoi.version>4.4.0</easypoi.version>依赖 <!-- easypoi --> <dependency><…

springboot整合mybatisPlus全技巧(2-常用开发技巧:通用字段插入)

本系列专题基于 springboot 整合 mybatisPlus 的各种文章早已烂大街的背景下&#xff0c;根据 整合过程&#xff0c;MP开发中的常见技巧&#xff0c;MP开发中遇到的各种坑 三个方面&#xff0c;来对这一专题做一个全面且实用的总结&#xff0c;基本上只要你吃透这篇文章&#x…

Linux mac Windows三系统 局域网文件共享方法

主要工具&#xff1a; Samba是一个开源的软件套件&#xff0c;允许Linux系统与Windows系统之间共享文件和打印机。 一、首先是Linux共享的设置 ①安装 sudo apt-get install samba ②创建共享文件夹 sudo mkdir /home/share ③配置用户 sudo smbpasswd -a kequan ④修改…

Java智慧工地信息化管理平台源码,依托计算机信息、网络通讯、物联网、系统集成及云计算技术建立

Java智慧工地源码 智慧工地APP源码 系统定义&#xff1a; 智慧工地信息化管理平台是依托计算机信息、网络通讯、物联网、系统集成及云计算技术&#xff0c;通过数据采集、信息动态交互、智能分析&#xff0c;建立起来的一套集成的项目建设综合管理系统。实现项目管理信息化、网…

图像噪声--添加噪声

椒盐噪声 椒盐噪声就是给图片添加黑白噪点&#xff0c;椒指的是黑色的噪点(0,0,0),盐指的是白色的噪点(255,255,255)&#xff0c;通过num来控制噪声多少&#xff0c;值越大添加的噪声越多&#xff0c;图像损坏的更加严重。 void add_salt_pepper_noise(Mat& src,Mat& …

淘宝双11数据分析与预测课程案例中(林子雨)错误点总结

问题一&#xff1a;可视化代码中男女买家各个年龄段对比散点图中数值不显示以及坐标不正确问题如下图 解决方法&#xff1a; 1修改坐标 2修改数值 修改后散点图 问题二&#xff1a;各省份的总成交量对比中地图显示不出来 有时间再写