🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 前置条件 获取 saltmaster root 权限 获取 repo write 权限 dev repo:[https://code.dianrong.com/projects/DO/repos/saltstack-dev/browse](https://code.dianrong.com/projects/DO/repos/saltstack-dev/browse)  prod repo:[https://code.dianrong.com/projects/DO/repos/saltstack/browse](https://code.dianrong.com/projects/DO/repos/saltstack/browse)  nginx state 文件位于 srv/salt/nginx/init.sls 所有 nginx 配置都在 srv/salt/nginx/files 目录下,通过 hostname/salt-minion id 来区分 一般每组 nginx 有两个节点,其中一个软连接到另外一个,修改的时候只需要修改其中一个 salt 下发的时候两个节点都需要下发(防止故障切换时数据不一致) ![](https://wiki.dianrong.com/download/attachments/19400863/WX20181225-06235.png?version=1&modificationDate=1545690260000&api=v2 "Engineering Infra Service > nginx 配置文件变更流程 > WX20181225-06235.png") ## 变更流程示意图 ![](https://wiki.dianrong.com/download/attachments/19400863/nginx%20%E4%BF%AE%E6%94%B9%E6%B5%81%E7%A8%8B%E7%A4%BA%E6%84%8F%E5%9B%BE.png?version=1&modificationDate=1545689830000&api=v2 "Engineering Infra Service > nginx 配置文件变更流程 > nginx 修改流程示意图.png") ## **下文以 lb009-demo.b8.dianrong.io 为例演示。** ## 本地修改、提交(只需修改一组中的其中一个): git clone ssh://git@code.dianrong.com:7999/do/saltstack-dev.git cd saltstack-dev/srv/salt/nginx/files/lb009-demo.b8.dianrong.io edit some files git diff git commit git push 登录 salt master 更新 nginx 配置后下发: ## 首先拉取最新配置(salt master) ssh saltmaster sudo -i /srv/salt/bin/update.sh ## review 即将产生的变化(salt master) salt -L 'lb009-demo.b8.dianrong.io, lb010-demo.b8.dianrong.io' state.sls nginx test=True ## 下发 nginx 配置并在验证通过后 reload(salt master),一组中的两个节点同时下发 salt -L 'lb009-demo.b8.dianrong.io, lb010-demo.b8.dianrong.io' state.sls nginx