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

发布于:2025-07-10 ⋅ 阅读:(16) ⋅ 点赞:(0)

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: /mnt
  	fstype: iso9660
  	state: persent

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

vim dnf.yml
---
- name: install nginx
  dnf:
  	name: nginx
  	state: installed

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

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

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

vim start-nginx.yml
---
- name: start nginx
  service:
  	name: nginx
  	state: started

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

vim firewalld.yml  
---
- name:
  firewalld:
  	port: 80/tcp
  	state: enabled
  	permanent: yes
  notify: 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 firewalld
  service:
  	name: firewalld
  	state: reloaded

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

vim site.yml    
--- 
- name:
  hosts: server
  roles:
  	nginx

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


网站公告

今日签到

点亮在社区的每一天
去签到