当前位置: 首页 > news >正文

使用ansible的角色实现批量安装nginx服务

1.任务步骤

步骤:

  1. 创建工作目录
  2. 创建清单文件
  3. 创建配置文件
  4. 创建剧本文件
  5. 创建角色目录结构
  6. 实现任务
    6.1 挂载仓库
    6.2 安装nginx
    6.3 编写欢迎页面
    6.4 启动nginx
    6.5 配置防火墙规则
  7. 定义页面模板
  8. 定义处理器
  9. 完善剧本功能
  10. 访问测试

1.创建工作目录

mkdir nginxroles -p
cd nginxroles

2.创建清单文件

mkdir inventory
cd inventory
vim hosts
[server]
ansible-node1
ansible-node2

3. 创建配置文件

 vim ansible.cfg[defautls]inventory=inventory/hosts

4.创建剧本文件

 touch site.yml

5.创建角色目录结构

mkdir roles
cd roles
ansible-glaxy init nginx
touch site.yml

6.1 挂载仓库
roles/nginx/tasks/mount.yml

vim mount.yml
---
- name: mount mount:src: /dev/sr0 path: /mntfstype: iso9660state: persent

6.2 安装nginx
roles/nginx/tasks/dnf.yml

vim dnf.yml
---
- name: install nginxdnf:name: nginxstate: installed

6.3 编写欢迎页面
roles/nginx/tasks/index-page.yml

vim index-page.yml
---
- name: template:src: index.htmldest: /usr/share/nginx/index.html  

6.4 启动nginx
roles/nginx/tasks/start-nginx.yml

vim start-nginx.yml
---
- name: start nginxservice:name: nginxstate: started

6.5 配置防火墙规则
roles/nginx/tasks/firewalld.yml

vim firewalld.yml  
---
- name:firewalld:port: 80/tcpstate: enabledpermanent: yesnotify: restart firewalld

6.6 配置主角色文件

vim main.yml
---
- include-tasks: mount.yml
- include-tasks: dnf.yml
- include-tasks: index-page.yml
- include-tasks: firewalld.yml
- include-tasks: start-nginx.yml

7. 定义页面模板
roles/nginx/templates/main.yml

vim main.yml
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
</head>
<body>
<h1>{{ index_content }}</h1>
</body>
</html>

8.定义页面欢迎模板
roles/mginx/vars/main.yml

vim main.yml
---
index_content: "welcome to nginx service"
  1. 定义处理器
    roles/nginx/handlers/main.yml
vim main.yml  
---
- name: restart firewalldservice:name: firewalldstate: reloaded

10. 完善剧本功能
nginxroles/site.yml

vim site.yml    
--- 
- name:hosts: serverroles:nginx

11. 访问测试
ansible-playbook site.yml

http://www.lryc.cn/news/582072.html

相关文章:

  • 图像处理基础:镜像、缩放与矫正
  • 《声音的变形记:Web Audio API的实时特效法则》
  • 【论文撰写】如何把AI生成的文本公式复制在word中,完整的复制公式,拷贝豆包生成的公式
  • 音频流媒体技术选型指南:从PCM到Opus的实战经验
  • 在linux 上使用tcpdump监听http 端口的报文并分析
  • C++之string类的实现代码及其详解(中)
  • 项目中多个模块都需要引入外部jar
  • Spring Boot项目初始化:官方与阿里云服务地址对比指南
  • ExcelJS 完全指南:专业级Excel导出解决方案
  • vue3 字符包含
  • 暑假Python基础整理 -- Python语言基础
  • 初识Neo4j之Cypher(三)
  • 企业级视频链接的技术实现与安全性策略
  • [免费]基于Python豆瓣电影数据分析及可视化系统(Flask+echarts+pandas)【论文+源码+SQL脚本】
  • 部署NextCloud AIO + Frp + nginx-proxy-manager内网穿透私有云服务
  • 微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
  • web网页开发,在线%ctf管理%系统,基于html,css,webform,asp.net mvc, sqlserver, mysql
  • 前端篇——HTML知识点体系
  • 报错 400 和405解决方案
  • 回溯题解——电话号码的字母组合【LeetCode】
  • Word 怎么让段落对齐,行与行之间宽一点?
  • VBA之Word应用第三章第十一节:Document对象的事件
  • GIC控制器(二)
  • iOS App抓包工具排查后台唤醒引发请求异常
  • ShortGPT: Layers in Large Language Models are More Redundant Than You Expect
  • DPDK 网络驱动 之 UIO
  • Linux之Shell脚本--遍历数组
  • PostgreSQL中的HASH分区:原理、实现与最佳实践
  • 多模态数据集转换与MMIB模型应用:从图像到文本的跨模态分析
  • AI PPT探秘