将 Vagrant 与 SaltStack 一起使用,如何在提供自定义配置后启动 nginx
Using Vagrant with SaltStack, how do I start nginx after providing custom configuration
我有一个 Vagrant boxset 可以提供盐。当我执行新的 vagrant up
(在 vagrant destroy
之后)时,nginx 默认为端口 80 和默认的欢迎页面,尽管没有被配置为。我可以在来宾中手动 运行 sudo nginx -s reload
修复它,但我不想使用手动解决方法。
这是我的 salt/roots/salt/nginx/init.sls
文件:
nginx:
pkg:
- installed
nginx run:
service.running:
- name: nginx
- enable: True
- watch:
- file: /etc/nginx/nginx.conf
- file: /etc/nginx/sites-available/dotmanca
require:
- file: /etc/nginx/sites-enabled/dotmanca
- file: /etc/nginx/nginx.conf
- pkg: nginx
/etc/nginx/nginx.conf:
file:
- managed
- source: salt://nginx/nginx.conf
- user: root
- group: root
- mode: 644
/etc/nginx/sites-available/dotmanca:
file:
- managed
- source: salt://nginx/dotmanca.conf
- user: root
- group: root
- mode: 644
require:
- pkg: nginx
/etc/nginx/sites-enabled/dotmanca:
file.symlink:
- target: /etc/nginx/sites-available/dotmanca
- user: root
- group: root
- mode: 644
require:
- file: /etc/nginx/sites-available/dotmanca
/etc/nginx/sites-enabled/default:
file.absent:
- name: /etc/nginx/sites-enabled/default
require:
- pkg: nginx
配置后 nxginx 服务器已安装并正常运行,配置文件显示在正确的位置。
我需要在自定义文件放置后重新加载 nginx 中的配置,或者以某种方式推迟 运行 nginx 服务直到文件就位。
您始终可以 运行 自动重新启动命令 - 请参阅 cmd.run
。让它依赖于服务状态。
但是,这是我最后的选择。 Salt 能够使用依赖项(或 Salt 的术语 requisites)并确保在服务启动之前使用正确的配置文件内容(或者如果检测到配置文件更改则重新启动服务)。
显然,我需要了解更多关于 require
位的信息。我把它们放在各州应该去的地方,而不是在各州之下。
我的文件应该是这样的:
nginx:
pkg:
- installed
nginx_run:
service.running:
- name: nginx
- enable: True
- watch:
- file: /etc/nginx/nginx.conf
- file: /etc/nginx/sites-available/dotmanca
- require:
- file: /etc/nginx/sites-enabled/dotmanca
- file: /etc/nginx/nginx.conf
- pkg: nginx
/etc/nginx/nginx.conf:
file:
- managed
- source: salt://nginx/nginx.conf
- user: root
- group: root
- mode: 644
/etc/nginx/sites-available/dotmanca:
file:
- managed
- source: salt://nginx/dotmanca.conf
- user: root
- group: root
- mode: 644
- require:
- pkg: nginx
/etc/nginx/sites-enabled/dotmanca:
file.symlink:
- target: /etc/nginx/sites-available/dotmanca
- user: root
- group: root
- mode: 644
- require:
- file: /etc/nginx/sites-available/dotmanca
/etc/nginx/sites-enabled/default:
file.absent:
- name: /etc/nginx/sites-enabled/default
- require:
- pkg: nginx
我有一个 Vagrant boxset 可以提供盐。当我执行新的 vagrant up
(在 vagrant destroy
之后)时,nginx 默认为端口 80 和默认的欢迎页面,尽管没有被配置为。我可以在来宾中手动 运行 sudo nginx -s reload
修复它,但我不想使用手动解决方法。
这是我的 salt/roots/salt/nginx/init.sls
文件:
nginx:
pkg:
- installed
nginx run:
service.running:
- name: nginx
- enable: True
- watch:
- file: /etc/nginx/nginx.conf
- file: /etc/nginx/sites-available/dotmanca
require:
- file: /etc/nginx/sites-enabled/dotmanca
- file: /etc/nginx/nginx.conf
- pkg: nginx
/etc/nginx/nginx.conf:
file:
- managed
- source: salt://nginx/nginx.conf
- user: root
- group: root
- mode: 644
/etc/nginx/sites-available/dotmanca:
file:
- managed
- source: salt://nginx/dotmanca.conf
- user: root
- group: root
- mode: 644
require:
- pkg: nginx
/etc/nginx/sites-enabled/dotmanca:
file.symlink:
- target: /etc/nginx/sites-available/dotmanca
- user: root
- group: root
- mode: 644
require:
- file: /etc/nginx/sites-available/dotmanca
/etc/nginx/sites-enabled/default:
file.absent:
- name: /etc/nginx/sites-enabled/default
require:
- pkg: nginx
配置后 nxginx 服务器已安装并正常运行,配置文件显示在正确的位置。
我需要在自定义文件放置后重新加载 nginx 中的配置,或者以某种方式推迟 运行 nginx 服务直到文件就位。
您始终可以 运行 自动重新启动命令 - 请参阅 cmd.run
。让它依赖于服务状态。
但是,这是我最后的选择。 Salt 能够使用依赖项(或 Salt 的术语 requisites)并确保在服务启动之前使用正确的配置文件内容(或者如果检测到配置文件更改则重新启动服务)。
显然,我需要了解更多关于 require
位的信息。我把它们放在各州应该去的地方,而不是在各州之下。
我的文件应该是这样的:
nginx:
pkg:
- installed
nginx_run:
service.running:
- name: nginx
- enable: True
- watch:
- file: /etc/nginx/nginx.conf
- file: /etc/nginx/sites-available/dotmanca
- require:
- file: /etc/nginx/sites-enabled/dotmanca
- file: /etc/nginx/nginx.conf
- pkg: nginx
/etc/nginx/nginx.conf:
file:
- managed
- source: salt://nginx/nginx.conf
- user: root
- group: root
- mode: 644
/etc/nginx/sites-available/dotmanca:
file:
- managed
- source: salt://nginx/dotmanca.conf
- user: root
- group: root
- mode: 644
- require:
- pkg: nginx
/etc/nginx/sites-enabled/dotmanca:
file.symlink:
- target: /etc/nginx/sites-available/dotmanca
- user: root
- group: root
- mode: 644
- require:
- file: /etc/nginx/sites-available/dotmanca
/etc/nginx/sites-enabled/default:
file.absent:
- name: /etc/nginx/sites-enabled/default
- require:
- pkg: nginx