使用ansible的角色实现批量安装nginx服务
1.任务步骤
步骤:
- 创建工作目录
- 创建清单文件
- 创建配置文件
- 创建剧本文件
- 创建角色目录结构
- 实现任务
6.1 挂载仓库
6.2 安装nginx
6.3 编写欢迎页面
6.4 启动nginx
6.5 配置防火墙规则 - 定义页面模板
- 定义处理器
- 完善剧本功能
- 访问测试
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"
- 定义处理器
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