首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >module.run不能在state.highstate中执行,但可以与state.sls一起使用

问module.run不能在state.highstate中执行,但可以与state.sls一起使用
EN

Stack Overflow用户
提问于 2019-09-10 05:21:21
回答 1查看 55关注 0票数 0

我正在尝试从另一个状态重新运行状态。我没有使用watch或watch_in等b/c,我希望它每次都能运行。我配置了所有的nginx虚拟主机,然后在最后运行另一个名为nginx-certs的状态,相关部分如下:

代码语言:javascript
复制
nginx-frontend:
  module.run:
    - name: state.sls
    - mods:
      - nginx-frontend

在高状态期间,我看到state_id被执行,但没有注释,也没有显示它重新运行该状态,它只是作为Result: True完成。然后我可以跳到salt主机并运行sudo salt webserver state.sls nginx-certs,当它访问nginx-frontend时,它会重新加载所有的虚拟主机,将新的证书放入配置中。

我很好奇为什么这个不能在高州运行。

我已经尝试了上面概述的简单块的所有不同变体。这个可以工作,但不能在高状态下工作,这是我的目标。

如果你想知道我为什么这样做,所有用于生产和升级的证书都在HAProxy和nginx上终止,只提供80/http1 81/h2,但在构建开发服务器时,我希望将证书直接分配给服务器,因为它将面向公众。我需要首先构建虚拟主机以打开端口80,该端口用于get encrypt。然后,当证书可用时,更新nginx vhosts侦听指令和证书路径。

EN

回答 1

Stack Overflow用户

发布于 2019-10-02 20:44:21

据我所知:您有一台服务器,您希望在端口80上临时配置Nginx,然后使用letsencrypt生成其证书,然后将Nginx配置更改为端口443。

您可以做的是:

  • 有一种状态,安装和配置Nginx以侦听端口80
  • 有另一种状态,安装/配置/运行letsencrypt
  • 第三种状态将Nginx配置为您希望它在末尾1
  • 您只需将它们包含在salt中,以便按特定顺序运行,如

<代码>F29

代码语言:javascript
复制
# custom_nginx.sls

include:
  - temp_nginx_on_port_80
  - letsencrypt_cert
  - nginx

1为此,我认为最好使用社区https://github.com/saltstack-formulas/nginx-formula/中的公式,并使用支柱数据对其进行配置。显然,如果你在步骤3中使用它,你将不能在步骤1中使用(或者至少我现在不知道如何使用)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57861346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档