首页 > 系统相关 >ansible自动化之playbook剧本【nginx安装为例】

ansible自动化之playbook剧本【nginx安装为例】

时间:2024-08-20 08:58:37浏览次数:8  
标签:name roles yaml 为例 nginx ansible conf main

一、简介
roles则是ansible中,playbooks的目录组织结构。将代码或者文件进行模块化,成为roles的文件目录组织结构,易管理,易理解,代码可重用,层次清晰。
二、准备目录结构

创建所需目录:
mkdir  -p   roles/nginx/{files,handlers,tasks,templates,vars}
创建所需文件:
touch roles/site.yaml roles/nginx/{handlers,tasks,vars}/main.ya
ml
nginx的首页展示:
echo 123456 > roles/nginx/files/index.html
复制原理nginx的配置文件,下发到被控制服务器中。
yum install -y nignx && cp /etc/nginx/nginx.conf  roles/nginx/templates/nginx.conf.j2

创建好了以后是以下结构:

[root@localhost ~]# tree roles/
roles/
├── nginx
│   ├── files
│   │   └── index.html
│   ├── handlers
│   │   └── main.yaml
│   ├── tasks                       #任务放入tasks目录中
│   │   └── main.yaml
│   ├── templates                   #
│   │   └── nginx.conf.j2
│   └── vars
│       └── main.yaml
└── site.yaml

6 directories, 6 files

三、编写任务
tasks目录中main.yaml的配置:

---
- name: 安装epel-releas包
  yum: name=epel-release state=latest

- name: 安装nginx包
  yum: name=nginx state=latest

- name: 复制nginx的展示页面
  copy: src=index.html dest=/usr/share/nginx/html/index.html

- name: 复制nginx的配置文件template
  template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
  notify: 重启nginx

- name: 确保nginx服务启动
  service: name=nginx state=started enabled=yes

四、准备template配置文件

vim /root/roles/nginx/templates/nginx.conf.j2
进入nginx.conf.j2配置文件:vim roles/nginx/templates/nginx/nginx.conf.j2
改变里面需要改变的变量:
worker_processes  {{ ansible_processor_cores }};




events {
    worker_connections  {{ worker_connections }};
}

五、编辑变量vars目录中main.yaml文件
以后所有变量全部放入这个文件中。

vim /root/roles/nginx/vars/main.yaml
worker_connections: 10240

六、编写处理程序handlers文件

handlers目录中main.yaml配置用于处理常变动的文件。
vim /root/roles/nginx/handlers/main.yaml
---
- name: restart nginx
  service: name=nginx state=restarted

七、编写剧本playbook

vim  roles/site.yaml
- hosts:web01
  roles:
  - nginx

标签:name,roles,yaml,为例,nginx,ansible,conf,main
From: https://blog.csdn.net/yd3202/article/details/141334858

相关文章

  • nginx平滑升级
    一、概要nginx升级的原因有两种:1、nginx版本升级需要2、nginx新添新的模块二、nginx升级原理多进程模式:nginx分为主进程(master)和工作进程(work),主进程就是nginx本身,工作进程是看你电脑分配了多少核cpu,但是展示工作进程数还是nginx.conf配置文件种定义。主进程支持的信号TER......
  • nginx基础面试题
    1、破解密码:1、首先重启虚拟机,启动的时候马上按e键进入安全模式2、在有Linux那行的最后面加上rd.break3、ctrl+x将文件4、以读写的方式重新挂载:mount-oremount,rw/sysroot5、进入路径:chroot/sysroot6、改写密码:passwd6、打安全标签:touch/.autorelabel7、退......
  • 二进制下载部署Nginx
    一、通过Nginx官网并采取二进制方式部署Nginx官网二、具体步骤[[email protected]]#ll-dnginx.repo-rw-r--r--.1rootroot398Aug1722:01nginx.repo[[email protected]]#pwd/etc/yum.repos.d接下来可以直接使用yum-yinstallnginx则是直......
  • ansible block模块
    目录示例:使用block、rescue和always解释:示例输出:实际应用场景:Ansible中的block功能允许你将多个任务组合在一起,作为一个整体来处理。block提供了一些额外的功能,比如rescue和always,这些可以用来处理错误和执行清理任务。以下是一个简单的block功能的示例:示例:使用blo......
  • 云计算实训31——playbook(剧本)基本应用、playbook常见语法、playbook和ansible操作
    playbook(剧本):是ansible⽤于配置,部署,和管理被控节点的剧本。⽤于ansible操作的编排。使⽤的格式为yaml格式一、YMAL格式以.yaml或.yml结尾⽂件的第⼀⾏以"---"开始,表明YMAL⽂件的开始(可选的)以#号开头为注释列表中的所有成员都开始于相同的缩进级别,并且使⽤⼀......
  • ubuntu24安装字体的一种方法,以consola为例
    ubuntu24安装字体的一种方法,以consola为例若有windows系统执行mkdir/usr/share/fonts/truetype/consola从windows系统(我的是win10)的C:\Windows\Fonts文件夹中复制consola.ttf,consolab.ttf,consolai.ttf,consolaz.ttf四个文件到刚创建的consola文件夹中执行cd......
  • ansible相关模块
    copy模块(重点)copy模块⽤于对⽂件的远程拷⻉操作(如把本地的⽂件拷⻉到远程的机器上)https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module在master上准备⼀个⽂件,拷⻉此⽂件到group1的所有机器上使⽤content参数直接往远程⽂件⾥写内容(会覆......
  • ansible Tags 标签
    目录Tags标签使用场景通过指定tags执行指定任务Tags标签Ansible的标签(Tags)功能可以给role,file,task,playbook,然后利用这些标签来指定要运行Playbook中的个别任务,或不执行指定的任务,并且它的语法非常简单使用场景选择性任务执行:当您不需要运行整个Playbook时,可以选择......
  • 国产操作系统 离线部署MYSQL、NGINX、redis、JDK1.8
    目录1.1、龙蜥操作系统8.4【AnolisOS8.4GA】1.2、安装关键步骤说明2.1、安装必要的系统组件2.2、配置JDK2.3、安装redis2.4、安装nginx2.5、安装mysql3.1、启用防火墙3.2、开放业务端口3.3、修改SSH端口号为100223.4、配置特定端口指定IP访问4.1、网络设置4.2......
  • WindowsServer系统下nginx代理问题
    部署vue打包后的dist文件夹后,重启nginx发现没生效,操作如下:1.停止redis,删除浏览器缓存并用无痕模式访问发现依然不生效,试着各种办法重新导入数据库数据也不行,nginx.exe-sstop依然能访问2.搜索发现可能是WindowsServer系统的问题,于是执行命令nginx-squit退出nginx......