ansible - Role

1、简介:

Ansible 中的角色(Role)是一种组织和封装Playbook的方法,用于管理和组织 Ansible代码。它可以将任务和配置逻辑模块化,以便在不同的Playbook中共享和重用。

2、通过 role 远程部署并配置 nginx

(1) 准备目录结构:

mkdir  roles/nginx/{files,handlers,tasks,templates,vars}  -p

touch  roles/site.yaml roles/nginx/{handlers,tasks,vars}/main.yaml

echo  1234 > roles/nginx/files/index.html

yum  install  -y  nginx &&  cp  /etc/nginx/nginx.conf roles/nginx/templates/nginx.conf.j2

● files:存放需要复制到目标主机的文件。

● handlers:存放角色的处理器(handlers),这些处理器用于在需要时触发某些操作,通常与任务相关。

● tasks:角色的主要任务列表。

● templates:存放模板文件,并部署到目标主机。

● vars:存放角色的其他变量。

(2) 编写任务 tasks

vim roles/nginx/tasks/main.yaml

---- name: install epel-release packgeyum: name=epel-release state=latest- name: install nginx packgeyum: name=nginx state=latest- name: copy index.htmlcopy: src=index.html dest=/usr/share/nginx/html/index.html- name: copy nginx.conf templatetemplate: src=nginx.conf.j2 dest=/etc/nginx/nginx.confnotify: restart nginx- name: make sure nginx service runningservice: name=nginx state=started enabled=yes

(3) template:

① 简介:

使用 Jinja2 模板引擎编写包含变量和表达式的动态配置文件

② 作用:

在 Jinja2 模版中的文件允许存在变量 ;变量在拷贝时会经过一次转换,拷贝到客户机时先调用变量,将调用的值替换变量,再拷给客户机。

③ 示例:

vim  roles/nginx/templates/nginx.conf.j2

调用已知变量:

worker_processes  {{ ansible_processor_cores }};

● Jinja2 模版变量格式为 {{ 变量名 }},若编写在普通文件中,剧本是将 worker_processes {{ ansible_processor_cores }} 直接拷贝到客户机,但在 Jinja 文件中,变量会先转换成对应的值 (1),再拷贝给客户机。

● 此处的 worker_processes 不能设置成 auto,否则每次执行剧本时都会先检索 CPU 数量。

调用自定义变量:

worker_connections  {{ worker_connections }};

自定义变量在 vars 下的 main.yaml 里进行声明(vim roles/nginx/vars/main.yaml)

(4) 编写处理程序 handlers:

在 tasks 的 main.yaml 里编写了触发器 notify: restart nginx,其对应的处理器程序在 handlers 下的 main.yaml 里编写。(handlers 的 main.yaml 里存放了剧本所有的处理程序)

vim roles/nginx/handlers/main.yaml

---- name: restart nginxservice: name=nginx state=restarted

(5) 编写总剧本 site.yaml

vim roles/site.yaml

- host: host1roles:- nginx

(6) 执行剧本

① 检查剧本的语法:

ansible-playbook  site.yaml  --syntax-check

不用检查每个目录下的 yaml 文件,因为这些文件不完整,只是一个剧本中的一部分。

② 执行剧本:

ansible-playbook  site.yaml

3、ansible 补充

(1) 使用 ansible 循环创建多个用户

vim createUser.yaml

- hosts: host1tasks:- name: create usersuser: name={{ item }} state=present groups=wheelwith_items:- testuser1- testuser2

groups=wheel 是在创建用户时为用户指定的附加用户组。在默认情况下,wheel 组通常被授权通过sudo来执行系统命令,这意味着成员可以以超级用户(root)权限执行命令,从而获得对系统的更高控制权。

(2) 服务器托管

服务器托管又称主机托管,指将服务器及相关设备托管到具有完善机房设施、高品质网络环境、丰富带宽资源和运营经验以及可对用户的网络和设备进行实时监控的网络数据中心内。它摆脱了虚拟主机受软硬件资源的限制,能够提供高性能的处理能力,提高网站的访问速度,同时有效降低维护费用和机房设备投入、线路租用等高额费用。

(3) CDN 技术

CDN(Content Delivery Network)内容分发网络,是一种网络架构和服务,旨在改善互联网上的内容传输速度、性能和可用性。CDN通过将内容存储在位于全球各地的服务器上,使内容更靠近最终用户,从而减少了网络传输延迟,提高了网站和应用程序的加载速度,并提供更好的用户体验。CDN技术的主要目标是加速内容交付,减少服务器负载,提高可靠性和安全性。

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

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

相关文章

数组(数据结构)

优质博文:IT-BLOG-CN 一、简介 数组Array是一种线性表数据结构,它用一组连续的内存空间,存储一组具有相同类型的数据。 数组因具有连续的内存空间的特点,数据拥有非常高效率的“随机访问”,时间复杂度为O(1)。但因要保…

ubuntu使用whisper和funASR-语者分离-二值化

文章目录 一、选择系统1.1 更新环境 二、安装使用whisper2.1 创建环境2.1 安装2.1.1安装基础包2.1.2安装依赖 3测试13测试2 语着分离创建代码报错ModuleNotFoundError: No module named pyannote报错No module named pyannote_whisper 三、安装使用funASR1 安装1.1 安装 Conda&…

黑豹程序员-架构师学习路线图-百科:Database数据库

文章目录 1、什么是Database2、发展历史3、数据库排行网4、总结 1、什么是Database 当今世界是一个充满着数据的互联网世界,各处都充斥着大量的数据。即这个互联网世界就是数据世界。 支撑这个数据世界的基石就是数据库,数据库也可以称为数据的仓库。 …

typescript开发环境搭建

