专业网站建设多少钱,php小程序开发完整教程,南平seo,提升学历方式文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件#xff08;金甲模板#xff09;5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中#xff0c;使用角色#xff08;Role#xff09;来远程部… 文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件金甲模板5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中使用角色Role来远程部署并配置 Nginx 是一种非常高效且可复用的方式。
1、准备工作
首先查看系统
cat /etc/redhat-release然后ansible检查各个主机的连通性主机组名为webserves,包括4台机子
ansible webserves -m ping -o2、创建角色结构
在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.yml3、编写任务
配置 tasks/main.yml 该文件定义了部署和配置 Nginx 的主要任务
vim roles/nginx/tasks/main.yaml---
- name: install epel-release pacakgeyum: nameepel-release statelatest- name: intall nginx packageyum: namenginx statelatest- name: copy index.htmlcopy: srcindex.html dest/usr/share/nginx/html/index.html- name: copy nginx.conf templatetemplate: srcnginx.conf.j2 dest/etc/nginx/nginx.confnotify: restart nginx- name: make sure nginx service runningservice: namenginx statestarted enabledyes
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 filteransible_processor_corestemplate模板金甲模板是一套灵活的可扩展编辑的配置文件用来推送给各个主机作为自己的配置模板使用里面可以存放变量等非常灵活便于扩展操作。
5、编写变量
vim roles/nginx/vars/main.yaml编辑内容为
worker_connections: 102406、编写处理程序
vim roles/nginx/handlers/main.yaml修改内容如下
---
- name: restart nginxservice: namenginx staterestarted7、编写剧本
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.yaml9、验证-游览器访问每台主机的nginx页面
访问4台主机的nginx-index.html 检查每个主机的nginx配置两个变量都是获取变量值。
cat /etc/nginx/nginx.conf注意事项
权限问题由于安装软件和修改系统配置需要特权使用了 become: true确保你有足够的权限执行这些操作。不同操作系统上述示例主要针对基于 yum 或 apt 的系统。如果使用其他操作系统可能需要调整 package 模块的相关配置。防火墙部署完成后确保防火墙允许 Nginx 使用的端口通常是 80 和 443的流量通过。 人生当中总是有你能力所不及的范围但是如果在你能力所及的范畴内你尽到了自己全部的努力那你还有什么可以遗憾呢