Ansible自动化运维实战--通过role远程部署nginx并配置(8/8)

文章目录

      • 1、准备工作
      • 2、创建角色结构
      • 3、编写任务
      • 4、准备配置文件(金甲模板)
      • 5、编写变量
      • 6、编写处理程序
      • 7、编写剧本
      • 8、执行剧本Playbook
      • 9、验证-游览器访问每台主机的nginx页面

在 Ansible 中,使用角色(Role)来远程部署并配置 Nginx 是一种非常高效且可复用的方式。

1、准备工作

首先,查看系统:

cat /etc/redhat-release

然后,ansible检查各个主机的连通性:(主机组名为webserves,包括4台机子)

ansible webserves -m ping -o

在这里插入图片描述

2、创建角色结构

在ansible服务器主机创建文件夹:

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

相应的文件夹中创建对应文件:

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

在index.html中输入有些信息:

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

安装nginx,并拷贝nginx配置文件到指定目录下:

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

安装tree,检查创建的roles目录结构:

yum install tree -ytree roles/

在这里插入图片描述

补充一点:这里,工作中我们也可以如下命令一键快速创建 nginx 的角色目录结构

ansible-galaxy init nginx

这会生成如下的目录结构:

nginx/
├── defaults
│   └── main.yml
├── files
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars└── main.yml

3、编写任务

  • 配置 tasks/main.yml
    该文件定义了部署和配置 Nginx 的主要任务:
vim roles/nginx/tasks/main.yaml
---
- name: install epel-release pacakgeyum: name=epel-release state=latest- name: intall nginx packageyum: 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

4、准备配置文件(金甲模板)

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

修改nginx的金甲模板,使其成为各个主机的nginx的配置文件

##修改两处
worker_processes {{ ansible_processor_cores }} #调用内部已知变量
worker connections {{ worker_connections }} #自定义变量

在这里插入图片描述

#查看host01中的ansible_processor_cores核心数
ansible host01 -m setup -a 'filter=ansible_processor_cores'

在这里插入图片描述

template模板(金甲模板)是一套灵活的,可扩展,编辑的配置文件,用来推送给各个主机,作为自己的配置模板使用;里面可以存放变量等,非常灵活,便于扩展操作。

5、编写变量

vim roles/nginx/vars/main.yaml

编辑内容为:

worker_connections: 10240

6、编写处理程序

vim roles/nginx/handlers/main.yaml

修改内容如下:

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

在这里插入图片描述

7、编写剧本

vim roles/site.yaml

修改内容如下:

- hosts: webservesroles:- nginx

大概意思可以用剧本形象的比喻解释一下:针对webserves组中的所有主机,编写一个叫nginx的角色,里面包括群演files、武术指导handlers、任务主角tasts、模板替身templates和变量道具vars;整个一个剧本通site.yaml(场地)进行实施演出。

8、执行剧本Playbook

首先进行yaml的语法检查:

cd roles
ansible-playbook site.yaml --syntax-check

在这里插入图片描述
上述显示证明没有问题了;

执行实施site.yaml

ansible-playbook site.yaml

在这里插入图片描述

9、验证-游览器访问每台主机的nginx页面

访问4台主机的nginx-index.html

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
检查每个主机的nginx配置,两个变量都是获取变量值。

cat /etc/nginx/nginx.conf

在这里插入图片描述

注意事项

  • 权限问题:由于安装软件和修改系统配置需要特权,使用了 become: true,确保你有足够的权限执行这些操作。
  • 不同操作系统:上述示例主要针对基于 yum 或 apt 的系统。如果使用其他操作系统,可能需要调整 package 模块的相关配置。
  • 防火墙:部署完成后,确保防火墙允许 Nginx 使用的端口(通常是 80 和 443)的流量通过。

在这里插入图片描述


人生当中总是有你能力所不及的范围,但是如果在你能力所及的范畴内,你尽到了自己全部的努力,那你还有什么可以遗憾呢?


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

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

相关文章

马尔科夫模型和隐马尔科夫模型区别

我用一个天气预报和海藻湿度观测的比喻来解释,保证你秒懂! 1. 马尔可夫模型(Markov Model, MM) 特点:状态直接可见 场景:天气预报(晴天→雨天→阴天…)核心假设: 下一个…

decison tree 决策树

熵 信息增益 信息增益描述的是在分叉过程中获得的熵减,信息增益即熵减。 熵减可以用来决定什么时候停止分叉,当熵减很小的时候你只是在不必要的增加树的深度,并且冒着过拟合的风险 决策树训练(构建)过程 离散值特征处理:One-Hot…

Microsoft Visual Studio 2022 主题修改(补充)

Microsoft Visual Studio 2022 透明背景修改这方面已经有很多佬介绍过了,今天闲来无事就补充几点细节。 具体的修改可以参考:Microsoft Visual Studio 2022 透明背景修改(快捷方法)_material studio怎么把背景弄成透明-CSDN博客文…

Python实现U盘数据自动拷贝

