sudo service nginx reload在处理/实验/学习配置文件nginx(以及其他包含的配置文件)时,我总是忘记重新加载 nginx 设置。
有没有办法实现此目的,即 nginx 在进行以下任何更改后重新加载配置文件:
你可能会认为我忘记重新加载是愚蠢的/愚蠢的,但虽然是新的并且实际上在学习和实验,但确实有足够的东西可以跟踪。
使用配置管理系统来部署这些更改,并包含一个触发器来自动重新启动配置文件已更改的服务。
在学习过程中养成使用 CM 的习惯是非常值得的,因为在以后的职业生涯中要改掉坏习惯会困难得多。
为了帮助您入门,这里有一个简单的 ansible 剧本,它将部署一个 nginx 配置文件到您的服务器,然后在发生任何更改时重新启动 nginx:
---
- hosts: web
sudo: yes
tasks:
- name: Install packages
apt: state=installed install_recommends=no name={{ item }}
with_items:
- nginx
- name: Deploy nginx config file
copy: src=nginx.conf dest=/etc/nginx/nginx.conf
notify: restart nginx
handlers:
- name: restart nginx
service: name=nginx state=restarted
Run Code Online (Sandbox Code Playgroud)
将该文本保存到一个文件中,例如foo.yml. 您还需要一个清单文件来告诉 ansible 在哪些主机上运行这些命令。创建一个hosts文件,内容如下:
[web]
servername.example.com
Run Code Online (Sandbox Code Playgroud)
将您的 playbook、清单文件和 nginx.conf 保存在同一目录中。
然后你可以应用剧本:
$ ansible-playbook foo.yml -i hosts -K
Run Code Online (Sandbox Code Playgroud)
发出该命令后,系统会要求您输入 sudo 密码。提供它,然后剧本就会运行。
| 归档时间: |
|
| 查看次数: |
11429 次 |
| 最近记录: |