typescript是基于javascript的强类型标记性语言,使用typescript语言可开发出不同规模的、易于扩展的web前端页面应用,本文主要描述typescript的开发环境搭建。 npm install -g typescript 如上所示,在本地开发环境中,使用nodejs…

基于Redis实现消息队列的实践

为什么要基于Redis实现消费队列? 消息队列是一种典型的发布/订阅模式,是专门为异步化应用和分布式系统设计的,具有高性能、稳定性及可伸缩性的特点,是开发分布式系统和应用系统必备的技术之一。目前,针对不同的业务场…

localhost和127.0.0.1都可以访问项目,但是本地的外网IP不能访问

使用localhost和127.0.0.1都可以访问接口,比如: http://localhost:8080/zhgl/login/login-fy-list或者 http://127.0.0.1:8080/zhgl/login/login-fy-list返回json {"_code":10000,"_msg":"Success","_data":…

Pytorch目标分类深度学习自定义数据集训练

目录 一,Pytorch简介; 二,环境配置; 三,自定义数据集; 四,模型训练; 五,模型验证; 一,Pytorch简介; PyTorch是一个开源的Python机…

淘宝商品数据分析接口,淘宝商品详情数据接口

淘宝商品数据分析接口可以通过淘宝API进行获取。 淘宝API是一种程序接口,通过编程的方式,让开发者能够通过HTTP协议直接访问淘宝平台的数据,包括商品信息、店铺信息、物流信息等,从而实现淘宝平台的数据开放。 通过淘宝API提供的…

外卖小程序源码的安全性和隐私考虑

外卖小程序源码的使用正在成为数字餐饮业的主流选择之一。然而,随着外卖业务的增长,安全性和隐私保护变得至关重要。在本文中,我们将探讨外卖小程序源码的安全性和隐私问题,并提供一些代码示例,以帮助开发者确保其应用…

回顾C++

大一的时候学过C,当时学得也不深,考试也是糊弄过去的,最近刷力扣的时候,决定一边刷题,一边复习和学习C,在此记录一些C的知识点。反正遇到一点就记录一点,会一直更新。

c++解压压缩包文件

功能实现需要依赖相关头文件和库文件&#xff0c;我这里的是64位的。需要的可以在这下载&#xff1a;https://download.csdn.net/download/bangtanhui/88403596 参考代码如下&#xff1a; #include <zip.h> #pragma comment(lib,"libzip.lib")//解压压缩包 /…

性能测试笔记

一、性能测试的概念 性能测试的概念 使用自动化工具&#xff0c;模拟不同的场景&#xff0c;对软件各项性能指标进行测试和评估的过程 性能测试的目的 评估当前系统能力&#xff0c;出现性能bug后&#xff0c;优化性能&#xff1a;预测未来的性能需求是否满足 例如&#xf…

Web:前端常用的几种Http请求GET和POST样例

1、简述 在Web开发过程中&#xff0c;少不了发起Http请求服务端的接口数据&#xff0c;在不同的框架中使用了不同的Http请求方式&#xff0c;常用的请求有fetch、 ajax、 axios、XMLHttpRequest、request&#xff0c;以下样例仅供参考。 2、Fetch Fetch API 是一种 JavaScr…

Vue Router(二)

目录 一、嵌套路由 1、路由定义 2、代码例子 3、重定向 二、懒加载 1、缘由 2、代码例子 三、导航守卫 1、全局前置守卫 2、全局后置守卫 3、meta元信息 四、生命周期 1、解释 2、执行顺序 3、例子 五、keep-alive组件缓存&#xff08;保活&#xff09; 1、介…

【目标检测】——PE-YOLO精读

yolo&#xff0c;暗光目标检测 论文&#xff1a;PE-YOLO 1. 简介 卷积神经网络&#xff08;CNNs&#xff09;在近年来如何推动了物体检测的发展。许多检测器已经被提出&#xff0c;而且在许多基准数据集上的性能正在不断提高。然而&#xff0c;大多数现有的检测器都是在正常条…

HTTPS 加密工作过程

引言 HTTP 协议内容都是按照文本的方式明文传输的&#xff0c;这就导致在传输过程中出现一些被篡改的情况。例如臭名昭著的运营商劫持。显然&#xff0c; 明文传输是比较危险的事情&#xff0c;为此引入 HTTPS &#xff0c;HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保…

九、互联网技术——记忆背诵

文章目录 一、网络操作系统的功能和特性二、网络操作系统的逻辑构成四、主动攻击和被动攻击五、安全机制和安全服务六、信息与数据七、数据处理与数据管理八、数据模型九、概念模型的E-R表示方法十、四种数据模型十一、数据库系统组成十二、DBMS主要功能十三、数据库系统的3级模…

【C++初阶(二)C——C++过渡必看】

文章目录 前言一、C关键字&#x1f34e;二、命名空间&#x1f345;1.命名空间的定义&#x1f352;2.命名空间使用&#x1f353; 三、C输入&输出&#x1f351;四、缺省参数&#x1fad1;1. 缺省参数概念&#x1f349;2. 缺省参数分类&#x1f95d; 五、函数重载&#x1f965…

集中发现服务DCPSInfoRepo通信端口和ORB交互流程

OpenDDS集中发现服务DCPSInfoRepo,为OpenDDS的pub和sub通信终端提供主题匹配和通信协商和中介服务,是基于TAO的ORB机制完成的,GIOP协议。 1、集中发现服务DCPSInfoRepo的相关通信端口 1)集中发现服务DCPSInfoRepo通信端口 DCPSInfoRepo -ORBListenEndpoints iiop://192.…

【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程&#xff0c;默认的web.xml是这样的。 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name…