功能:当电脑上有U盘插入时,自动复制U盘内的所有内容 主要特点: 1、使用PyQt5创建图形界面,但默认隐藏 2、通过CtrlAltU组合键可以显示/隐藏界面 3、自动添加到Windows启动项 4、监控USB设备插入 5、按修改时间排序复制文件 6、静…

[c语言日寄]越界访问:意外的死循环

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

数据分析系列--①RapidMiner软件安装

目录 一、软件下载及账号注册 1.软件下载 1.1 CSDN下载国内下载,国内镜像相对快,点击下载 1.2 官网软件下载地址:AI Studio 2025.0 ,服务器在国外相对较慢. 2.软件注册 2.1 点击 注册界面 开始注册,如图: 3.邮箱验证 二、软件安装 1. 新年文件夹,名字最好为英文名 2. 双…

新增文章功能

总说 过程参考黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 之前又偷懒几天。回老家没事干,玩也玩不好,一玩老是被家里人说。写代码吧还是,他们都看不懂&a…

LangGraph系列-1:用LangGraph构建简单聊天机器人

在快速发展的人工智能和大型语言模型(llm)世界中,开发人员不断寻求创建更灵活、更强大、更直观的人工智能代理的方法。 虽然LangChain已经改变了这个领域的游戏规则,允许创建复杂的链和代理,但对代理运行时的更复杂控制…

二叉树的最大深度(遍历思想+分解思想)

Problem: 104. 二叉树的最大深度 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(实则二叉树的先序遍历) 1.欲望求出最大的深度,先可以记录一个变量res,同时记录每次当前节点所在的层数depth 2.在递的过程中,每次递一层&#xff0…

QT+mysql+python 效果:

# This Python file uses the following encoding: utf-8 import sysfrom PySide6.QtWidgets import QApplication, QWidget,QMessageBox from PySide6.QtGui import QStandardItemModel, QStandardItem # 导入需要的类# Important: # 你需要通过以下指令把 form.ui转为ui…

WSL 安装cuDNN

WSL 安装cuDNN 参考文档:https://docs.nvidia.com/deeplearning/cudnn/installation/latest/linux.html#verifying-the-install-on-linux 1. 下载相应包 根据下方下载地址进入下载界面,并选择与自己电脑相对应的平台执行图中的命令 下载地址&#xff1…

58.界面参数传递给Command C#例子 WPF例子

界面参数的传递,界面参数是如何从前台传送到后台的。 param 参数是从界面传递到命令的。这个过程通常涉及以下几个步骤: 数据绑定:界面元素(如按钮)的 Command 属性绑定到视图模型中的 RelayCommand 实例。同时&#x…

阿里云域名备案

一、下载阿里云App 手机应用商店搜索"阿里云",点击安装。 二、登录阿里云账号 三、打开"ICP备案" 点击"运维"页面的"ICP备案"。 四、点击"新增网站/App" 若无备案信息,则先新增备案信息。 五、开始备案

sunrays-framework配置重构

文章目录 1.common-log4j2-starter1.目录结构2.Log4j2Properties.java 新增两个属性3.Log4j2AutoConfiguration.java 条件注入LogAspect4.ApplicationEnvironmentPreparedListener.java 从Log4j2Properties.java中定义的配置读取信息 2.common-minio-starter1.MinioProperties.…

如何解决跨浏览器兼容性问题

跨浏览器兼容性问题是指同一网页在不同浏览器中呈现效果不一致,通常由于浏览器渲染引擎、CSS支持、JavaScript执行等差异导致。解决这类问题可以从以下几个方面入手: 一、使用标准化的HTML和CSS 确保你的网页符合W3C标准。浏览器会尽量遵循这些标准,所以通过标准化的代码可…

算法12(力扣739)-每日温度

1、问题 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 2、示例 &#…

54.数字翻译成字符串的可能性|Marscode AI刷题

1.题目 问题描述 小M获得了一个任务,需要将数字翻译成字符串。翻译规则是:0对应"a",1对应"b",依此类推直到25对应"z"。一个数字可能有多种翻译方法。小M需要一个程序来计算一个数字有多少种不同的…

立创开发板入门ESP32C3第八课 修改AI大模型接口为deepseek3接口

#原代码用的AI模型是minimax的API接口,现在试着改成最热门的deepseek3接口。# 首先按理解所得,在main文件夹下,有minimax.c和minimax.h, 它们是这个API接口的头文件和实现文件,然后在main.c中被调用。所以我们一步步更改。 申请…

数据分析系列--③RapidMiner算子说明及数据预处理

一、算子说明 1.新建过程 2.算子状态灯 状态灯说明: (1)状态指示灯: 红色:指示灯说明有参数未被设置或输入端口未被连接等问题; 黄色:指示灯说明还未执行算子,不管配置是否基本齐全; 绿色:指示灯说明一切正常,已成功执行算子。 (2)三角…

Airflow:精通Airflow任务依赖

任务依赖关系是任何工作流管理系统的核心概念,Apache Airflow也不例外。它们确定在工作流中执行任务的顺序和条件,确保以正确的顺序完成任务,并确保在相关任务开始之前成功完成先决任务。在本文中我们将探讨Apache Airflow中的任务依赖关系&a…