Ansible-role-nginx-config: 能够上传片段

创建于 2020-07-30  ·  5评论  ·  资料来源: nginxinc/ansible-role-nginx-config

您的功能请求是否与问题有关?
能够上传包含配置文件的snippets目录真的很方便,这样人们就可以在其他 nginx http conf 文件中重用通用配置。 如果我没记错的话,我不相信这个插件目前(明确地)可能做到这一点。

描述你考虑过的替代方案
尝试使用nginx_main_upload_srcnginx_http_upload_src ,但在这种情况下都不起作用。 nginx_main_upload_src需要一个文件,而nginx_http_upload_src使用fileglob ,这不允许递归复制。

我显然可以在一个单独的角色中执行此操作,但是让所有 nginx 配置以相同的角色完成会很好。

描述您想要的解决方案
一种解决方案是模拟现有的上传变量选项,例如nginx_http_upload_enable 。 例如,引入 vars: nginx_snippets_upload_enable ,以及srcdest对应物会很好。

如果您觉得此解决方案过于针对snippets ,也许有更通用的方法将本地文件复制到远程 nginx 目录的根目录。 这是在这个 Ansible nginx 插件中的实现方式: https :

或者,可以递归地将目录上传到 http 配置目录将是另一种方法,尽管我不喜欢这种方式,因为它与事实上的 nginx 目录结构不匹配,其中snippets在根上。

谢谢!

feature

最有用的评论

@asabhaney我终于在#59 中实现了代码片段支持。

FWIW,我可能会重新审视在某个阶段上传配置文件如何适用于其他nginx_config_*_upload_*变量(甚至可能删除其中一些),因为我对各自在幕后所做的假设/很少的可配置性并不完全满意任务(我认为片段选项也可以用于 main/http/stream 配置上传任务)。

所有5条评论

有趣的建议@asabhaney! 我无法保证何时/是否会进行此操作(目前积压工作中还有一些其他任务具有更高的优先级),但是如果您愿意,请随时提交 PR 😄

又见面了!

我正在查看您分享的建议插件,对此我有一些想法。

  1. 该插件中的示例可以使用nginx_http_upload_*进行复制,尽管我确实明白,如果您要将配置文件和片段文件都上传到不同的目标文件夹, nginx_http_upload_*只会让您选择一个源,并且一次目的地。
  2. 在 NGINX 的实际目录结构中没有snippets概念。 这是您链接的插件中引入的概念。 并不是说它有什么问题,但它不一定是推荐的文件夹结构。

复制nginx_http_upload_*以创建nginx_snippets_upload_*变量应该很容易。 一个更好的问题是让用户在使用nginx_*_upload_*时使用列表是否更有意义,并且这样做可以简化整个上传相关变量系列。

@alessfg ,感谢您花时间研究这个! 我同意没有对snippets的事实上的目录结构引用(尽管我已经看到它分散在 Nginx 的文档中)。 我也同意为它添加一组变量( nginx_snippets_upload_* )过于具体和臃肿。

我认为能够将任何其他文件夹/文件上传到根 nginx 目录是一个更好的通用解决方案。 不确定这是否应该包括替换诸如nginx_http_upload_* (更不用说向后中断)之类的变量,或者它应该采用诸如nginx_other_upload_* ,它可以包含一个列表。

@asabhaney我终于在#59 中实现了代码片段支持。

FWIW,我可能会重新审视在某个阶段上传配置文件如何适用于其他nginx_config_*_upload_*变量(甚至可能删除其中一些),因为我对各自在幕后所做的假设/很少的可配置性并不完全满意任务(我认为片段选项也可以用于 main/http/stream 配置上传任务)。

非常感谢,迫不及待地想使用它!

此页面是否有帮助?
0 / 5 - 0 等级